|
#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 Спасибо !
Оказывается все проще чем кажется . |