Aus Datei Lesen/Speichern

Hallo,
ich möchte mit Delphi aus der Datei ‚Einstellungen.SET‘ lesen.

Die Datei hat folgenden Text:
***
Name=Maier
Vorname=Hans Joachim
***

Es soll dann im fenster oben (form1.caption) ‚Guten Tag Hans Joachim Maier‘ stehen.

Ferner gibt es den Button ‚Setup‘, der Form2 öffnet. Hier hat man das Feld ‚editname‘ und ‚editvorname‘ (beide Tedit) und den Button ‚Speichern‘.
Beim klick auf den Button soll in ‚Einstellungen.SET‘ geschrieben werden:
Hinter ‚Name=‘ soll editname.text sthen und hinter ‚Vorname=‘ soll editforname.text stehen.

Wie kann ich auf die Datei ‚Einstellungen.SET‘ zugreifen? (Liegt im selbenordner wie meine exe Datei)

Hallo,

***
Name=Maier
Vorname=Hans Joachim
***

Ferner gibt es den Button ‚Setup‘, der Form2 öffnet. Hier hat
man das Feld ‚editname‘ und ‚editvorname‘ (beide Tedit) und
den Button ‚Speichern‘.
Beim klick auf den Button soll in ‚Einstellungen.SET‘
geschrieben werden:
Hinter ‚Name=‘ soll editname.text sthen und hinter ‚Vorname=‘
soll editforname.text stehen.

Wie kann ich auf die Datei ‚Einstellungen.SET‘ zugreifen?
(Liegt im selbenordner wie meine exe Datei)

das ist ein einfacher Dateizugriff. Du öffnest die Datei und schreibst was rein. Wenn die Datei bereits existiert, so wird sie überschrieben.

procedure TForm1.MyButtonClick(Sender: TObject);
var
 Datei: TextFile;

begin
 AssignFile(Datei, ExtractFilePath(Application.ExeName) + 'Einstellungen.SET');
 Rewrite(Datei);
 try
 WriteLn(Datei, 'Name=' + 'editname.text);
 WriteLn(Datei, 'Vorname=' + 'editvorname.text);
 finally
 CloseFile(Datei);
 end; 
end;

Für Dateien, in denen Infos in der Art „X=Y“ steht, kann man aber auch die Objekte TIniFile oder TStringList nehmen.

Und jetzt verrate deiner Lehrerin nicht, dass du das von mir hast und mach deine Hausaufgaben nächstes mal selber :smile:)

Gruss, Niels

Und jetzt verrate deiner Lehrerin nicht, dass du das von mir
hast und mach deine Hausaufgaben nächstes mal selber :smile:)

1.Hab ich einen Informatik Lehrer und keine Lehrerin.
2.Hab ich ihn gefragt, wie man das macht und er wußtes selber nicht.
3. Vielen dank für die Hilfe!

Gruß Thomas

1.Hab ich einen Informatik Lehrer und keine Lehrerin.

aber der unterrichtet doch nicht etwa Delphi, oder? Weil das von mir geschriebene würde ich mal als alltägliche Aufgabe bezeichnen, die ein Lehrer wissen sollte, wenn er sich nur irgendwie mit Pascal beschäftigt.

Gruss, Niels

Ich habe Probleme aus der Datei zu lesen,
wie kann ich wenn in irgend einer Zeile der Datei ‚Name=Maier‘ ist eine Stringvariable kreieren die dann den Wert Maier hat?

Das mit ‚Writeln‘ klappt. Ich hab auch mit Readln und read das auslesen der Datei versucht. klappt aber nicht! Absturz! (E/A Fehler 148 laut delphi)

Der Lehrer kennt sich schon gut aus, besonders mit Datenbankprogramierung, Sql und co… aber man kann nicht alles können :smile:

Ich habe Probleme aus der Datei zu lesen,
wie kann ich wenn in irgend einer Zeile der Datei ‚Name=Maier‘ ist eine Stringvariable kreieren die dann den Wert Maier hat?

Das mit ‚Writeln‘ klappt. Ich hab auch mit Readln und read das auslesen der Datei versucht. klappt aber nicht! Absturz! (E/A Fehler 148 laut delphi)

Das mit ‚Writeln‘ klappt. Ich hab auch mit Readln und read das
auslesen der Datei versucht. klappt aber nicht! Absturz! (E/A
Fehler 148 laut delphi)

da hilft eine Abwandlung des Programms:

procedure TForm1.MyButtonClick(Sender: TObject);
var
 Datei: TextFile;
 MyString: String;

begin
 AssignFile(Datei, ExtractFilePath(Application.ExeName) + 'Einstellungen.SET');
 Reset(Datei);
 try
 ReadLn(Datei, MyString);
 editvorname.text := copy(MyString, pos('=', MyString), length(MyString));
 ReadLn(Datei, MyString);
 editname.text := copy(MyString, pos('=', MyString), length(MyString));
 finally
 CloseFile(Datei);
 end; 
end;

dieser code setzt voraus, dass immer erst der vorname, dann der nachname in der Datei steht. Eine alternative ist die Verwendung des TStringList-Objekts, welches Methoden speziell für diese Fälle enthält.

procedure TForm1.MyButtonClick(Sender: TObject);
var
 MyList: TStringList;

begin

 MyList := TStringList.Create; //erzeugt das Objekt
 try
 MyList.LoadFromFile(ExtractFilePath(Application.ExeName));
 editname.text :=MyList.Values[MyList.IndexOfName('name')];
 editvorname.text :=MyList.Values[MyList.IndexOfName('vorname')];
 finally
 MyList.Free; //zerstört das Objekt
 end;
end;

Gruss, Niels