Entwickler-Ecke
Sonstiges (Delphi) - record abspeichern, aber wie ?
mimi - Fr 23.05.03 20:26
Titel: record abspeichern, aber wie ?
Hallo,
wie kann ich am besten folgenden record abspeichern:
Delphi-Quelltext
1: 2: 3: 4:
| type TTK = record Termin, Wann, Um, Bemerkung:String; end; |
das ist ein dynamischer array
Segelflieger - Fr 23.05.03 22:39
meinst du in einer Datei speichern?
mimi - Fr 23.05.03 22:40
bisher habe ich mir dafür immer ein einges format ausgedeacht und habe mit TSringList gearbeitet aber das finde ich doof.
und suche eine besser/schneller lösung, gibt es eine ?
Delete - Sa 24.05.03 14:42
An deinem Beispiel, habe ich übrigens meine Klasse aufgebaut. Mir hat nicht gefallen, dass die Wiederverwendbarkeit nicht so gegeben war. Ich denke, dass habe ich mit meiner Klasse mehr oder weniger gelöst, man muß nur die Felder des Rekords in der Datei TypedFile.pas seinen bedürfnissen anpassen, dann kannman die Methoden ganz einfach benutzen und muß sich um nichts mehr kümmern. Kuck es dir doch mal an und sag mir mal was du davon hältst.
mimi - Sa 24.05.03 14:54
was mich nur stört ist:
Delphi-Quelltext
1:
| Vorname, NachName : STRING[40]; |
das [40] könnte man darauf nicht versichten ????
Delete - Sa 24.05.03 15:00
Nein.
Es muß ja Speicher für den Record reserviert werden und das geht nur, wenn vorher bekannt ist, wie groß dieser Record ist. Deshalb sind typisierte Dateien mit Strings auf ShortStrings begrenzt. Ein normaler Pascal String ist ja auch nur ein dynamisches Array und die bekommst du auch nicht in Records unter, eben weil deren Größe unbekannt ist.
mimi - Sa 24.05.03 15:36
gibt es noch mehr wege ein record einfach abzuspeichern, ohne dafür extra ein format zu erstellen ?
Delete - Sa 24.05.03 15:38
Der Record ist Datei-Format.
mimi - Sa 24.05.03 15:44
ja schom, aber bei meinen formaten die ich immer erstelle brauche ich keine [40] einzugeben, und so, und ich dachte halt das es einen allgemeinen weg gibt:)
Delete - Sa 24.05.03 15:50
Wenn ich das richtig verstanden habe, hast du ja immer nur Stringlisten abgespeichert. Und das sind ganz normale ASCII-Textdateien. Von einem eigenen Dateiformat kann also keine Rede sein.
Klabautermann - Sa 24.05.03 15:53
Hallo,
| mimi hat folgendes geschrieben: |
| gibt es noch mehr wege ein record einfach abzuspeichern, ohne dafür extra ein format zu erstellen ? |
ein Format musst du dir immer erstellen, die Frage ist nur, ob du den Einfachen Weg über Typisierte Dateien gehst, für diese muss ein Record Fester größe vorhanden sein, oder ob du mehr Flexibilität benötigst und dafür dann aber auch mehr Arbeit investierst.
Ein Beispiel für einen Formatentwurf der letzten Kathegorie findest du im
dritten Link [
http://www.delphi-forum.de/viewtopic.php?t=9624] aus meinem letzten Post. Dort wird zwar auch auf Basis von Records gearbeitet, du kannst aber auch jeden anderen Datentyp (String) zugrundelegen und diese auch mischen. Du musst nur die entsprechenden Zusatzinformationen mitnehmen.
Gruß
Klabautermann
Klabautermann - Sa 24.05.03 16:03
Hallo,
| Luckie hat folgendes geschrieben: |
| Kuck es dir doch mal an und sag mir mal was du davon hältst. |
macht 'n ganz guten eindruck. Es ist doch immer wieder erstaumlich was man mit wenig Aufand machen kann. Denn deine Klasse beherrscht ja so ziemlich alles was man so zur (typisierten)Datenspeicherung benötigt. Ich wollte mal sowas ähnliches machen, allerdings auf Basis von untypiserten Dateien, dann muss die Klasse nur die Größe des Records kennen, seine Struktur aber nicht. Mal wieder eines dieser "irgendwann wenn ich Zeit und Lust habe" Projekte ;).
Gruß
Klabautermann
Delete - Sa 24.05.03 16:11
| Klabautermann hat folgendes geschrieben: |
| allerdings auf Basis von untypiserten Dateien, dann muss die Klasse nur die Größe des Records kennen, seine Struktur aber nicht. |
Das wäre der Gag überhaupt, dann kann man die Recorddeklaration ganz aus der Klassen-Datei rausnehmen und übergibt zusätzlich nur die Recordgröße.
mimi - Sa 24.05.03 16:16
was meinst du mit Recordgröße ?
der einzelen variable ?
oder wie meinst du das ?
Klabautermann - Sa 24.05.03 19:23
Hi,
| mimi hat folgendes geschrieben: |
was meinst du mit Recordgröße ?
der einzelen variable ?
oder wie meinst du das ? |
ja, aber die Variante setzt immernoch voraus, das du weist, wie Groß deine Daten sind, das tust du nicht mehr sobald du die Eckigen Klammern bei Strings weglässt.
Gruß
Klabautermann
mimi - Sa 24.05.03 19:50
aber in mein fall muss ich strings abspeichern wo ich nicht die größe immer weiß.... und wo ich auch keine maxi größe festlegen möchte, gibt es dafür auch eine lösung ?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!