Hallo.
Ich habe ein Problem: In einem ListView sind Ordnernamen
aufgeführt. Die sollen mittels einer Schleife durchlaufen werden.
inerhalb dieser Schleife läuft eine andere. Diese sucht alle Dateien die
sich in dem betreffenden Ordern befinden und übergibt diese an eine Listbox.
Das Problem. Das Programm verursacht 94% Systemauslastung.
Das liegt an der Schleife die die Dateien sucht.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45:
| procedure TForm17.FormCreate(Sender: TObject); var sl2: TStringList; var sli,lbi,lvp,res : integer; var ProgrammOrdner,IniPak2,gp : String; ini : TIniFile; ListItem: TListItem; ds: TSearchRec; begin lblZuSuchen.Caption := form1.txtSuch.Text;
ProgrammOrdner:=ExtractFilePath(application.ExeName); ini:=TIniFile.Create(ProgrammOrdner +'\est_term.ini'); Try IniPak2 := ini.ReadString('Erweiterte Suche','Pakete','default'); Finally Ini.Free; end;
sl2:=TStringList.Create; try sl2.Delimiter:=','; sl2.DelimitedText:=IniPak2; for sli := 0 to sl2.Count - 1 do begin ListView1.Items.BeginUpdate; ListItem := ListView1.Items.Add; ListItem.Caption := sl2[sli]; ListView1.Items.EndUpdate; end; finally sl2.Free; end;
for lvp := 0 to ListView1.Items.Count - 1 do gp := listView1.Items.Item[lvp].Caption;
res := FindFirst(ProgrammOrdner + 'Data\' + gp +'\*.estt',faAnyFile,ds); while(res =0) do begin listBox1.Items.add(ds.Name); end;
end; |
Woran liegt das?? Bzw. wie kann ich das ändern. Das die Dateien in eine Listbox kommen ist nur Probeweise. Ich will die Dateien später alle einzeln nach einem String durchsuchen lassen.
Gruss
Cromos