Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.01.29;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.038 c
2-1136392666
worldmen
2006-01-04 19:37
2006.01.29
Вставить пароль при загрузке.


15-1135925656
horse
2005-12-30 09:54
2006.01.29
Где играют в шахматы в сети?


15-1136518805
Nic
2006-01-06 06:40
2006.01.29
Экзамен по вычислительным машинам, сетям и системам телекоммуника


1-1135167580
DVM
2005-12-21 15:19
2006.01.29
Проблема в многопоточном приложении: завершение потоков.


15-1136914646
Z*
2006-01-10 20:37
2006.01.29
Музыка на pc





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский