![]() |
Wie kann ich einen Record in eine Datei schreiben/lesen
Hallo,
wie kann ich am einfachsten einen RECORD (nur STRINGS)) in eine Datei schreiben und lesen. Gruß Martin |
Re: Wie kann ich einen Record in eine Datei schreiben/lesen
da strings nur pointer sind musst du dir da selbst eine funktion schreiben welche die strings nacheinander in die datei schreibt da beim schreiben des gesamten records sonst nur die pointer in der datei landen
|
Re: Wie kann ich einen Record in eine Datei schreiben/lesen
Hallo !
Da gibt es mehrere Möglichkeiten, amleichtesten geht es eigentlich mit TFileStream.
Delphi-Quellcode:
gruss
var
fs: TFileStream; begin fs := TFileStream.Create('C:\test.dat', fmOpenWrite); try fs.Write(DeinRecord,SizeOf(DeinRecord)); finally fs.free; end; end; |
Re: Wie kann ich einen Record in eine Datei schreiben/lesen
in char umwandeln ( begrenzte länge 255 zeichen ) und diese dann speichern
mit z.b. BlockWrite |
Re: Wie kann ich einen Record in eine Datei schreiben/lesen
brauchst du nicht, da die maximale Länge von Strings in records sowieso bei 255.
|
Re: Wie kann ich einen Record in eine Datei schreiben/lesen
Genau auf die Weise wird er keinen Erfolg haben, denn gerade so werden nur die Pointer in die Datei geschrieben.
Es ist ganz wichtig, jeden einzelnen String in etwa so wie folgt zu speichern:
Delphi-Quellcode:
Das Speichern von Strings ist zwar sehr mühsam, lässt sich aber leider nicht viel einfacher machen. Muss man so hinnehmen. Auf jeden fall rate ich dir aber auch zu FileStreams!
procedure WriteStringToStream(stream: TFileStream; str: string);
var len: integer; begin len := length(str); // Länge des strings ermitteln stream.write(len, SizeOf(len)); // Länge des Strings speichern stream.write(PChar(str)^, len); // String mittels PChar speichern end; procedure ReadStringFromStream(stream: TFileStream; var str: string); var len: integer; begin stream.read(len, SizeOf(len)); // Länge des Strings auslesen SetLength(str, len); // Länge des Srings setzen stream.read(PChar(str)^, len); // Strings mittels PChar auslesen end; |
Re: Wie kann ich einen Record in eine Datei schreiben/lesen
Zitat:
Zitat:
Mfg Frank |
Re: Wie kann ich einen Record in eine Datei schreiben/lesen
Zitat:
|
Re: Wie kann ich einen Record in eine Datei schreiben/lesen
Zitat:
Delphi-Quellcode:
und
stream.write(str[1], 255);
Delphi-Quellcode:
greetz :-D
stream.read(str[1], 255);
|
Re: Wie kann ich einen Record in eine Datei schreiben/lesen
Zitat:
Dabei werden 100pro nur die Pointer gespeichert. Dafür leg ich meine Hand ins Feuer :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:40 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 by Thomas Breitkreuz