Diese Werbeeinblendung erscheint nach 5 Minuten Idletime.
- Werbung - weiter auf Codershell surfen.
Delphi » Filehandling in Delphi
Seiten:  1 
[ Sie müssen angemeldet sein, um einen Beitrag zu verfassen. ]
Geschrieben von sofl (Moderator) am 09.06.2008 um 18:47 Uhr.
Beiträge: 12 / #1732

Kontakt: Mailen | ICQ

Lesen/Schreiben von Textdateien

CODE
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:

CODE
1.
2.
3.
FileMode := fmOpenWrite;


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

CODE
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
CODE
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


wong itdel.iciode.blinklisttechnoratigoogleblinkbitsyahooyiggblogmarksfurlspurlwebnewsstumbleupondigg itma.gnolia.comco.mments Zitieren Beitrag melden
[ Sie müssen angemeldet sein, um einen Beitrag zu verfassen. ]
Seiten:  1 
Login / Account
E-Mail Adresse:

Passwort:



Passwort zurücksetzen
Werbung