![]() |
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! |
Re: Inhalt eines TEdit in Textdatei speichern
Nimm doch dafür eine
![]() |
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. |
Re: Inhalt eines TEdit in Textdatei speichern
Wie fügst du den die werte in die StringListe ein?
|
Re: Inhalt eines TEdit in Textdatei speichern
Hallo, das ist eigentlich ganz simpel. Das Prinzip:
Delphi-Quellcode:
Es kann nur bei sehr großen Dateien irgendwann zeitkritisch werden, aber das wirst Du dann schon merken ;)
StringList.LoadFromFile(Dateiname);
StringList.Add(Messwert); StringList.SaveToFile(Dateiname); |
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:
Später kannst du Liste per SaveToFile() in einer Datei speichern.
procedure TDemoForm.EditChange(Sender: TObject);
begin with Sender as TEdit do Liste.Add(Text); end; Freundliche Grüße |
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:
davor muss dann stehen
TEdit.Text := WasAuchImmer;
Delphi-Quellcode:
Ein Editfeld sollte nur ausgelesen werden, wenn dort User-Eingaben reingeschrieben werden.
TStringList.Add(WasAuchImmer);
Grüße, Messie |
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:
Die Daten übernehme ich im Ereignis, wo die Daten ausgelesen werden.
procedure TForm1.FormCreate(Sender: TObject);
begin Stringlist:=Tstringlist.Create; end;
Code:
Im OnChange Ereignis sichere ich die Daten.
if checkbox1.Checked then
Stringlist.Add(Temp_f); edit4.text:=Temp_f;
Code:
Im Close Ereignis gebe ich die Stringlist wieder frei.
procedure TForm1.Edit4Change(Sender: TObject);
begin if Checkbox1.Checked then x:= GetCurrentDir; x:=x+'\MSAVE.txt'; Stringlist.SaveToFile(x); end;
Code:
Vielen Dank nochmal für die rasche Hilfe.
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin Stringlist.free; end; |
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; |
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 23:23 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