![]() |
Edit-Eintrag speichern
Ich hab ein kleines Problem!
Wie kann ich bei Delphi den Eintrag eines Edit-FEnster in einer Datei speichern? Ich habe schon etliches ausprobiert, aber bis jetzt hat noch nichts funktoniert. Gruß icqgoofy |
Re: Edit-Eintrag speichern
da gibt es viele arten das zu bewerkstelligen.
kuck dich mal hier im forum nach folgenden themen um: INI (TIniFile), Registrierung (TRegistry), XML. hier ein kurzes Beispiel für INI's (in die uses klausel den wert "Inifiles" hinzufügen): Speichern
Delphi-Quellcode:
Laden
var
INI: TInifile; begin INI := TInifile.Create('C:\inidatei.ini'); // Dateiname ggf. abändern INI.WriteString('Edit-Daten', 'EditAdresse', Edit1.Text); //1. Feld Sektion, 2. Feld Name, 3. Feld Wert INI.Free; //und wieder aus dem speicher damit end;
Delphi-Quellcode:
Das ganze kann man noch mit try finally verschönern, doch ich denke das prinzip ist klar.
var
INI: TInifile; begin INI := TInifile.Create('C:\inidatei.ini'); // Dateiname ggf. abändern Edit1.Text := INI.ReadString('Edit-Daten', 'EditAdresse', Edit1.Text); //1. Feld Sektion, 2. Feld Name, 3. Feld Standard-Wert INI.Free; //und wieder aus dem speicher damit end; edit1: rechtschreibfehler edit2: laden-routine hinzugefügt. |
Re: Edit-Eintrag speichern
Oder ganz simpel so:
Delphi-Quellcode:
procedure Tfrmconfig.btokClick(Sender: TObject);
var Textdatei: textfile; begin assignfile(Textdatei,'datei.ini'); rewrite(cTextdatei); writeln(Textdatei,edit1.text); closefile(Textdatei); end; |
Re: Edit-Eintrag speichern
Vielen Dank!
Es hat geklappt, man kann ja, dne Pfad sogar noch ändern :) Kann man eigentlich auch vorher noch einen Eintrag in die Textdatei machen, denn ich habe jtzt 5 vershceidene Edit-Fenster, damit ich auch späteer noch die gespeicherten Einträge zuordnen kann. Gruß icqgoofy |
Re: Edit-Eintrag speichern
Das kann man prima mit INI-Files machen. Schau dich mal auf
![]() Für Streber (Verweis auf mich) geht es auch mit XML. |
Re: Edit-Eintrag speichern
Zitat:
|
Re: Edit-Eintrag speichern
Ich bin ja selber ein Streber. (Verdammt, schon wieder einen Thread OT gemacht)
|
Re: Edit-Eintrag speichern
Zitat:
Meine persönliche Meinung ist jedenfalls, dass Streaming die einfachere und elegantere Methode ist, weshalb ich für Einstellungen überhaupt keine Inis mehr verwende.
Delphi-Quellcode:
WriteComponentResFile('foo.bar', Edit1);
// ~ try Ini := TIniFile.Create('foo.bar'); Ini.WriteString('Settings', 'Edit1', Edit1.Text); finally Ini.Free; end; // Und das nur für die Text-Property |
Re: Edit-Eintrag speichern
mmm... Khabarak... sach ma, frierst du da eine komplette Komponente ein? :shock:
Und wie lädt man die dann wieder? |
Re: Edit-Eintrag speichern
Zitat:
Zitat:
Zitat:
![]() Mehr Möglichkeiten erhält man, wenn man [oh]TStream.Read/WriteComponent[/oh] direkt aufruft (beispielsweise mehrere Komponenten in einem Stream) |
Re: Edit-Eintrag speichern
Interessant, Khabarakh, interessant.
Das is ja mal was ganz neues :thumb: |
Re: Edit-Eintrag speichern
Ich habe deshalb eine INI vorgeschlagen, weil es für sowas deutlich leichter zu machen ist.
|
Re: Edit-Eintrag speichern
Zitat:
PS: Jetzt musst du nur noch deine Sig korrigieren :wink: . Zitat:
Dass eine simple Funktion alle Eigenschaften eines Objektes speichert, finde ich nicht wirklich schwer zu verstehen. Von der Sicht eines erfahrerenen (was für ein Wort :mrgreen:) Programmierers finde ich meine obigen Code eher leichter, man kann nicht einmal einen try-finally-Block vergessen. Wenn es allerdings um allgemeine Einstellungen geht, ist eine Ini-Datei sicher gut, solange man sich nicht eingehend mit OOP beschäftigt hat. |
Re: Edit-Eintrag speichern
Also ich denke, wenn man den Text von 5 Editfeldern speichern will muss man nicht gleich Objektpersistenzframeworks auffahren. Eine simple INI oder eine Textdatei mit assignfile oder TFilestream oder von mir aus auch TStringList reicht vollkommen aus.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz