Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Pointer-Adresse (wie in C++) ausgeben (https://www.delphipraxis.net/117107-pointer-adresse-wie-c-ausgeben.html)

BloodySmartie 11. Jul 2008 15:53


Pointer-Adresse (wie in C++) ausgeben
 
Hallo zusammen!

Nachdem ich nun schon einige Male unsanft mit dem Kopf auf den Schreibtisch schlug, möchte ich Euch um Rat bitten. In C++ ist es mir ein leichtes, die Adresse, auf die ein Pointer zeigt, ausgeben zu lassen. In Delphi schaffe ich das einfach nicht. Auch mein Kollege schüttelt nur mit dem Kopf.

Unser Pointertyp:
Delphi-Quellcode:
 type PMessage = ^TMessage;
  TMessage = record
    caller: string;
    called: string;
    data: string;
    transactionId: string;
    time: TDateTime;
    server: string;
    mandant: string;
    db_server: string;
    db_db: string;
    text: string;
    short_text: string;
    datacall: string;
    DBConIdx:integer;
    geekPointer:Pointer;
  end;
Wir würden nun gern etwas in dieser Richtung machen:
Delphi-Quellcode:
var pmsg:PMessage;

new(pmsg);
memo1.lines.add('Adresse='+inttostr(pmsg));
Das geht aber nicht. Das kann doch nicht so schwer sein :oops:

Hilfe!

[edit=Phoenix]Titel angepasst. Mfg, Phoenix[/edit]

Poseidon 11. Jul 2008 15:56

Re: Zeig' dich, Du Adresse!!
 
Bin kein C++ experte, aber meinst du mit Pointer den Pfad, sprich C:\Bla......
Inttostr Macht aus einem Integer ein String, aber der Pfad C:\Bla... ist string, bei C:\bal.exe Filename.

negaH 11. Jul 2008 15:57

Re: Zeig' dich, Du Adresse!!
 
Delphi-Quellcode:
memo1.lines.add('Adresse='+inttostr(cardinal(pmsg)));
Musst den Zeiger casten nach Integer bzw. Cardinal.

oder sauberer

Delphi-Quellcode:
memo1.lines.add(Format('Adresse=$%0.8p', [pmsg]));
Gruß Hagen

PS: beachte das deine Strings=type LongString in diesem Record ebenfalls nur Zeiger auf Records im Speicher sind. Du kannst also nicht einfach einen kompletten Record binär in eine Datei speichern und wieder laden.

BloodySmartie 11. Jul 2008 17:28

Re: Zeig' dich, Du Adresse!!
 
Vielen Dank! Das funktioniert :D

Phoenix 14. Jul 2008 10:34

Re: Zeig' dich, Du Adresse!!
 
Bitte ändere den Titel in was Vernünftiges. :warn:
Du bist lang genug in der DP um das eigentlich besser zu wissen.

BloodySmartie 15. Jul 2008 09:26

Re: Zeig' dich, Du Adresse!!
 
Das darf ich doch nur innerhalb von 24 Stunden. Und Du bist bestimmt lang genug Moderator, um das zu wissen :cheers:

Phoenix 15. Jul 2008 09:31

Re: Zeig' dich, Du Adresse!!
 
Zitat:

Zitat von BloodySmartie
Das darf ich doch nur innerhalb von 24 Stunden. Und Du bist bestimmt lang genug Moderator, um das zu wissen :cheers:

:oops: Da hast Du vollkommen recht... Done :)

BloodySmartie 15. Jul 2008 09:56

Re: Pointer-Adresse (wie in C++) ausgeben
 
Ich gelobe dafür feierlich, mich zu bessern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:52 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