Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.06;
Скачать: CL | DM;

Вниз

Текстовый Массив   Найти похожие ветки 

 
Батыр   (2006-07-21 00:16) [0]

Мне нужно занести в двух мерный массив все файлы в указанной папке Название файла и место нахождения, причем я не знаю сколько файлов, поэтому сразу не могу указать размер массива. Но я думал если сачала подщитать сколько файлов , а потом создать динамичный массив. Но незнаю правильно ли это будет два раза юзать в папке, пожалуйсто подскажите если не прав


 
Джо ©   (2006-07-21 00:37) [1]

А зачем тут двухмерный? Обычный динамический массив записей, т.е:
type
 TFileNameRec = record
   Path,
   Name: string;
 end;

 TFileNames = array of TFileNameRec;


Размер динамического массива задается при помощи SetLength.
Да, честно говоря, не лучше ли вообще хранить так:

type
 TDirectoryInfo = record
   DirectoryName: string;
   FileNames: array of string;
 end;


 
unknown ©   (2006-07-21 00:40) [2]

А зачем отдельный двух мерный массив ?
Можно просто запихать пути+имена в 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:43) [3]


> Можно просто запихать пути+имена в TStrings

А можно поподробнее об этом
я данный тип неочень освоил


 
Джо ©   (2006-07-21 01:08) [4]

> [3] Батыр   (21.07.06 00:43)
> А можно поподробнее об этом
> я данный тип неочень освоил

Это стандартный класс, его свойства и методы подробно описаны в справке.



Страницы: 1 вся ветка

Текущий архив: 2006.08.06;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.041 c
3-1149173269
Dust
2006-06-01 18:47
2006.08.06
Excetion Operation Canceled at user request


2-1153077707
Footballer
2006-07-16 23:21
2006.08.06
НЕ МОГУ ГДЕ СКАЧАТЬ НАЙТИ RAIZE COMPONENT


3-1148968666
Still Swamp
2006-05-30 09:57
2006.08.06
Как до FireBird добраться через ADO?


1-1150972456
Старик
2006-06-22 14:34
2006.08.06
Различные варианты выгрузки приложения из памяти


2-1153407511
Sirus
2006-07-20 18:58
2006.08.06
Выбор принтера