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

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

Здравтвуйте программисты. У меня такой вопрос: "Можно ли в Pascal работать с атрибутами каталога?". А именно сделать скрытой.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

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

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)
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

Программа запускается, но ничего не делает (не выдаёт никаких ошибок и из неё нельзя выйти, только снимать задачу). Так и должно быть?
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

У меня все без проблем, что у тебя за ОС
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

Есть ли ещё на форуме такие умные программисты как ты с Хыиудой? Наверное нет. Т. к. я уже вопросов задавал штук 5, и всё время отвечают или ты, или Хыиуда (ты чаще). Somewhere, спасибо, (уже не знаю как избавиться от однообразия) БОЛЬШОЕ. Всё уже работает.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Может, у тебя в системе диска d: нету?
Если есть - не буду комментировать решение, предложенное Somewhere, потому что ассемблер знаю плохо, но знаю, что в Паскале в каком-то из модулей (то ли system, то ли dos) есть возможность вытянуть в переменную целого типа (пусть fileattrs) атрибуты объекта. Типа: скрытый, системный, является ли папкой и т.д. После этого делаем
fileattrs:=fileattrs OR faHidden;
(если не ошибаюсь, эта константа называется примерно так, надо бы хелп посмотреть, да я с работы, тут Паскаль не стоит), а потом аналогичным оператором записать в атрибуты те значения, которые забиты в fileattrs. Вроде бы операторы называются getfileattr и setfileattr, но точнее, опять же, сказать не могу
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

&quot писал(а):Вроде бы операторы называются getfileattr и setfileattr
SetFAttr, GetFAttr - работают с переменными типа File, из чего следует что сначала их надо подвязать, но подвязать директорию к переменной типа File нельзя - отсюда код на ассемблере.
It's a long way to the top if you wanna rock'n'roll
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Ну, есть вариант - получить эту директорию в переменную типа TSearchRec с помощью FindFirst и FindNext. В ТСерчРек прекрасно влезает и файл, и директория, и логический диск, и черт лысый.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Можно попробовать, но для меня проще все-таки так.
It's a long way to the top if you wanna rock'n'roll
Аватара пользователя
Колядин Максим
Сообщения: 297
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

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