Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Inhalt eines TEdit in Textdatei speichern (https://www.delphipraxis.net/108496-inhalt-eines-tedit-textdatei-speichern.html)

Froms 14. Feb 2008 19:54


Inhalt eines TEdit in Textdatei speichern
 
Hallo lieber DP-ler. :hi:

Ich lese schon seit geraumer Zeit hier im Forum. Meine ersten Delphierfahrungen habe ich damals in der Schule gemacht. Danach habe ich nie wieder was damit gemacht. Jetzt musste ich jedoch ein kleines Testprogramm erstellen und kam so wieder auf Delphi zurück. Und so kommt auch meine erste Frage zu Stande.

In ein Editfeld werden alle paar Sekunden Werte geschrieben. Diese möchte ich auslesen und in eienr Textdatei speichern. Eventuell soll später daraus noch ein Diagramm erstellt werden. Dies ist jedoch nicht vorrangig.
Ich mache es gerade so, dass ich den Inhalt des TEdit in ein Stringgrid schreibe und dieses wiederum in einer Textdatei ablege.
Jedoch ist dort schon mein Problem. Jeder gelesene Wert wird immer in die erste Zeile geschrieben. Ich habe versucht irgendwie einen Zeilenumbruch (#13#10) einzufügen. Jedoch gelingt mir dies nicht. Der Wert wird somit immer in der ersten Zeile überschrieben.

So kann ich keine Daten aufzeichnen. Ich hoffe ihr könnt damit etwas anfangen und mir etwas auf die Sprünge helfen. :coder:

Vielen Dank schonmal im Voraus!

bitsetter 14. Feb 2008 20:01

Re: Inhalt eines TEdit in Textdatei speichern
 
Nimm doch dafür eine Delphi-Referenz durchsuchenTStringList.

Froms 14. Feb 2008 20:08

Re: Inhalt eines TEdit in Textdatei speichern
 
Ich merke es ist eindeutig schon zu spät.... :oops:
Meinte oben ja auch Stringlist. Also nicht Stringgrid.

mkinzler 14. Feb 2008 20:13

Re: Inhalt eines TEdit in Textdatei speichern
 
Wie fügst du den die werte in die StringListe ein?

DeddyH 14. Feb 2008 20:14

Re: Inhalt eines TEdit in Textdatei speichern
 
Hallo, das ist eigentlich ganz simpel. Das Prinzip:
Delphi-Quellcode:
StringList.LoadFromFile(Dateiname);
StringList.Add(Messwert);
StringList.SaveToFile(Dateiname);
Es kann nur bei sehr großen Dateien irgendwann zeitkritisch werden, aber das wirst Du dann schon merken ;)

marabu 14. Feb 2008 20:17

Re: Inhalt eines TEdit in Textdatei speichern
 
Herzlich willkommen in der Delphi-PRAXiS, Thomas.

Die StringList erzeugst du wohl beim Ereignis OnCreate() deiner Form. Beim Ereignis OnChange() des Edit-Feldes könntest du den Inhalt der Liste hinzufügen:

Delphi-Quellcode:
procedure TDemoForm.EditChange(Sender: TObject);
begin
  with Sender as TEdit do
    Liste.Add(Text);
end;
Später kannst du Liste per SaveToFile() in einer Datei speichern.

Freundliche Grüße

messie 14. Feb 2008 20:55

Re: Inhalt eines TEdit in Textdatei speichern
 
Hmmm, der Ansatz gefällt mir nicht. Das Schreiben ins GUI sollte am Ende der Datenerfassung stehen. Die Daten müssen ja vorher schon zur Verfügung stehen, also werden sie gespeichert, bevor sie im TEdit landen.
Also, irgendwo hast Du die Zeile
Delphi-Quellcode:
TEdit.Text := WasAuchImmer;
davor muss dann stehen
Delphi-Quellcode:
TStringList.Add(WasAuchImmer);
Ein Editfeld sollte nur ausgelesen werden, wenn dort User-Eingaben reingeschrieben werden.

Grüße, Messie

Froms 15. Feb 2008 07:10

Re: Inhalt eines TEdit in Textdatei speichern
 
Guten Morgen allerseits,
ich bin sehr beeindruckt. In sehr kurzer Zeit bekam ich mehrere Antworten. Vielen Dank.

Ich habe das ganze jetzt folgendermaßen gelöst. Wenn das nicht ganz so elegant ist, dann bitte ich um Nachsicht und wenn ihr wollt, könnt ihr mich gern korrigieren.

Wie richtig vermutet, erstelle ich die Stringlist im FormCreate Ereignis.

Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Stringlist:=Tstringlist.Create;
end;
Die Daten übernehme ich im Ereignis, wo die Daten ausgelesen werden.

Code:
if checkbox1.Checked then
  Stringlist.Add(Temp_f);
  edit4.text:=Temp_f;
Im OnChange Ereignis sichere ich die Daten.

Code:
procedure TForm1.Edit4Change(Sender: TObject);
begin
  if Checkbox1.Checked then
  x:= GetCurrentDir;
  x:=x+'\MSAVE.txt';
  Stringlist.SaveToFile(x);
end;
Im Close Ereignis gebe ich die Stringlist wieder frei.
Code:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Stringlist.free;
end;
Vielen Dank nochmal für die rasche Hilfe.

peschai 15. Feb 2008 07:16

Re: Inhalt eines TEdit in Textdatei speichern
 
Hallo

meinst du etwa
Delphi-Quellcode:
procedure TForm1.Edit4Change(Sender: TObject);
begin
  if Checkbox1.Checked then
    begin
      x:= GetCurrentDir;
      x:=x+'\MSAVE.txt';
      Stringlist.SaveToFile(x);
    end;
end;

Froms 15. Feb 2008 07:53

Re: Inhalt eines TEdit in Textdatei speichern
 
Jopp, das meinte ich. Der Fehler ist mir nach kurzen Tests auch aufgefallen.
Vielen Dank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:49 Uhr.

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