Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Edit-Eintrag speichern (https://www.delphipraxis.net/60073-edit-eintrag-speichern.html)

icqgoofy 2. Jan 2006 18:08


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

dahead 2. Jan 2006 18:15

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:
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;
Laden
Delphi-Quellcode:
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;
Das ganze kann man noch mit try finally verschönern, doch ich denke das prinzip ist klar.

edit1: rechtschreibfehler
edit2: laden-routine hinzugefügt.

buyden 2. Jan 2006 18:16

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;

icqgoofy 2. Jan 2006 19:32

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

3_of_8 2. Jan 2006 19:50

Re: Edit-Eintrag speichern
 
Das kann man prima mit INI-Files machen. Schau dich mal auf http://dsdt.info um.

Für Streber (Verweis auf mich) geht es auch mit XML.

Khabarakh 2. Jan 2006 20:03

Re: Edit-Eintrag speichern
 
Zitat:

Zitat von 3_of_8
Für Streber (Verweis auf mich) geht es auch mit XML.

Du verwechselst da was :stupid: . Streber sind faul. Sie streben nur, weil sie es nicht auf die einfache aber mühsame Art machen wollen. Deshalb lesen sie die Hilfe und verlassen sich auf die Streaming-Fähigkeiten von Delphi :wink: .

3_of_8 2. Jan 2006 20:10

Re: Edit-Eintrag speichern
 
Ich bin ja selber ein Streber. (Verdammt, schon wieder einen Thread OT gemacht)

Khabarakh 2. Jan 2006 20:23

Re: Edit-Eintrag speichern
 
Zitat:

Zitat von 3_of_8
Ich bin ja selber ein Streber. (Verdammt, schon wieder einen Thread OT gemacht)

Warum verwendest du dann die langweilige Methode :wink: ?
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

DGL-luke 2. Jan 2006 22:36

Re: Edit-Eintrag speichern
 
mmm... Khabarak... sach ma, frierst du da eine komplette Komponente ein? :shock:

Und wie lädt man die dann wieder?

Khabarakh 2. Jan 2006 22:55

Re: Edit-Eintrag speichern
 
Zitat:

Zitat von DGL-luke
mmm... Khabarak...

Du hast schon wieder das zweite "h" vergessen :zwinker: . Aber ist wirklich nicht der leichteste Name :stupid:
Zitat:

sach ma, frierst du da eine komplette Komponente ein? :shock:
Wenn du mit Frieren Speichern aller published Properties meinst: Jab :) . Auch wenn das nicht direkt mit dem Topic übereinstimmt, ist es bei den anderen Property-Änderungen wahrscheinlich auch erwünscht, dass sie mitgespeichert und nicht resettet werden (Beispiel: User wählt einen Font aus / platziert das Control neu).
Zitat:

Und wie lädt man die dann wieder?
Delphi-Referenz durchsuchenReadComponentRes :wink:
Mehr Möglichkeiten erhält man, wenn man [oh]TStream.Read/WriteComponent[/oh] direkt aufruft (beispielsweise mehrere Komponenten in einem Stream)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:14 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz