Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Hex in String umwandeln (https://www.delphipraxis.net/57741-hex-string-umwandeln.html)

Neutral General 25. Nov 2005 18:35


Hex in String umwandeln
 
Hi,

Wie kann man einen Hex String also z.B 35 D1 6F ... in einen String umwandeln ?
Ich habe irgendwie nichts dazu gefunden :roll:

Lemmy1 25. Nov 2005 18:38

Re: Hex in String umwandeln
 
Benutz einfach StrToInt, häng aber ein '$' davor.

Delphi-Quellcode:
i := StrIntDef('$' + str);
Wohl aber sinnvoll, die Leerzeichen vorher raus zu nehmen.

Grüße

faux 25. Nov 2005 18:38

Re: Hex in String umwandeln
 
Wie sieht dein Hexwert aus?
Delphi-Quellcode:
Tag := $35D16F;
Wenn ja, dann einfach per Delphi-Referenz durchsuchenIntToHex.

Grüße
Faux

NACHTRAG:

Zitat:

Zitat von Lemmy1
Benutz einfach StrToInt, häng aber ein '$' davor.
Delphi-Quellcode:
i := StrIntDef('$' + str);
Wohl aber sinnvoll, die Leerzeichen vorher raus zu nehmen.
Grüße

Ich denke, er wills in die Gegenrichtung.

Neutral General 25. Nov 2005 18:42

Re: Hex in String umwandeln
 
Ich will aus 48 61 6C 6C 6F "Hallo" machen...

Lemmy1 25. Nov 2005 18:43

Re: Hex in String umwandeln
 
Sorry, zu schnell gelesen...wie wärs hiermit...?
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  s, s2, Result : string;
begin
  s := '35 D1 6F';
  while s <> '' do
  begin
    if Pos(' ', s) <> 0 then
    begin
      s2 := Copy(s, 1, Pos(' ', s)-1);
      s := Copy(s, Length(s2)+2, MaxInt);
    end
    else
    begin
      s2 := s;
      s := '';
    end;

    Result := Result + Chr(StrToInt('$' + s2));
  end;
  Caption := Result;
end;

Neutral General 25. Nov 2005 18:48

Re: Hex in String umwandeln
 
Nein da kommt was anderes raus -.-
Das funktioniert nicht :(

Lemmy1 25. Nov 2005 18:51

Re: Hex in String umwandeln
 
Doch das funktioniert, hab das auch mit deinen Hexwerten ausprobiert....musst halt sehen, dass die Konstante hart im Source steht. Mach ne praktische Funktion draus und schon hast Dus

Neutral General 25. Nov 2005 18:52

Re: Hex in String umwandeln
 
ne doch nicht..

Delphi-Quellcode:
function Kill(Text: String): String;
var
  s : string;
begin
  Text := '35 D1 6F';
  while Text <> '' do
  begin
    if Pos(' ', Text) <> 0 then
    begin
      s := Copy(Text, 1, Pos(' ', Text)-1);
      Text := Copy(Text, Length(s)+2, MaxInt);
    end
    else
    begin
      s := Text;
      Text := '';
    end;
    Result := Result + Chr(StrToInt('$' + s));
end;
end;
das geht nicht...

Lemmy1 25. Nov 2005 18:53

Re: Hex in String umwandeln
 
Für Faule:

Delphi-Quellcode:
function HexStrToStr(s: string) : string;
var
  s2 : string;
begin
  Result := '';
  while s <> '' do
  begin
    if Pos(' ', s) <> 0 then
    begin
      s2 := Copy(s, 1, Pos(' ', s)-1);
      s := Copy(s, Length(s2)+2, MaxInt);
    end
    else
    begin
      s2 := s;
      s := '';
    end;

    Result := Result + Chr(StrToInt('$' + s2));
  end;
end;

Neutral General 25. Nov 2005 18:58

Re: Hex in String umwandeln
 
Ich bekomme Fehlermeldungen : Blabla ist kein gültiger Integerwert...
Habe im Memo das stehn:

Delphi-Quellcode:
44 65 69 6E 65 20 51 75 65 6C 6C 65 20 73 74 69 
6E 6B 74 2E 2E 2E

Lemmy1 25. Nov 2005 19:00

Re: Hex in String umwandeln
 
Müsste wohl daran liefen, dass da Linebreak drins sind. Ich geh halt immer von Space zu Space.

Bekommst Du sowas hin?

faux 25. Nov 2005 19:06

Re: Hex in String umwandeln
 
Delphi-Quellcode:
var
  input, tmp, output: string;
  i: integer;
begin
  input := '44 65 69 6E 65 20 51 75 65 6C 6C 65 20 73 74 69';
  for i := 1 to length(input) do
  begin
    if input[i] = ' ' then
    begin
      output := output + chr(strtoint(tmp));
      tmp := '';
    end
    else
      tmp := tmp + input[i];
  end;
So vielleicht?

Grüße
Faux

3_of_8 25. Nov 2005 19:07

Re: Hex in String umwandeln
 
Wie wäre es statt mit memo1.text mit memo1.lines.delimiter:=''; und memo1.lines.delimitedtext?

Neutral General 25. Nov 2005 19:18

Re: Hex in String umwandeln
 
Hat sich erledigt. Lemmys Code hat doch funktioniert. Ich bin grad nur irgendwie verwirrt und krieg das alles nicht hin^^
Aber es klappt. Thx @all :)


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