
Geschrieben von
sofl
(Moderator) am 09.06.2008 um 18:47 Uhr.
Beiträge: 12 /
#1732
Kontakt:
Mailen
|
ICQ
Lesen/Schreiben von Textdateien
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.
var
meinedatei : TextFile;
text : string;
begin
// Versucht die Datei zu öffnen bzw "prepariert" sie
AssignFile(meinedatei, 'Test.txt');
// Erstellt oder Überschreibt die Datei falls vorhanden
ReWrite(meinedatei);
// Beschreiben der Datei mit Klartext
// Writeln macht jedesmal einen Zeilenumbruch
// -> write auch möglich
WriteLn(meinedatei, 'Hello');
WriteLn(meinedatei, 'World');
// Schliest die Datei
CloseFile(meinedatei);
// Öffnet die Datei erneut
Reset(meinedatei);
// Liest die Komplette Datei und giebt bei jeder Zeile eine
// Messagebox aus.
while not Eof(meinedatei) do
begin
ReadLn(meinedatei, text);
ShowMessage(text);
end;
// ...
CloseFile(meinedatei);
end;
Vor unser Reset(meinedatei); können wir zusätzlich den FileMode setzten.
mögliche Parameter:
- fmOpenRead oder 0 = Nur Lesen
- fmOpenWrite oder 1 = Nur Schreiben
- fmOpenReadWrite oder 2 = Lesen und Schreiben (Standard)
Bsp:
Anstelle von ReWrite(meinedatei); können wir Append(meinedatei); um die Datei nur zu erweitern. In diesem falle muss sie natürlich vorhanden sein...
Die Typisierte Datei
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.
46.
47.
type
Takeag = Record
name : string[20];
alter : Integer;
kerl : Boolean;
end;
var
meinedatei : File of Takeag;
user : Takeag;
begin
AssignFile(meinedatei, 'Userdb.jou');
ReWrite(meinedatei);
user.name := 'take';
user.alter := 19; // :X
user.kerl := true; // maybe :X
Write(meinedatei, user);
user.name := 'sofl';
user.alter := 19;
user.kerl := true;
Write(meinedatei, user);
CloseFile(meinedatei);
FileMode := fmOpenRead;
Reset(meinedatei);
while not Eof(meinedatei) do
begin
Read(meinedatei, user);
if user.kerl
then ShowMessage('Ein Kerl namens '+user.name+
' ist '+IntToStr(user.alter)+' alt :)')
else ShowMessage('Eine Dame namens '+user.name+
' ist '+IntToStr(user.alter)+' alt :)')
end;
CloseFile(meinedatei);
end;
die Kommentare hab ich mir bei dem bsp mal gespart...das meiste sollte erdenklich sein.
Textdateien mit Stringlisten schreiben/laden
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
var
fileData : TStringList;
i: integer;
begin
fileData := TStringList.Create; //Stringlistobject erstellen
fileData.LoadFromFile('Test.txt'); // Datei in die Stringlist laden
// Inhalt anzeigen
for i := 0 to fileData.Count-1 do
ShowMessage(fileData[i]);
// Datei unter neuem Namen speichern
// Natürlich jederzeit beschreibbar mit
// fileData[zeile] := 'na aber';
fileData.SaveToFile('muh.txt');
end;
mfg sofl