Страница 1 из 3

Работа с каталогами. Pascal

Добавлено: 21 дек 2006, 22:05
Колядин Максим
Здравтвуйте программисты. У меня такой вопрос: "Можно ли в Pascal работать с атрибутами каталога?". А именно сделать скрытой.

Re: Работа с каталогами. Pascal

Добавлено: 22 дек 2006, 15:09
somewhere

Код: Выделить всё

var
filename : String;

begin
Filename := 'd:\games'+chr(0);
asm
mov ax, 4301h
mov dx, offset filename
mov cx, 2
int 21h
end;

end.
Только врядли тебе дадут изменить атрибуты папки под WinNT(XP)

Re: Работа с каталогами. Pascal

Добавлено: 22 дек 2006, 15:57
Колядин Максим
Программа запускается, но ничего не делает (не выдаёт никаких ошибок и из неё нельзя выйти, только снимать задачу). Так и должно быть?

Re: Работа с каталогами. Pascal

Добавлено: 22 дек 2006, 16:08
somewhere
У меня все без проблем, что у тебя за ОС

Re: Работа с каталогами. Pascal

Добавлено: 23 дек 2006, 00:33
Колядин Максим
Есть ли ещё на форуме такие умные программисты как ты с Хыиудой? Наверное нет. Т. к. я уже вопросов задавал штук 5, и всё время отвечают или ты, или Хыиуда (ты чаще). Somewhere, спасибо, (уже не знаю как избавиться от однообразия) БОЛЬШОЕ. Всё уже работает.

Re: Работа с каталогами. Pascal

Добавлено: 25 дек 2006, 09:52
Хыиуду
Может, у тебя в системе диска d: нету?
Если есть - не буду комментировать решение, предложенное Somewhere, потому что ассемблер знаю плохо, но знаю, что в Паскале в каком-то из модулей (то ли system, то ли dos) есть возможность вытянуть в переменную целого типа (пусть fileattrs) атрибуты объекта. Типа: скрытый, системный, является ли папкой и т.д. После этого делаем
fileattrs:=fileattrs OR faHidden;
(если не ошибаюсь, эта константа называется примерно так, надо бы хелп посмотреть, да я с работы, тут Паскаль не стоит), а потом аналогичным оператором записать в атрибуты те значения, которые забиты в fileattrs. Вроде бы операторы называются getfileattr и setfileattr, но точнее, опять же, сказать не могу

Re: Работа с каталогами. Pascal

Добавлено: 25 дек 2006, 11:23
somewhere
&quot писал(а):Вроде бы операторы называются getfileattr и setfileattr
SetFAttr, GetFAttr - работают с переменными типа File, из чего следует что сначала их надо подвязать, но подвязать директорию к переменной типа File нельзя - отсюда код на ассемблере.

Re: Работа с каталогами. Pascal

Добавлено: 25 дек 2006, 13:32
Хыиуду
Ну, есть вариант - получить эту директорию в переменную типа TSearchRec с помощью FindFirst и FindNext. В ТСерчРек прекрасно влезает и файл, и директория, и логический диск, и черт лысый.

Re: Работа с каталогами. Pascal

Добавлено: 25 дек 2006, 13:54
somewhere
Можно попробовать, но для меня проще все-таки так.

Re: Работа с каталогами. Pascal

Добавлено: 25 дек 2006, 15:02
Колядин Максим
... и логический диск, и черт лысый.
Хуиуду..... ты что???
Ну, есть вариант - получить эту директорию в переменную типа TSearchRec с помощью FindFirst и FindNext. В ТСерчРек прекрасно влезает и ....
Ану-ка Хыиуду расскажи-ка свой способ.