![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Текстовый Массив
Батыр © (2006-07-21 00:16:00)Мне нужно занести в двух мерный массив все файлы в указанной папке Название файла и место нахождения, причем я не знаю сколько файлов, поэтому сразу не могу указать размер массива. Но я думал если сачала подщитать сколько файлов , а потом создать динамичный массив. Но незнаю правильно ли это будет два раза юзать в папке, пожалуйсто подскажите если не прав
Джо (2006-07-21 01:08:00) [1]> [3] Батыр (21.07.06 00:43)
> А можно поподробнее об этом
> я данный тип неочень освоил
Это стандартный класс, его свойства и методы подробно описаны в справке.
Батыр (2006-07-21 00:43:00) [2]
> Можно просто запихать пути+имена в TStrings
А можно поподробнее об этом
я данный тип неочень освоил
unknown (2006-07-21 00:40:00) [3]А зачем отдельный двух мерный массив?
Можно просто запихать пути+имена в TStrings
procedure GetAllFiles(mask: string; var Box: TStrings);
var
search: TSearchRec;
directory: string;
begin
if Box = nil then
exit;
directory := ExtractFilePath(mask);
// find all files
if FindFirst(mask, $23, search) = 0 then
repeat
// add the files to the listbox
Box.Add(directory + search.Name);
until FindNext(search) <> 0;
// Subdirectories/ Unterverzeichnisse
if FindFirst(directory + '*.*', faDirectory, search) = 0 then
begin
repeat
if ((search.Attr and faDirectory) = faDirectory) and (search.Name[1] <> '.') then
GetAllFiles(directory + search.Name + '\' + ExtractFileName(mask), Box);
until FindNext(search) <> 0;
SysUtils.FindClose(search);
end;
end;
Далее просто ExtractFileName, ExtractFilePath и т.п.
Джо (2006-07-21 00:37:00) [4]А зачем тут двухмерный? Обычный динамический массив записей, т.е:
type
TFileNameRec = record
Path,
Name: string;
end;
TFileNames = array of TFileNameRec;
Размер динамического массива задается при помощиSetLength.
Да, честно говоря, не лучше ли вообще хранить так:
type
TDirectoryInfo = record
DirectoryName: string;
FileNames: array of string;
end;