![]() |
Problem mit HexToDez
Hi,
ich muss Hex nach Dez umwandeln und habe diese Funktion dafür:
Delphi-Quellcode:
Problem ist nur, dass diese Funktion $A, $B, $C, $D, $E und $F, statt A, B, C, D, E und F erwartet. Wie kann man in einem String vor die Fundstelle von allen im String vorkommenden Buchstaben ein $ setzen, ohne irgendwelche Zeiche zu löschen ? Beispiel:
function TfrmMain.HexToDez(s : String) : Integer;
var c : Integer; l : Integer; begin Val(s, l, c); Result := l; end; 9C wird zu: 9$C
Delphi-Quellcode:
Ich steh gerade total auf dem Schlauch....
for m := 1 to Length(convert) do
begin if (convert[i] = 'A') or (convert[i] = 'B') or (convert[i] = 'C') or (convert[i] = 'D') or (convert[i] = 'E') or (convert[i] = 'F') then --> was muss hier hin ? <-- end; |
Re: Problem mit HexToDez
wir wärs damit:
Delphi-Quellcode:
Edit: Ah, ich verstehe dein Problem.
function TfrmMain.HexToDez(s : String) : Integer;
var c : Integer; l : Integer; begin Val('$'+s, l, c); Result := l; end; Hexadezimale Zahlen werden (in Delphi) so geschrieben: $3F = $3f = 3*16+15 = 63 $6 = 6 $A = 10 $1AF4 = 1*4096 + 10*256 + 15*16 + 4 = 6900 Da gibts nicht for jedem Buchstaben ein "$", nur eins am Anfang. |
Re: Problem mit HexToDez
Auf die Idee bin ich auch schon gekommen, aber wenn der String 9C wäre, würde er dann $9C umrechnen. Das geht natürlich nicht.
|
Re: Problem mit HexToDez
Wo ist das Problem?
|
Re: Problem mit HexToDez
@sirius:
Dein Code müsste laut deinem Edit dann doch funktionieren. Er liefert bei 9C aber 0 zurück. Fehler lag auf meiner Seite, sry. |
Re: Problem mit HexToDez
Zitat:
Delphi-Quellcode:
-->156
function hextodez(s:string):integer;
var l,c:integer; begin val('$'+s,l,c); result:=l; end; procedure TForm1.Button1Click(Sender: TObject); begin memo1.lines.add(inttostr(hextodez('9C'))); end; |
Re: Problem mit HexToDez
Sry, hatte da irgendwo einen Fehler drinnen, behoben. Thx.
|
Re: Problem mit HexToDez
Moin Nils,
warum nimmst Du nicht
Delphi-Quellcode:
:gruebel:
StrToInt
|
Re: Problem mit HexToDez
Das kann es auch, ich weiß.... Ich will aber irgendwie eine Übersicht in meinem großen Projekt und sofort sehen, was was ist. StrToInt macht für mich gedanklich die 1:1-Umstezung von Str zu Int und nicht Hex, deshalb.
|
Re: Problem mit HexToDez
Moin Nils,
ja und? Dann ruf es doch in Deiner Funktion HexToDez auf ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 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