![]() |
PChar aus TFileStream lesen
Hallo,
ich möchte einen PChar aus einen TFileStream lesen, aber es folgenter Fehler: EAccessViolation. Hier mein Code:
Delphi-Quellcode:
Ich habe auch ausprobiert, indem ich den Read-Befhel auskommentiert habe, da lief es ohne Probleme.
...
var len : integer; temp : PChar; f : TFileStream; ... f.Read(len, sizeof(len)); if (len > 0) then begin f.Read(temp, len); end; Danke schoneimal in Vorraus. |
Re: PChar aus TFileStream lesen
Ein PChar ist ein Pointer auf einen nullterminierten String. Für den musst du Speicher reservieren und für um an den Speicher ranzukommen musst du den Pointer dereferenzieren, denn TFileStream.Read schreibt in einen Speicherbereich.
Du musst dir also mit GetMem soviele Bytes reservieren, wie du für den String brauchst, und beim lesen den Pointer dereferenzieren und TFileStream.Read somit nicht einfach eine Variable mit einer Adresse, sondern die Adresse selbst geben. |
Re: PChar aus TFileStream lesen
Danke tommi-lie. Ich habe die Änderungen vorgenommen und jetzt funktioniert es.
|
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