Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi PChar aus TFileStream lesen (https://www.delphipraxis.net/38248-pchar-aus-tfilestream-lesen.html)

Rangarig 16. Jan 2005 18:25


PChar aus TFileStream lesen
 
Hallo,

ich möchte einen PChar aus einen TFileStream lesen, aber es folgenter Fehler: EAccessViolation.


Hier mein Code:
Delphi-Quellcode:
...
var
len : integer;
temp : PChar;
f : TFileStream;
...
f.Read(len, sizeof(len));
if (len > 0) then
begin
f.Read(temp, len);
end;
Ich habe auch ausprobiert, indem ich den Read-Befhel auskommentiert habe, da lief es ohne Probleme.


Danke schoneimal in Vorraus.

tommie-lie 16. Jan 2005 18:53

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.

Rangarig 16. Jan 2005 22:44

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