| Autor |
Beitrag |
mimi
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Fr 23.05.03 20:26
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
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Segelflieger
      
Beiträge: 124
WinXP Pro
D7 Prof
|
Verfasst: Fr 23.05.03 22:39
meinst du in einer Datei speichern?
_________________ Früher hatten die Menschen Angst vor der Zukunft. Heute muss die Zukunft Angst vor den Menschen haben.
|
|
mimi 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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 ?
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 23.05.03 23:43
Kuck mal hier:
[url= www.luckie-online.de...dfilessfx.exe]Klasse für typisierte Dateien mit Demo[/url]
|
|
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Sa 24.05.03 12:53
Hallo,
hier mal ein paar Links die dich interssieren könnten:
www.delphi-forum.de/viewtopic.php?t=7881
www.delphi-forum.de/viewtopic.php?t=7296
www.delphi-forum.de/viewtopic.php?t=9624
Grundtenor hierfür in diesen Artikeln sind Typisierte Dateien. Wie auch in den Postings erwähnt, kannst du hier ein Beispielprogramm dazu runterladen.
Gruß
Klabautermann
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 24.05.03 14:42
| Klabautermann hat folgendes geschrieben: | kannst du hier ein Beispielprogramm dazu runterladen.
|
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 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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 ????
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Sa 24.05.03 15:36
gibt es noch mehr wege ein record einfach abzuspeichern, ohne dafür extra ein format zu erstellen ?
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 24.05.03 15:38
Der Record ist Datei-Format.
|
|
mimi 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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:)
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: 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 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
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: 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
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: 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 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: Sa 24.05.03 16:16
was meinst du mit Recordgröße ?
der einzelen variable ?
oder wie meinst du das ?
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: 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 
      
Beiträge: 3458
Ubuntu, Win XP
Lazarus
|
Verfasst: 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 ?
_________________ MFG
Michael Springwald, "kann kein englisch...."
|
|