Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.29;
Скачать: CL | DM;

Вниз

Аттрибуты файла   Найти похожие ветки 

 
mozgan   (2006-01-11 21:19) [0]

Всем привет!
У меня один вопрос: Как правильно пользоваться функцией FileGetAttr?
У меня список файлов и хотелось, чтобы в Edit1 показывался его атрибут. Првильно ли такой ход: if opendialog1.execute then
if opendialog1.filename = faReadOnly then label1.caption:="для чтения". Это я так по памяти. Как ни крути - ничего не получается.
Подскажите, пожалуйста!


 
Johnmen ©   (2006-01-11 21:23) [1]

Есть такая кнопка, F1 называется. При наведении курсора в редакторе Дельфи на слово и последующем нажатии этой волшебной кнопы можно прочитать много интересного. В т.ч. и ответы на свои вопросы...


 
mozgan   (2006-01-11 21:28) [2]

Клава F1 мне знакома. Прикол в том, что я самоучка и в хелмах понимаю мло чего:(
Вот посмотрите,  
 if ReadFile.Checked = true then
 for i:=0 to listbox2.Items.Count-1 do
 sysutils.FileSetAttr(listbox2.Items[i],01); //для чтения

Я не могу понять обратный процесс.


 
Джо ©   (2006-01-11 21:32) [3]

> ли такой ход: if opendialog1.execute then
> if opendialog1.filename = faReadOnly then label1.caption:
> ="для чтения"

Совершенно неправильный.


> Я не могу понять обратный процесс.

Вообще говоря, атрибуты файлов это битовая маска. Т.е, если выполняется условие faReadOnly and FileGetAttr(...) <> 0, то атрибут faReadOnly установлен. И для остальных атрибутов аналогично, разумеется.


 
mozgan   (2006-01-11 21:40) [4]

Джо! Посмотри, пожалуйста!

 if open.Execute then begin
 if open.FileName = (faReadOnly) and (FileGetAttr(open.FileName))then
 label1.Caption:="read"else
 label1.Caption:="???";

Почему ошибка - несопоставление типов (стока/число)


 
begin...end ©   (2006-01-11 21:41) [5]

const
 Attr: array [1..4] of Cardinal =
   (FILE_ATTRIBUTE_ARCHIVE, FILE_ATTRIBUTE_HIDDEN, FILE_ATTRIBUTE_READONLY, FILE_ATTRIBUTE_SYSTEM);
 Str = "AHRS";
var
 A: Cardinal;
 I: Integer;
 S: string;
begin
 A := GetFileAttributes("C:\Command.com");
 S := "";
 for I := 1 to 4 do
   if A and Attr[I] <> 0 then
     S := S + Str[I];
 Label1.Caption := S
end


 
Gero ©   (2006-01-11 22:28) [6]

> Почему ошибка - несопоставление типов (стока/число)

Потому что open.FileName это строка, а faReadOnly — число.


 
Johnmen ©   (2006-01-11 22:45) [7]

>begin...end ©   (11.01.06 21:41) [5]

Зачем ты так?
Достаточно GetFileAttributes+F1
ЗЫ
Кстати, var I : Cardinal for I := Low(Attr) to High(Attr) do ...
и т.п.


 
mozgan   (2006-01-11 23:00) [8]

A := GetFileAttributes("C:\Command.com");

Это для одного файла, а если файлов много?


 
begin...end ©   (2006-01-12 08:23) [9]

> Johnmen ©   (11.01.06 22:45) [7]

> Достаточно GetFileAttributes+F1

Позвольте мне при ответе самому решать, чего будет достаточно.


 
mozgan   (2006-01-12 12:06) [10]

Доброе утро Мастера!
Я вчерашний тута. Вы мне вчера головную боль помогли немного успокоить, Хотел это сказать ещё вчера - но вырубили свет и спать...
БОЛЬШОЕ СПАСИБО !!!

Мастера, помогите разобраться во вчерашнем примере:
procedure TForm1.Button1Click(Sender: TObject);
begin
 C := GetFileAttributes("C:\Out.txt");
 S := "";
 for I := 1 to 4 do
 if C and Attr[I] <> 0 then
 S := S + Str[I];
 Label1.Caption := S;
end;

Как вместо  C := GetFileAttributes("C:\Out.txt");
Можно записать примерно так: C := GetFileAttributes(Edit1.Text);


 
Gero ©   (2006-01-12 12:30) [11]

> Как вместо  C := GetFileAttributes("C:\Out.txt");
> Можно записать примерно так: C := GetFileAttributes(Edit1.Text);

Вот так:
C := GetFileAttributes(Edit1.Text);


 
mozgan   (2006-01-12 14:19) [12]

Gero!!!!
Так нельзя!
Ты сам-то хоть пробовал? (хотя-бы код переписать и проверить?).
Я новичок (самоучка) - и вижу, что новичков и обманывают.
Так не хорошо.
Хоть пару-тройку примеров - одни подсказки и советы, которые нам, новичкам не понять :((((((

реальная ошибка в том, что TEdit - это строка, а PAnsiChar - строка символов и ошибка - несопоставление типов. Если вы специалист, то зачем
тогда мозги пудрить?
Мне очень-очень обидно :(((


 
stakan ©   (2006-01-12 14:33) [13]

C := GetFileAttributes(PChar(Edit1.Text));


 
mozgan   (2006-01-12 20:29) [14]

Привиденный ниже фрагмент сработал.
Я просто обязан извиниться перед ВСЕМИ МАСТЕРАМИ!!!
Извините меня!
И Большое спасибо за подсказку !


 
Gero ©   (2006-01-12 21:54) [15]

> mozgan   (12.01.06 14:19)

Наплыв эмоций...



Страницы: 1 вся ветка

Текущий архив: 2006.01.29;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.036 c
15-1136502253
GanibalLector
2006-01-06 02:04
2006.01.29
DLL


3-1133197691
Mmmaloy
2005-11-28 20:08
2006.01.29
ADO, Access 2000, Delphi 6, и Windows 95


2-1136392163
asd
2006-01-04 19:29
2006.01.29
Кнопка


4-1132317014
Devider
2005-11-18 15:30
2006.01.29
Чтение с СОМ-порта...


3-1133363995
keal
2005-11-30 18:19
2006.01.29
как востановить данные после delete?