Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поиск и переименование файла [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо