![]() |
Re: Pointer zu String?
stra ist ein globales array of string.
den pointer setze ich selbst. Und untypisiert ist er weil auch andere Typen als string am anderen ende vorkommen können. |
Re: Pointer zu String?
OKOKOK, ihr braucht euch keine Gedanken machen.
Der leerstring wurde von mir schon da eingesetzt, ich hatte es nur nicht mitgekriegt. :( Danke euch allen für eure Bemühungen! |
Re: Pointer zu String?
Ja, das
Zitat:
und oben noch ein bissl rumeditiert. :oops: [edit] bitte und :lol: |
AW: Pointer zu String?
Ich hab auch mal ne Frage zu dem Thema:
Delphi-Quellcode:
was für ein Typ ist denn ein string[n] ?
var
sIn1:string; sIn2:string[2]; p1,p2:pointer; s1,s2 :string; begin sIn1:='foobar'; sIn2:='fb'; p1:=addr(sIn1); p2:=addr(sIn2); s1:=pstring(p1)^; s2:=pstring(p2)^;//exception, warum bei string[2] ? showmessage(s1+'/'+s2); end; Wirft bei der dem Zugriff pstring(p2)^ ne EAccessViolation aus. |
AW: Pointer zu String?
Der Typ String[X] ist ein ShortString mit der maximalen Länge X.
Das sollte aber auch in der OH zu finden sein. (irgendwo) Und da String/AnsiString/UnicodeString (nicht WideString) intern "LongStrings" und das bereits Pointer sind, sollte das Dereferenzieren von pstring(p1)^ ebenfalls falsch sein, da es wohl eher string(p1) lauten müsste. :gruebel: |
AW: Pointer zu String?
Delphi-Quellcode:
klappt :)
s2:=PShortString(p2)^;
hmmm, ich vermute mal man kann nicht prüfen, ob der Pointer, normaler String oder Shortstring ist? |
AW: Pointer zu String?
Zitat:
Delphi-Quellcode:
Also DAS ist wirklich ne EVIL function.
s1:=string(p1);
Hat bei mir grad Windows gekillt. (mit D7 getestet, und im zweiten anlauf hat windows überlebt) krallt sich den Maximal verfügbaren RAM :lol: |
AW: Pointer zu String?
Windows 9x?
Zitat:
|
AW: Pointer zu String?
:-D neee win7.
Aber ich hatte beim ersten Mal auch noch 2 vms und vis Studio offen und der RAM war dementsprechend schon etwas voll |
AW: Pointer zu String?
Ups
![]()
Delphi-Quellcode:
entspricht
p1:=addr(sIn1); p2:=addr(sIn2);
Delphi-Quellcode:
, womit das mit den
p1:=@sIn1; p2:=@sIn2;
Delphi-Quellcode:
doch stimmt.
PString(sIn1)^
Aber da hatest du zufällig ganz böses Pech, dass dein Programm nicht vorher mit OutOfMemory abbrach, sondern das grade noch so in den RAM reinbekommen hatte und dann für nichts Anderes mehr Platz war. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:10 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