![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Аттрибуты файла [D7]
mozgan © (2006-01-11 21:19:00)Всем привет!
У меня один вопрос: Как правильно пользоваться функцией FileGetAttr?
У меня список файлов и хотелось, чтобы в Edit1 показывался его атрибут. Првильно ли такой ход: if opendialog1.execute then
if opendialog1.filename = faReadOnly then label1.caption:='для чтения'. Это я так по памяти. Как ни крути - ничего не получается.
Подскажите, пожалуйста!
Gero (2006-01-12 21:54:00) [1]> mozgan (12.01.06 14:19)
Наплыв эмоций...
mozgan (2006-01-12 20:29:00) [2]Привиденный ниже фрагмент сработал.
Я просто обязан извиниться перед ВСЕМИ МАСТЕРАМИ!!!
Извините меня!
И Большое спасибо за подсказку !
stakan (2006-01-12 14:33:00) [3]
C := GetFileAttributes(PChar(Edit1.Text));
mozgan (2006-01-12 14:19:00) [4]Gero!!!!
Так нельзя!
Ты сам-то хоть пробовал? (хотя-бы код переписать и проверить?).
Я новичок (самоучка) - и вижу, что новичков и обманывают.
Так не хорошо.
Хоть пару-тройку примеров - одни подсказки и советы, которые нам, новичкам не понять :((((((
реальная ошибка в том, что TEdit - это строка, а PAnsiChar - строка символов и ошибка - несопоставление типов. Если вы специалист, то зачем
тогда мозги пудрить?
Мне очень-очень обидно :(((
Gero (2006-01-12 12:30:00) [5]> Как вместо C := GetFileAttributes('C:\Out.txt');
> Можно записать примерно так: C := GetFileAttributes(Edit1.Text);
Вот так:
C := GetFileAttributes(Edit1.Text);
mozgan (2006-01-12 12:06:00) [6]Доброе утро Мастера!
Я вчерашний тута. Вы мне вчера головную боль помогли немного успокоить, Хотел это сказать ещё вчера - но вырубили свет и спать...
БОЛЬШОЕ СПАСИБО !!!
Мастера, помогите разобраться во вчерашнем примере:
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);
begin...end (2006-01-12 08:23:00) [7]> Johnmen © (11.01.06 22:45) [7]
> Достаточно GetFileAttributes+F1
Позвольте мне при ответе самому решать, чего будет достаточно.
mozgan (2006-01-11 23:00:00) [8]A := GetFileAttributes('C:\Command.com');
Это для одного файла, а если файлов много?
Johnmen (2006-01-11 22:45:00) [9]>begin...end © (11.01.06 21:41) [5]
Зачем ты так?
Достаточно GetFileAttributes+F1
ЗЫ
Кстати, var I : Cardinal for I := Low(Attr) to High(Attr) do ...
и т.п.
Gero (2006-01-11 22:28:00) [10]> Почему ошибка - несопоставление типов (стока/число)
Потому что open.FileName это строка, а faReadOnly — число.
begin...end (2006-01-11 21:41:00) [11]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
mozgan (2006-01-11 21:40:00) [12]Джо! Посмотри, пожалуйста!
if open.Execute then begin
if open.FileName = (faReadOnly) and (FileGetAttr(open.FileName))then
label1.Caption:='read'else
label1.Caption:='???';
Почему ошибка - несопоставление типов (стока/число)
Джо (2006-01-11 21:32:00) [13]> ли такой ход: if opendialog1.execute then
> if opendialog1.filename = faReadOnly then label1.caption:
> ='для чтения'
Совершенно неправильный.
> Я не могу понять обратный процесс.
Вообще говоря, атрибуты файлов это битовая маска. Т.е, если выполняется условиеfaReadOnly and FileGetAttr(...) <> 0, то атрибут faReadOnly установлен. И для остальных атрибутов аналогично, разумеется.
mozgan (2006-01-11 21:28:00) [14]Клава F1 мне знакома. Прикол в том, что я самоучка и в хелмах понимаю мло чего:(
Вот посмотрите,
if ReadFile.Checked = true then
for i:=0 to listbox2.Items.Count-1 do
sysutils.FileSetAttr(listbox2.Items[i],01); //для чтения
Я не могу понять обратный процесс.
Johnmen (2006-01-11 21:23:00) [15]Есть такая кнопка, F1 называется. При наведении курсора в редакторе Дельфи на слово и последующем нажатии этой волшебной кнопы можно прочитать много интересного. В т.ч. и ответы на свои вопросы...