![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поиск и переименование файла [D7, XP]
lewka-serdceed © (2008-06-16 22:07:00)Подскажите пожалуйста как можно найти все файлы с задаваемым расширением в каталоге, который выбирается пользователем, и перенести их в таблицу StringGrid?
Anatoly Podgoretsky (2008-06-17 11:26:00) [1]Не пишите так много слов, не понятно.
{RASkov} (2008-06-17 11:23:00) [2]> Если же функцию расположить вне формы, то в функции надо
> использовать квалифицированное имя Form1.StringGrid1 где
> Form1 имя формы.
Можно, и мне кажется это лучше и гибче, передавать стринггрид еще одним, дополнительным, пареметром в процедуру...
Т.е. нечто так:
procedure GetFiles(Path, Mask: String; Grd: TStringGrid);
ну и вызов:
GetFiles('C:\', '*.dll', MyStringGridFromForm1); //выведет список dll в диске C:\
PS: И что длл делают в корне диска? :))
palva (2008-06-17 09:49:00) [3]
> у меня не идет этот код. Ругается на Stringrid1. Говорит
> что не известный индефикатер
У тебя же есть таблица StringGrid. Вот это и есть имя этого стринггрида. Или ты его по другому назвал? Функцию надо вставить в форму, где находится этот стринггрид в качестве метода. Если же функцию расположить вне формы, то в функции надо использовать квалифицированное имя Form1.StringGrid1 где Form1 имя формы.
korneley (2008-06-17 09:37:00) [4]
> lewka-serdceed (17.06.08 09:08) [8]
> у меня не идет этот код. Ругается на Stringrid1. Говорит
> что не известный индефикатер
Дык, понятно. Это ж к протологам надо, а не к программистам. Непонятно только: все же "ин", или "де"?
Anatoly Podgoretsky (2008-06-17 09:29:00) [5]Слишком сложно.
Anatoly Podgoretsky (2008-06-17 09:25:00) [6]> lewka-serdceed (17.06.2008 9:08:08) [8]
Сделай известным, но тут кроме копипасте нужен еще дополнительный инструмент.
Big Joe (2008-06-17 09:25:00) [7]
> lewka-serdceed (17.06.08 09:08) [8]
Начинай с "Hello World"
lewka-serdceed (2008-06-17 09:08:00) [8]у меня не идет этот код. Ругается на Stringrid1. Говорит что не известный индефикатер
palva (2008-06-17 08:47:00) [9]
> а как вызвать procedure GetFiles(Path, Mask: String); ?
Имя процедуры, открыть круглую скобку, первый параметр, запятая, второй параметр, закрыть круглую скобку, точка с запятой (иногда не нужна).
lewka-serdceed (2008-06-17 08:38:00) [10]а как вызвать procedure GetFiles(Path, Mask: String); ?
Германн (2008-06-17 01:27:00) [11]
> rhammer © (17.06.08 01:22) [4]
А сабж читал?
Германн (2008-06-17 01:22:00) [12]
> Anatoly Podgoretsky © (17.06.08 00:12) [2]
>
> > lewka-serdceed (16.06.2008 22:07:00) [0]
>
> И где тут переименование
>
Это будет позже спрошено особо.
Тут просто некий момент истины.
Пальцы печатают, а голова отдыхает или занята другим, более интересным делом.
rhammer (2008-06-17 01:22:00) [13]
RenameFile(File1,File2);
Им же можно и папки переименовывать
Anatoly Podgoretsky (2008-06-17 00:12:00) [14]> lewka-serdceed (16.06.2008 22:07:00) [0]
И где тут переименование
JanMihail (2008-06-16 22:16:00) [15]FindFirst, FindNext, FindClose используй.
Думаю эти слова тебе ни о чем не скажут, поэтому держи...
procedure GetFiles(Path, Mask: String);
var
sr: TSearchRec;
begin
if FindFirst(Path + Mask, faAnyFile, sr) = 0 then
repeat
if (sr.Attr and faDirectory) <> faDirectory then
begin
StringGrid1.RowCount := StringGrid1.RowCount + 1;
StringGrid1.Cells[0, StringGrid1.RowCount - 1] := sr.Name;
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
Использовать так:
GetFiles('C:\', '*.dll');//выведет список dll в диске C:\
GetFiles('C:\Windows\', '*.exe');//выведет список exe файлов в папке Windows