Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Rohdaten speichern - womit? (https://www.delphipraxis.net/154862-rohdaten-speichern-womit.html)

moelski 28. Sep 2010 14:09

Delphi-Version: 2010

Rohdaten speichern - womit?
 
Moin !

Ich habe ja hier schonmal gefragt ob es eine Stringliste gibt mit Spalten gibt. Dazu habe ich mal ein paar Tests gemacht und ich glaube eine Stringliste ist in Summe eher ungeeignet um Rohdaten zu speichern.

Vielleicht mal kurz vorweg was ich unter Rohdaten verstehe ...
Im Grunde möchte ich Daten von einem seriellen Port oder von einem USB HID Interface abspeichern. Da dort aber alle möglichen Zeichen kommen können ist eine Stringliste nicht so wirklich gut geeignet. Denn bei <CR> / <LF> bekommt man zusätzliche Zeilen.

Ich habe nun schon mal versucht die Daten in einer Datenbank zu speichern und zwar mit AbsoluteDB. Das klappt zwar, aber hat einen entscheidenden Nachteil. Ich muss dem Stringfeld eine feste Größe geben. Gerade bei Daten mit nicht festgelegter Länge ist das auf Dauer kontraproduktiv. Da verballert man ganz schnell ne Menge an Platz.

Im Moment bin ich am überlegen eine Klasse abgeleitet von TMemoryStream zu schreiben die mir direkt Funktionen zum Anhängen von z.B. Strings bietet sowei dessen auslesen.

Ich frage mich aber doch ob Delphi nicht schon irgendetwas fertig bietet um Binärdaten zu handhaben.
Wichtig wäre allerdings das man die Daten auf in einer Datei bzw. einen Stream speichern können sollte (und natürlich wieder davon auslesen).

Hat jemand eine Idee ?

Sir Rufo 28. Sep 2010 14:13

AW: Rohdaten speichern - womit?
 
Binäre Daten speichert man in einer Datenbank in einem Blob.
In Delphi nimmt man dafür am besten TStream

Das schreiben und lesen eines Blob-Feldes geht auch über einen Stream und schon sind wir alle zuhause.

moelski 28. Sep 2010 14:23

AW: Rohdaten speichern - womit?
 
Ein Blob ...
Da is was dran :-D

Na da werde ich doch gleich mal einen Test machen.
:thumb:

himitsu 28. Sep 2010 14:26

AW: Rohdaten speichern - womit?
 
Ansonsten mußt du es eben mit Längenangabe speichern und beim Auslesen die Längenangabe benutzen, anstatt die Text-üblichen Zeilentrenner.

Oder man legt es z.B. Bas64-kodiert ab, dann klappt es wieder mit der Stringliste.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:49 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