wska?żniki a string

0

Hey mam pytanko.
Pisze programik na zaliczenie z Delphiaka, operujący na wskaźnikach
Chciałbym aby wartości typu wskaźnikowego ( czyli adres w pamięci ) przekonwertować na stringa.
i wyświetlić w Edicie ( czy czymś podobnym ). Czyli żeby w Edicie wyświetliło mi się np. $95241C

Nie znam żadnego polecenia typu Pointtostr a w archiwum nic przydatnego nie znalazłem. Jednak mam modem i przyznaje, że nie szukałem zbyt dokładnie ;-). Z góry thx za pomoc.

0

ShowMessage(IntToHex(Integer(Wsk), 8));
albo jeszcze lepiej:
ShowMessage(Format('%p', [Wsk]));

0

Dryo: IntToHex jest szybsze, ponieważ nie musi parsować stringa, jak Format.

b
a to perwera, myślałem, że się bardziej postarali..

0

Ale trzeba wiedzieć ile znaków ma liczba szesnastkowa. W przypadku 32-bitowych jest to 8, ale w 16-bitowych już tylko 4 (tylko kto dziśjeszcze na pierwszym Delphi siedzi... :) )

[dopisne]
Szybsze? Oto źródła IntToHex oraz Format:

function IntToHex(Value: Integer; Digits: Integer): string;
begin
FmtStr(Result, '%.*x', [Digits, Value]);
end;

function Format(const Format: string; const Args: array of const): string;
begin
FmtStr(Result, Format, Args);
end;

Jakoś nie widzę wzrostu szybkości ;)

0

Jeszcze szybsze będzie użycie FormatBuf (źródła za gwinta nie rozumiem, prawie czysty asm)

Założe się że da się to zoptymalizować

//Dziekujemy ze nam zaszpanowales takim "krotkim" kodem...co prawda ja bym wybral i tak kod Kuby,ale moze dlatego ze nie jestem fetyszem i wole pisac krotsze kody.. -mL.. PS wrzucaj takie kody na wlasna strone idawaj tu tylko linki
//Lofix, ja nie szpanuje kodem, jedynie kopiuje, mój kod byłbyby w 100% delphi i o połowe krótszy, bo większych nie publikuje.

0

Johnny_Bit jesteś pewien, że to będzie szybsze? :-D
Jak tak bardzo już przyspieszać to króciutki (w porównaniu do twojego kodu to mikrus) kod, który napisał Marooned:
http://4programmers.net/view_faq.php?id=315
będzie działał jak rakieta. Jedyna rzecz jaką trzeba w nim zrobić to zamienić to na rejestry 32-bitowe, zamiast przedstawionych 16-bitowych (albo wywołanie dla dwóch części liczby).

//A taka zamiana to 'pestka' :-) - Marooned

1 użytkowników online, w tym zalogowanych: 0, gości: 1