Форум: "Начинающим";
Текущий архив: 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