Hallo,
ich möchte von einem bestimmten Ordner alle Textdateien im Record speichern, also nur den Inhalt der Textdateien.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| type TTextFile = record FileName: string; Text: string; end;
var Form1: TForm1; TextFile: array of TTextFile; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Button2Click(Sender: TObject); var i: integer; begin i := 1; SetLength(TextFile,i); TextFile[i-1].FileName := 'Dateiname der Textdatei'; TextFile[i-1].Text := 'Den Inhalt der Textdatei'; end; |
Die Variable i wird später als Zählvariable benutzt, ich weiss nur nicht, wie ich alle Textdateien von einem Ordner auslesen kann.
Ich bedanke mich schonmal im Voraus.
EDIT: Ich hab das so gelöst:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure ListFileDir(Path: string); var SR: TSearchRec; i: integer; Text: TStringList; begin Text := TStringList.Create; if FindFirst(Path + '*.txt', faAnyFile, SR) = 0 then begin repeat if (SR.Attr <> faDirectory) then begin i := i + 1; SetLength(TextFile,i); TextFile[i-1].FileName := SR.Name; Text.LoadFromFile(Path+TextFile[i-1].FileName); TextFile[i-1].Text := Text.Text; end; until FindNext(SR) <> 0; FindClose(SR); end; Text.Free; end; |
Den rest schaffe ich auch noch.
EDIT 2: Ich habe mal versucht über TStringList über 15000 Texte im Array zu Speichern, also über LoadFromFile u.s.w. und dann sagt mein Programm: Zu wenig Arbeitsspeicher.
Gibt es vieleicht eine bessere möglichkeit?
MfG