![]() |
Re: frage zu strings+Char
Zitat:
|
Re: frage zu strings+Char
Moin Chewie,
angenommen sHuge sei eine Variable vom Typ string, dann können die einzelnen Zeichen über den Index erreicht werden, wobei der Index von 1 bis length(sHuge) reicht. sHuge enthält die Adresse des ersten Zeichens des Inhaltes, also wäre der Offset des ersten Zeichens, relativ zur Adresse des ersten Zeichens gleich 0. |
Re: frage zu strings+Char
Zitat:
|
Re: frage zu strings+Char
Hallo Christian Seehase,
MyString[1] ist bei einem Short String und einem Huge String ein und dasselbe Zeichen. Das ist eben so, egal ob mit einem Längenbyte oder mit 4. bye |
Re: frage zu strings+Char
Moin Zusammen,
@Silent: Bei einem HugeString befindet sich auf den Bytes -8 bis -5 der Referenzzähler, und auf -4 bis -1 das Längenfeld des Strings (Werte relativ zu der Adresse in sHuge) Deshalb -4, da dann auf das niederwertigste Byte des Längenfeldes adressiert wird. Offsets relativ zu der Adresse in sHuge: (Wert darunter in Hex, bezogen auf das Beispiel)
Code:
Hier hat der Referenzzähler den Wert -1, da sHuge direkt eine Stringkonstante zugewiesen wurde (sHuge := '01234'). Diese haben immer den Referenzzähler -1, da sie ihren Wert nicht verändern.
Referenzz. |Länge | Inhalt
-8 -7 -6 -5 | -4 -3 -2 -1 | 0 1 2 3 4 5 6 FF FF FF FF | 05 00 00 00 | 30 31 32 33 34 35 00 Wichtig ist hierbei noch, dass die bei Intel übliche Speicherreihenfolge Verwendung findet, also das niederwertigste Byte zuerst, das höchstwertigst zuletzt. Deshalb steht die 5 auf Offset -4. Würdest Du also bei meinem Beispiel -5 statt -4 schreiben, müsste als Ergebnis 1535 (dezimal) herauskommen.
Code:
und bei -3
-5 -4 -3 -2
FF 05 00 00 => 000005FF Hex => 1535 Dez
Code:
@Duffy:
-3 -2 -1 0
00 00 00 30 => 30000000 Hex => 805306368 Dez Das ist natürlich richtig, aber ich finde, dass es nicht schaden kann mal auf die Unterschiede der Stringtypen einzugehen. |
Re: frage zu strings+Char
Hallo Christian Seehase,
schaden kann es auf keinen Fall ... bye |
Re: frage zu strings+Char
danke für die ausführliche erklärung chris
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:42 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