Работа с каталогами. Pascal
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
- Колядин Максим
- Сообщения: 297
- Зарегистрирован: 16 ноя 2006, 19:09
- Откуда: Seattle, WA
- Контактная информация:
Здравтвуйте программисты. У меня такой вопрос: "Можно ли в Pascal работать с атрибутами каталога?". А именно сделать скрытой.
Код: Выделить всё
var
filename : String;
begin
Filename := 'd:\games'+chr(0);
asm
mov ax, 4301h
mov dx, offset filename
mov cx, 2
int 21h
end;
end.
It's a long way to the top if you wanna rock'n'roll
- Колядин Максим
- Сообщения: 297
- Зарегистрирован: 16 ноя 2006, 19:09
- Откуда: Seattle, WA
- Контактная информация:
Программа запускается, но ничего не делает (не выдаёт никаких ошибок и из неё нельзя выйти, только снимать задачу). Так и должно быть?
У меня все без проблем, что у тебя за ОС
It's a long way to the top if you wanna rock'n'roll
- Колядин Максим
- Сообщения: 297
- Зарегистрирован: 16 ноя 2006, 19:09
- Откуда: Seattle, WA
- Контактная информация:
Есть ли ещё на форуме такие умные программисты как ты с Хыиудой? Наверное нет. Т. к. я уже вопросов задавал штук 5, и всё время отвечают или ты, или Хыиуда (ты чаще). Somewhere, спасибо, (уже не знаю как избавиться от однообразия) БОЛЬШОЕ. Всё уже работает.
Может, у тебя в системе диска d: нету?
Если есть - не буду комментировать решение, предложенное Somewhere, потому что ассемблер знаю плохо, но знаю, что в Паскале в каком-то из модулей (то ли system, то ли dos) есть возможность вытянуть в переменную целого типа (пусть fileattrs) атрибуты объекта. Типа: скрытый, системный, является ли папкой и т.д. После этого делаем
fileattrs:=fileattrs OR faHidden;
(если не ошибаюсь, эта константа называется примерно так, надо бы хелп посмотреть, да я с работы, тут Паскаль не стоит), а потом аналогичным оператором записать в атрибуты те значения, которые забиты в fileattrs. Вроде бы операторы называются getfileattr и setfileattr, но точнее, опять же, сказать не могу
Если есть - не буду комментировать решение, предложенное Somewhere, потому что ассемблер знаю плохо, но знаю, что в Паскале в каком-то из модулей (то ли system, то ли dos) есть возможность вытянуть в переменную целого типа (пусть fileattrs) атрибуты объекта. Типа: скрытый, системный, является ли папкой и т.д. После этого делаем
fileattrs:=fileattrs OR faHidden;
(если не ошибаюсь, эта константа называется примерно так, надо бы хелп посмотреть, да я с работы, тут Паскаль не стоит), а потом аналогичным оператором записать в атрибуты те значения, которые забиты в fileattrs. Вроде бы операторы называются getfileattr и setfileattr, но точнее, опять же, сказать не могу
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
SetFAttr, GetFAttr - работают с переменными типа File, из чего следует что сначала их надо подвязать, но подвязать директорию к переменной типа File нельзя - отсюда код на ассемблере." писал(а):Вроде бы операторы называются getfileattr и setfileattr
It's a long way to the top if you wanna rock'n'roll
Ну, есть вариант - получить эту директорию в переменную типа TSearchRec с помощью FindFirst и FindNext. В ТСерчРек прекрасно влезает и файл, и директория, и логический диск, и черт лысый.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Можно попробовать, но для меня проще все-таки так.
It's a long way to the top if you wanna rock'n'roll
- Колядин Максим
- Сообщения: 297
- Зарегистрирован: 16 ноя 2006, 19:09
- Откуда: Seattle, WA
- Контактная информация:
Хуиуду..... ты что???... и логический диск, и черт лысый.
Ану-ка Хыиуду расскажи-ка свой способ.Ну, есть вариант - получить эту директорию в переменную типа TSearchRec с помощью FindFirst и FindNext. В ТСерчРек прекрасно влезает и ....