![]() |
Dateitypen
Hallo,
ich suche eine Art, Daten mit längeren Strings zu speichern. Eine Datei, die sehr lange String und Integer-Werte speichern kann. Geht ja mit den records nicht. Habe auch schon mit XML gearbeitet, aber das ist auch nicht so das Gelbe vom Ei. Wäre für Hilfe Dankbar! |
Re: Dateitypen
Was spricht dagegen, Strings einfach im Textformat zu speichern? Da kannst du bis zu 2 GB Text am Stück speichern.
|
Re: Dateitypen
Geht ja mit den records nicht <- ?
|
Re: Dateitypen
Zitat:
@Topic Da hat wohl einer die CodeLib vergessen. ;) Da findet man nämlich so schöne Sache wie die ![]() Vergesse also einfach ganz schnell, dass es sowas wie records gibt. ;) Leite deine Klasse von TCollectionItem ab und alles, was gespeichert werden soll deklarierst du als published property.
Delphi-Quellcode:
unit uPerson;
interface uses Classes, dpCollection; type TBeruf = (Entwickler, Maurer, Imperator); type TPerson = class(TCollectionItem) private fVorname: string; fBeruf: TBeruf; published property Vorname: string read fVorname write fVorname; property Beruf: TBeruf read fBeruf write fBeruf; end; {$DEFINE TYPED_DP_COLLECTION_TEMPLATE} type _COLLECTION_ITEM_ = TPerson; {$INCLUDE dpCollection_tmpl.pas} TPersonCollection = _COLLECTION_; implementation {$INCLUDE dpCollection_tmpl.pas} end.
Delphi-Quellcode:
Gespeichert wird:
var
newPerson: TPerson; Personen: TPersonCollection; const FileName = 'Personen.dfm'; begin Personen := TPersonCollection.Create(); newPerson := Personen.Add; with newPerson do begin Vorname := 'Robert'; Beruf := Entwickler; end; Personen.SaveToFile('Personen.dfm'); end.
Code:
Klingt noch nicht sonderlich cool, oder?
object COLLECTION_: _COLLECTION_
items = < item Vorname = 'Robert' Beruf = Entwickler end> end hmmm..., stelle dir vor, du musst deine Klasse später erweitern:
Delphi-Quellcode:
Genau hier versagt ein File Of [Datentyp].
private
fName: string; ... published property Name: string read fName write fName; ... Mit der dpCollection ist das kein Problem. :)
Delphi-Quellcode:
Jetzt haben wir:
Personen.LoadFromFile('Personen.dfm'); //lade alte Daten
newPerson := Personen.Add; with newPerson do begin Vorname := 'Hans'; Name := 'Schröder'; // neue Eigenschaft! Beruf := Maurer; end; Personen.SaveToFile('Personen.dfm'); // zurück schreiben
Code:
Die Collection ist also vollständig abwärtskompatibel. :)
object COLLECTION_: _COLLECTION_
items = < item Vorname = 'Robert' Beruf = Entwickler end item Name = 'Schr'#246'der' Vorname = 'Hans' Beruf = Maurer end> end oder ums es kleiner zu bekommen:
Delphi-Quellcode:
Personen.Binary := True;
Code:
TPF0_COLLECTION_COLLECTION_itemsVornameRobertBeruf
Entwickler Name SchröderVornameHansBeruf Maurer |
DP-Maintenance
Dieses Thema wurde von "Sharky" von "VCL-Komponenten und Controls" nach "Object-Pascal / Delphi-Language" verschoben.
Von einem netten Moderator verschoben ;-) Passt nicht so wirklich zu VCL. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 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