AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String aus Hex konvertieren.

Ein Thema von Kostas · begonnen am 12. Mai 2015 · letzter Beitrag vom 13. Mai 2015
Antwort Antwort
Seite 1 von 2  1 2      
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

String aus Hex konvertieren.

  Alt 12. Mai 2015, 22:14
Hallo Zusammen,

sorry ich stehe momentan auf dem Schlauch.

Ich habe eine String(12) welcher aus immer zwei Zeichen jeweils eine Hex Zahl repräsentiert.
String1 := '00 00 00 05 55 50'; (die Leerzeichen sind eigentlich nicht vorhanden)
String2 := chr($00)+chr($00)+chr($00)+chr($05)+chr($55)+chr($ 50);

String2 beinhaltet als Ergebnis (#0#0#0#5'UP') den richtigen String.
Wie kann ich am besten umsetzen?

Gruß Kostas
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: String aus Hex konvertieren.

  Alt 12. Mai 2015, 22:23
Ich verstehe nicht gar was du meinst. Suchst du evtl. das?
Delphi-Quellcode:
String2 := IntToHex($00, 2)+IntToHex($00, 2)+IntToHex($00, 2)+IntToHex($05, 2)+IntToHex($55, 2)+IntToHex($50, 2);
//
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: String aus Hex konvertieren.

  Alt 12. Mai 2015, 22:24
Immer 2 Zeichen nehmen, daraus den Byte-Wert bestimmen und an ein Byte-Array oder Stream anhängen.
Dann kannst du daraus holen was du willst
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: String aus Hex konvertieren.

  Alt 12. Mai 2015, 22:30
Ich verstehe nicht gar was du meinst. Suchst du evtl. das?
Delphi-Quellcode:
String2 := IntToHex($00, 2)+IntToHex($00, 2)+IntToHex($00, 2)+IntToHex($05, 2)+IntToHex($55, 2)+IntToHex($50, 2);
//
Sorry für die schlechte Beschreibung.
Der String1 ändert sich natürlich. Ich müsste also eine Methode haben die aus dem String1
als Beispiel hier '000000055550' den String generiert #0#0#0#5'UP'
Immer zwei Zeichen aus dem String ergeben eine Byte. Die zwei Zeichen sind jeweils hex.
Die letzten zwei Zeichen sind somit $50 also ein "P" als Char.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: String aus Hex konvertieren.

  Alt 12. Mai 2015, 22:33
Immer zwei Zeichen aus dem String ergeben eine Byte. Die zwei Zeichen sind jeweils hex.
Die letzten zwei Zeichen sind somit $50 also ein "P" als Char.
Dann mach das doch so wie du das hier beschrieben hast. Eine Schleife und ca. drei Zeilen Code
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#6

AW: String aus Hex konvertieren.

  Alt 12. Mai 2015, 22:47
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

  function GetChr(s: String; Index: Integer): Char;
  begin
    Result := Chr(StrToIntDef('$' + Copy(s, 1 + (Index - 1) * 2, 2), 0));
  end;

var
  s, String2: string;
  i: Integer;
begin
  s := '000000055550'; //anderes Beispiel (ABCDEF): '414243444546';
  String2 := '';
  for i := 1 to 6 do
    String2 := String2 + GetChr(s, i);

  ShowMessage(String2);
end;
Da vorne aber Nullen sind und #0 ein Steuerzeichen oder das Ende des Strings bedeutet, wird deine Zeichenfolge nichts anzeigen.
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: String aus Hex konvertieren.

  Alt 12. Mai 2015, 22:50
Verflixt noch eins das habe ich gemeint.

Delphi-Quellcode:
function HexToInt(value:string):Char;
        begin
          result := Chr(StrToInt('$' + value));
        end;
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.099 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: String aus Hex konvertieren.

  Alt 12. Mai 2015, 22:52
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

  function GetChr(s: String; Index: Integer): Char;
  begin
    Result := Chr(StrToIntDef('$' + Copy(s, 1 + (Index - 1) * 2, 2), 0));
  end;

var
  s, String2: string;
  i: Integer;
begin
  s := '000000055550'; //anderes Beispiel (ABCDEF): '414243444546';
  String2 := '';
  for i := 1 to 6 do
    String2 := String2 + GetChr(s, i);

  ShowMessage(String2);
end;
Da vorne aber Nullen sind und #0 ein Steuerzeichen oder das Ende des Strings bedeutet, wird deine Zeichenfolge nichts anzeigen.

Danke danke, meine Blockade war, wie mache ich aus dem String eine Hex Zahl und habe
übersehen dass ich einfach ein $ davorsetzen muss. Der Rest ist klar.

Dankeschön
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

AW: String aus Hex konvertieren.

  Alt 12. Mai 2015, 22:52
-- hat sich erledigt --
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (12. Mai 2015 um 22:56 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#10

AW: String aus Hex konvertieren.

  Alt 12. Mai 2015, 22:53
@Popov: String von hinten nach vorne durchgehen, würde das Problem mit den Nullbytes lösen, sofern man beim ersten Nullbyte die Schleife verlässt (und nebenbei die unwichtigen führenden Nullen ignorieren).

@Kostas: Wieso heißt die Funktion HexToInt, wenn ein Char rauskommt?

MfG Dalai
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:30 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