AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Edittext speichern

Ein Thema von Zer0_24 · begonnen am 11. Okt 2009 · letzter Beitrag vom 11. Okt 2009
Antwort Antwort
Zer0_24

Registriert seit: 11. Okt 2009
3 Beiträge
 
#1

Edittext speichern

  Alt 11. Okt 2009, 01:11
Moin,

ich programmiere seit kurzem mit Delphi7. Bei einem Programm von mir wird eine Zahl als Edittext ausgegeben. Diese Zahl möchte ich speichern, sodass sie nach dem Schließen, beim nächsten Öffnen des Programms immernoch dort steht. Wie funktioniert das?

MfG
  Mit Zitat antworten Zitat
Benutzerbild von isilive
isilive

Registriert seit: 15. Okt 2008
Ort: Österreich
192 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Edittext speichern

  Alt 11. Okt 2009, 03:07
Servus Zero,

du kannst die Datei in eine Ini-Datei schreiben. Schau dir das mal an.

Mit AssignFile kann man auch Texte in Dateien schreiben und lesen.

Alternativ könntest du den Wert in die Registry schreiben, aber das würde ich dir erst empfehlen wenn du Delphi im Griff hast, damit du dir da nix vergurkst.
Stefan
Jedoch kann die referenzbasierte Implementierung des Standard-Objektmodells in Kombination mit den komplexen syntaktischen Dereferenzierungsregeln bei einer objektorientierten API wie ein Stolperstein wirken.
  Mit Zitat antworten Zitat
stiftII

Registriert seit: 2. Sep 2009
Ort: Cuxhaven
122 Beiträge
 
#3

Re: Edittext speichern

  Alt 11. Okt 2009, 03:20
Hallo,
Du kannst zB. eine Datei erzeugen, in der diese Zahl gespeichert wird, diese lädst du dann beim erneuten Start des Programmes.

Delphi-Quellcode:
var
myfile : textfile;
s1 : string;
begin
//Überprüfen ob datei existiert
If Not fileExists('MeineZahl.txt') Then
 Begin
   //Wenn nicht mit wert von edit1 füllen
   AssignFile(myfile,'MeineZahl.txt');
   Rewrite(myfile);
   WriteLn(myfile,edit1.text);
 end else
 begin
   //Wenn Existiert, edit1 mit mit meinezahl.txt füllen..
   AssignFile(myfile,'MeineZahl.txt');
   reset(myfile);
   readln(myfile,s1);
   edit1.Text := s1;
 end;
 //Datei schließen.
 closefile(myfile);
Wenn du möchtest, dass die zahl, welche im edit1 steht beim schließen des Programmes gespeichert wird, dann führe das ganze im OnDestroy Ereignis deiner Hauptform aus.

Und zum einlesen eben beim OnCreate Ereignis.

~stift
  Mit Zitat antworten Zitat
Zer0_24

Registriert seit: 11. Okt 2009
3 Beiträge
 
#4

Re: Edittext speichern

  Alt 11. Okt 2009, 18:52
Danke für die Antworten,

ich habs jetzt mal mit der textdatei versucht. Eine Fehlermeldung bekomme ich nicht, die textdatei wird auch erstellt; allerdings ist sie leer und der edittext steht dach dem erneuten öffnen auch nicht mehr im editfenster. ich hab jetzt den kompletten code bei OnClose und bei OnShow der Hauptform. Muss ich da noch irgendwas unterschiedlich machen (einmal readln und einmal writeln oder so)?

mfg
  Mit Zitat antworten Zitat
stiftII

Registriert seit: 2. Sep 2009
Ort: Cuxhaven
122 Beiträge
 
#5

Re: Edittext speichern

  Alt 11. Okt 2009, 19:05
Hallo nochmal,
Vielleicht hatte edit1 keinen Wert als die Datei geschrieben wurden ist. Mit dem Script von mir wird die Datei nämlich nur ein einziges mal geschrieben, wenn sie existiert nur noch gelesen..

Einfach die Datei nochmal löschen und edit1 mit nem Wert füllen .

~stift
  Mit Zitat antworten Zitat
Benutzerbild von isilive
isilive

Registriert seit: 15. Okt 2008
Ort: Österreich
192 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Edittext speichern

  Alt 11. Okt 2009, 20:19
Natürlich musst du den Code von Stift anpassen. Das war nur ein Beispiel.

Du musst am Anfang einlesen:
Delphi-Quellcode:
var myfile : textfile;
s1 : string;
begin
   AssignFile(myfile,'MeineZahl.txt');
   reset(myfile);
   readln(myfile,s1);
   edit1.Text := s1;
   closefile(myfile);
   end;
... Und später einmal schreiben. Ob du das bei Form.destroy oder auf Knopfdruck oder sonstwas machst, kannst du dir aussuchen.

Delphi-Quellcode:
var myfile : textfile;
s1 : string;
begin
   AssignFile(myfile,'MeineZahl.txt');
   Rewrite(myfile);
   WriteLn(myfile,edit1.text);
   closefile(myfile);
end;
Versuche zu verstehen was jede einzelne Zeile macht, dann ist auch klar was wo und warum eingebaut gehört. Dies hier ist auf edit1 zugeschnitten, wenn dein Edit Feld anders heisst, dann ist das natürlich zu ändern.
Was auch noch fehlt ist eine Abfrage ob die Datei überhaupt schon existiert -> fileexists
Stefan
Jedoch kann die referenzbasierte Implementierung des Standard-Objektmodells in Kombination mit den komplexen syntaktischen Dereferenzierungsregeln bei einer objektorientierten API wie ein Stolperstein wirken.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: Edittext speichern

  Alt 11. Okt 2009, 20:40
Zitat von isilive:
AssignFile(myfile,'MeineZahl.txt');
Dateinamenangaben ohne komplette Verzeichnisangabe sind problematisch da sie vom aktuellen Arbeitsverzeichnis der Exe abhängen. Un diese kann durch diverse Aktionen (z.B. Datei öffnen/speichern-Dialog geändert worden sein.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Zer0_24

Registriert seit: 11. Okt 2009
3 Beiträge
 
#8

Re: Edittext speichern

  Alt 11. Okt 2009, 21:12
@ stift und isilive: Perfekt, vielen Dank.
@ Bernhard: Also du meinst ich soll noch das Verzeichnis mit angeben?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 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