![]() |
|
|
#1
|
||||
|
||||
|
Здравствуйте !
Вот код Код:
procedure TForm1.Button2Click(Sender: TObject);
var
SR : TSearchRec;
Filename : TStrings;
papka : array of String;
Path : string;
i : Integer;
begin
Path:= 'C:\Program Files (x86)';
if FindFirst(Path + '*.*', faAnyFile, SR) = 0 then
begin
repeat
if (SR.Attr <> faDirectory) then
begin
Filename.Add(SR.Name);
end;
until FindNext(SR) <> 0;
FindClose(SR);
end;
SetLength(papka, Filename.Count-1);
for i := 0 to High(papka) do begin
papka[i] := Filename.Strings[i] ;
end;
Label2.Caption:= papka[1];
end;Задача: найти все папки перврго уровня в заданой дериктории и записать их в массив Не пойму где ошибка . Выдает... Цитата:
|
|
#2
|
||||
|
||||
|
Код:
... Filename := TStringList.Create; ... FileName.Free; |
|
#3
|
||||
|
||||
|
Теперь выдает ошибку .
Цитата:
Последний раз редактировалось volod3000, 25.03.2011 в 20:06. |
|
#4
|
|||
|
|||
|
Держи:
Код:
procedure TForm1.Button2Click(Sender: TObject);
var
SR : TSearchRec;
Filename : TStringList;
papka : array of String;
Path : string;
i : Integer;
begin
Filename:=TStringList.Create;
Path:= 'C:\Program Files\*.*';
FindFirst(Path, faDirectory, SR);
if (SR.name <> '') and
(SR.name <> '.') and
(SR.name <> '..') then Filename.Add(SR.name);
//--With While--\\
while FindNext(SR) = 0 do
if (SR.name <> '') and
(SR.name <> '.') and
(SR.name <> '..') then Filename.Add(SR.name);
//--End While--\\
{
//--With Until--\\
repeat
if (SR.name <> '') and
(SR.name <> '.') and
(SR.name <> '..') then Filename.Add(SR.name);
Until FindNext(SR) <> 0;
//--End Until--\\
}
SetLength(papka, Filename.Count-1);
for i := 0 to High(papka) do
begin
papka[i] := Filename.Strings[i] ;
ListBox1.Items.Add(papka[i]);
end;
Filename.Free;
end; |
|
#5
|
||||
|
||||
|
Janom Спасибо !
Оказывается все проще чем кажется . |