Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi StringToHex (https://www.delphipraxis.net/102913-stringtohex.html)

Delphiturbo 6. Nov 2007 23:09


StringToHex
 
Hi

ich bin mit dem Ergebnis nicht zufrieden !
Delphi-Quellcode:
function StringToHex2(s:string) : string;
var t : integer;
begin
  result := '';
  for t := 1 to length(s) do begin
    if t = length(s) then
      result := result + IntToHex(ord(s[t]),2)
    else
      result := result + IntToHex(ord(s[t]),2) + ' ';
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
showmessage(StringToHex2('0000'));
end;
Das Ergebnis für 0000 bekomme ich 30303030 !!!

Das ist kein Hex sondern Dezimal oder sowas

ErazerZ 6. Nov 2007 23:18

Re: StringToHex
 
Hex ist bereits ein String (enthält alphanummerische Zeichen) - also falls du den anzeigen möchtest, naja was auch immer ich glaub du willst wohl eher:
SysUtils.IntToHex;
oder..
Delphi-Quellcode:
function StringToHex(s: string): string;
begin
  Result := IntToHex(StrToInt(s), 8);
end;

Muetze1 6. Nov 2007 23:22

Re: StringToHex
 
Zitat:

Zitat von Delphiturbo
ich bin mit dem Ergebnis nicht zufrieden !

Das Ergebnis für 0000 bekomme ich 30303030 !!!

Das ist kein Hex sondern Dezimal oder sowas

Wie kommst du denn zu so einer Aussage? Was macht ord()? Liefert den Ordinalwert. Somit den ASCII Code. Was ist der ASCII Code von "0"? 48, richtig. Was ist 48 in der Basis 16? Richtig, 30h. Also funktioniert alles perfekt - also, wo ist dein Problem oder ist dein Problem doch keins?

turboPASCAL 7. Nov 2007 00:37

Re: StringToHex
 
Na, Delphiturbo dachte wohl es sollte so aussehen:

Code:
$AFFE
hierbei handelt es sich um die Zahl na ?

Delphiturbo 7. Nov 2007 23:26

Re: StringToHex
 
Die Lösung ist einfach nur das Zeichen verschieben : $90
Delphi-Quellcode:
result := result + IntToHex(ord(s[t]) + $90 ,2)
Beispiel :
Delphi-Quellcode:
Hallo --> F8F1FCFC6F

peschai 8. Nov 2007 05:07

Re: StringToHex
 
Hallo
:wiejetzt:
Was ist denn das für eine Lösung ? Das "H" in Hallo hat definitiv nicht den Hexwert "$F8"!
Ich glaube wir missverstehen dich. Was möchtest du überhaupt genau tun ? :?:

Progman 8. Nov 2007 06:36

Re: StringToHex
 
"H" ist $48H, also ich schnall echt nicht, was DelphiTurbo eigentlich möchte? ;)

Muetze1 8. Nov 2007 08:43

Re: StringToHex
 
Nochmal um es deutlich zu machen: Der Zeichencode 0 und das Zeichen "0" sind zwei unterschiedliche Dinge!


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