Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi,

ich hab gerade ein schönes Formular gemacht in dem ich viel eingeben kann.

Doch alles eingegebene nutzt mir nichts, wenn ich es nicht speichern und laden kann.

Somit ist bei mir nun die Frage: Wie speicher ich meine Eingaben ab und wie lade ich sie wieder.

Ich weiß das die richedit Felder eine SaveToFile-Funktion haben, aber ich hab mehr als nur das, das muss gespeichert werden:

- ca. 150 Edit

- 1 StringGrid

- 3 RichEdit

- 3 Labels

Ich dachte irgendwie daran,beim speichern, alle Daten in ein RichEdit zu schreiben udn des dann zu speichern.

Beim laden wird die Datei ins RichEdit geschrieben und des dann zeilenweise ausgelesen.

Ich dacht mit gleich ich schreib in des ding dann zB "edt_alter->Text=123"

-> Also die direkte Zuweisung der Variablen.

Dabei kam mir allerdings die Frage:

Ich hab die Zuweisung als String, wie könnte ich die dann ausführen?

Oder gibts vllt ne schöne einfache Methode das zu machen?

Ich verwende den Borland C++ 5 auf WinXP

Geschrieben

also ich hab die daten nun wie beschrieben in eine datei geschrieben.

also a la

edt_name->Text = "Eingabe"

laden aus der Datei tu ichs wieder in das RichEdit Feld (das vorher geleert wird)

nun hab ich da in jeder Zeile sozusagen die Wertzuweisung stehen.

Über RichEdit->Lines kann ich auf die Zeilen zugreifen und jede einzelne Zuweisung erhalten

Mein Problem nun:

Wie mach ich das?

Also sowas wie eval() oder evaluate() oder exec() is entweder nich da, oder das falsche.

Wie bekomm ich meine Werte in meine Felder???

Geschrieben

ja.

ich hab halt einfache Textboxen, Richeditfelder und ein StringGrid welches in einer Datei speichern will und natürlich auch wieder Laden.

Es klappt aber nich so richtig.

Ich wüsste mehrere Wege die Daten zu speichern, aber bei keinem wüsste ich, wie ich sie wieder laden soll :(

Geschrieben

Womit wird bei dir denn die GUI erstellt, ich habe bisher nur mit VC++ in dieser hinsicht gearbeitet. Dabei wird jedem Feld eine Variable zugewiesen. Wird in den Feldern etwas verändert / oder in den Variablen, ist es jedoch nicht in dem jeweils anderen auch geändert, dazu gibts einen Befehl *uffz, wie war der noch gleich* um die dinger abzugleichen.

Die Variablenzuweisung geschah bei mir irgendwo von Visual Studio aus...ich fand es grottig ^^

Einmal in den Variablen kann ich damit ja normale Dateioperation machen / andersrum sie aus der DAtein in die Variablen ziehen, abgleichen und anzeigen :)

Geschrieben

also ich mach die GUI mit dem Borladn C++ Builder 5

Das meine Werte in speziellen Variablen stehen wäre mir neu, ich greif mit "Objektname->Text" bzw. "Objektname->Caption" oder blah blah, eben über direkten Zugriff auf den Wert.

Also den Schreib ich mir auch mit genau dem Zugehörigen Zeugs in eine Datei.

In der Datei steht dann sowas wie:

Feld1->Text = "Hallo"

Feld2->Text = "Wie gehts?"

Titel1->Caption = "Welcomescreen"

usw.

das ist das gleiche wie im Code, wenn ich einem feld etwas zuweise.

Aus SHellskripten und in Basic isses glaub ich auch, kenn ich halt sowas wie eval(para1,para2) oder eval("5+7"), hab da auch schon geschaut und nur Bibliotheken für mathematische Ausdrücke gefunden, das hilft mir wenig -.-

Also wenn ich dich richtig verstanden hab, soll ich die einzelnen zeilen auslesen und dann sowas wie (is jetzt pseudocode):


for(i = 0; i < FILE->Zeilen.Count() ; i++){

 Zeilenteile[2] = split(FILE->Zeile[i], " = ")

 if(Zeilenteile[1] == "Objekt1"){

  Objekt1->Text = Zeilenteile[2];

 }

 if(Zeilenteile[1] == "Objekt2"){

  Objekt2->Text = Zeilenteile[2];

 }

 if(Zeilenteile[1] == "Objekt3"){

  Objekt3->Text = Zeilenteile[2];

 }

  //usw.

}

boa, bei knapp 300 elementen is das zum einen ganz schön viel copy+paste und zum anderen ganz schön viel rechnerei...

is das wirklich die art wies gemacht wird???

oder gibts da schon was beim abspeichern zu beachten was das laden vereinfacht???

Geschrieben

hmhmhm... also an sich frage ich mich wieso du überhaupt diesen Syntax wählst / wie der zustande kommt.

Im Normalfall machst du ja einen Dateizugriff, tippst du beim schreiben jedesmal Objektnamen->Attributnamen mit ein ?

Wenn es eine gelieferte funktion gibt, die dir deine Variablen in eine Datei schreibt, so ist sie vermutlich Borland-spezifisch. Demnach müsste es aber auch eine funktion geben, die dir das automatisch wieder zurückließt.

Ich glaube bei Java kann man viel mit Serialisieren von Objekten machen...aber ich halte seit einiger Zeit abstand zu C++ *g*

Geschrieben

es gibt lediglich bei RichEdit Feldern die Möglichkeit über die Methode "SaveToFile" den Inhalt uz speichernu nd per "LoadFromFile" wieder zu laden.

Dies gilt aber rein für die RichEdit Felder und nicht für die Textfelder.

Zz werden die Daten direkt über die Dateioperationen fwrite in die Datei geschrieben.

das, was ich reinschreibe, setz ich mir selber zusammen, ich könnte auch rein den wert des Objekts reinschreiben.

hmm... Naja, wie dem auch sei, ich werds wohl so lösen das ich einfach die Datei auslese und jede Zeile den Wert eines Objekts darstellt.

Na, wird n haufen Copy+Paste arbeit und beschleunigen wirds mein Prog wohl leider auch nich, aber egal, ich speicher bzw. lad meine Daten ja nich alle zwei Sekunden ;)

Geschrieben
Also den Schreib ich mir auch mit genau dem Zugehörigen Zeugs in eine Datei.

In der Datei steht dann sowas wie:

Feld1->Text = "Hallo"

Feld2->Text = "Wie gehts?"

Titel1->Caption = "Welcomescreen"

usw.

das ist das gleiche wie im Code, wenn ich einem feld etwas zuweise.

Der Ruf nach einer Eval-Funktion ist oft (nicht immer) ein Hinweis auf ein Designproblem.

Du solltest dich von diesem ganzen Konzept verabschieden. Mal ganz davon abgesehen, dass es nicht funktioniert, weil Bezeichner wie "Feld1" und "Feld2" zur Laufzeit im Programm gar nicht mehr drin sind: Dieser Ansatz ist nicht sinnvoll. Du verwendest interne Eigenschaften der Implementierung für die Datenschnittstelle. Dadurch schaffst du zusätzliche Abhängigkeiten in deinem Code, die später, wenn du etwas ändern möchtest, zu Problemen führen.

Ich empfehle dir, die Struktur der Datei zu ändern, so dass nicht der Bezeichner des Steuerelements, sondern der Sinn des zugeordneten Textes drinsteht:

Begruessung1 = "Hallo"

Begruessung2 = "Wie gehts?"

Titeltext = "Welcomescreen"

Diese Sinnbezeichner kannst du dann im Programm den Steuerelementen zuordnen.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...