AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Nochmals HexToString und StringToHEx

Ein Thema von fapsons · begonnen am 22. Feb 2007 · letzter Beitrag vom 22. Feb 2007
Antwort Antwort
fapsons

Registriert seit: 29. Jan 2007
Ort: Berlin
65 Beiträge
 
#1

Nochmals HexToString und StringToHEx

  Alt 22. Feb 2007, 11:04
Habe gestern von jemanden unten stehnde Funktionen bekommen.
Sie laufen auch soweit. Das Problem ist nur, ich bräuchte die Funktion in einem anderen HEX-Format. Die Ausgabe müsste in reinen Zahlenwerte sein und nicht auch in Buchstaben.
Kann mir jemand sagen, ob ich die beiden Funktionen entsprechend noch umschreiben kann?

Gruß
-fapsons--


function StringToHexStr(const s : string):string;
begin
if s = '' then
Result := ''
else
begin
SetLength(Result, Length(s)*2);
BinToHex(PChar(s), PChar(Result), Length(s));
end;
end;



function HexStringToStr(s : string):string;
begin
if s = '' then
Result := ''
else
begin
if Odd(length(s)) then
s := '0'+s;
SetLength(Result, Length(s) div 2);
HexToBin(Pchar(s), PChar(Result), Length(Result));
end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Surrounder
Surrounder

Registriert seit: 26. Sep 2003
Ort: Stuttgart
177 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Nochmals HexToString und StringToHEx

  Alt 22. Feb 2007, 11:40
Also Hex ist halt nun mal mit Zahlen und Buchstaben von A-F! Kannst mal ein Beispiel geben, ich blick eigentlich nicht was Du meinst
In C geschrieben und schön war zuletzt Franz Schuberts 9. Symphonie
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Nochmals HexToString und StringToHEx

  Alt 22. Feb 2007, 11:42
Delphi-Quellcode:
{**************************************************************************
* NAME:    StringToHexStr
* DESC:    Konvertiert einen String in eine hexadezimale Darstellung
*************************************************************************}
 
function StringToHexStr(const value:string):string;
begin
   SetLength(Result, Length(value)*2); // es wird doppelter Platz benötigt
   if Length(value) > 0 then
      BinToHex(PChar(value), PChar(Result), Length(value));
end;

{**************************************************************************
* NAME:    HexStrToString
* DESC:    Dekodiert einen hexadezimalen String
*************************************************************************}
 
function HexStrToString(const value:string):string;
begin
   SetLength(Result, Length(value) div 2); // es wird halber Platz benötigt
   if Length(value) > 0 then
      HexToBin(PChar(value), PChar(Result), Length(value));
end;
Das sollte dir vllt. helfen.


Ach du möchtest nur die Dezimalen des HEX...dann nimm Ord(Char)...
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
fapsons

Registriert seit: 29. Jan 2007
Ort: Berlin
65 Beiträge
 
#4

Re: Nochmals HexToString und StringToHEx

  Alt 22. Feb 2007, 13:39
Ach du möchtest nur die Dezimalen des HEX...dann nimm Ord(Char)...

Ja, genau das brauche ich. Lässt sich das denn auch wieder umkehren?
  Mit Zitat antworten Zitat
fapsons

Registriert seit: 29. Jan 2007
Ort: Berlin
65 Beiträge
 
#5

Re: Nochmals HexToString und StringToHEx

  Alt 22. Feb 2007, 13:48
Habe jetzt unten aufgeführte Funktion. Die führt auch zum gewünschten Ergebnis.
Lässt sich dieses auch wieder umkehren...?



function StringToHex(s:string) : string;
var i : integer;
begin
result := '';
for i := 1 to length(s) do
begin
if i = length(s) then
result := result + intToStr(ord(s[i]))
else
result := result + IntToStr(ord(s[i])) + '';
end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#6

Re: Nochmals HexToString und StringToHEx

  Alt 22. Feb 2007, 14:20
@fapsons, schliesse deinen Code mal bitte in Delphitags ein, dann kann man das auch besser lesen.

[delphi]
procedure Foo();
var a, b, c: Byte;
begin
//...
end;
[/delphi]

wird dann zu:

Delphi-Quellcode:
procedure Foo();
  var a, b, c: Byte;
begin
//...
end;
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
fapsons

Registriert seit: 29. Jan 2007
Ort: Berlin
65 Beiträge
 
#7

Re: Nochmals HexToString und StringToHEx

  Alt 22. Feb 2007, 14:25
Delphi-Quellcode:
function StringToHex(s:string) : string;
var i : integer;
begin
   result := '';
   for i := 1 to length(s) do
   begin
       if i = length(s) then
       result := result + intToStr(ord(s[i]))
          else
          result := result + IntToStr(ord(s[i])) + '';
       end;
end;
CHR soll ja die Umkehrfunktion sein. Komme damit aber trotzdem nicht zurecht...
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:26 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