Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Adresse eines Array-Feldes ermitteln und anzeigen (https://www.delphipraxis.net/120690-adresse-eines-array-feldes-ermitteln-und-anzeigen.html)

devidespe 15. Sep 2008 12:33


Adresse eines Array-Feldes ermitteln und anzeigen
 
Hallo,

ich habe in meinem Programm ein Array-Feld mit 128 Chars deklariert, wovon ich zur Laufzeit die Speicheradresse ermitteln muss und diese anzeigen lassen möchte. Die Verwendung eines Pointers ermittelt ja die Adresse auf das angegebene Objekt, wie kann ich die Adresse aber für den Anwender verständlich auf dem Bildschirm ausgeben ?

Danke schonmal für die Antworten.

Delphi-Quellcode:
var t : array[1..128] of Char;
    p : Pointer;
begin
  p:=@t;
  ShowMessage('Hier möchte ich die Adresse von "t" hexadezimal ausgeben.');
end;

Tyrael Y. 15. Sep 2008 12:36

Re: Adresse eines Array-Feldes ermitteln und anzeigen
 
Delphi-Quellcode:
  LString := IntToHex(Integer(p), 2); //???

Neutral General 15. Sep 2008 13:03

Re: Adresse eines Array-Feldes ermitteln und anzeigen
 
Zitat:

Zitat von Tyrael Y.
Delphi-Quellcode:
  LString := IntToHex(Integer(p), 2); //???

Da Adressen aber normalerweise 4 Bytes groß sind, würde sich eine 8 als 2. Parameter ganz gut machen ;)

Oder mit Format gehts so:

Delphi-Quellcode:
Format('Die Adresse von t: %.8x',[Integer(p)])

Tyrael Y. 15. Sep 2008 13:14

Re: Adresse eines Array-Feldes ermitteln und anzeigen
 
Zitat:

Zitat von Neutral General
Da Adressen aber normalerweise 4 Bytes groß sind, würde sich eine 8 als 2. Parameter ganz gut machen ;)

Natürlich hast du Recht. :)

Ich habe nicht gelesen worum es ganz genau geht und habe den Sourcecode geschrieben in
der Annahme, daß er die Werte aus seinem Array als Hex dartsellen möchte, diese wären
ein Byte gr0ß gewesen.

Nachträglich habe ich gelesen, daß er die Adresse haben möchte und hab es verbummelt,
daraus eine 8 zu machen. Der zweite Parameter muss natürlich 8 sein.

Roachford 15. Sep 2008 13:45

Re: Adresse eines Array-Feldes ermitteln und anzeigen
 
Wie? Format() nutzen und dann noch unnötigen Aufwand treiben?

Delphi-Quellcode:
Format('Die Adresse von t: %p', [p])


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz