AGB  ·  Datenschutz  ·  Impressum  







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

Hex[aus Bytes] To Ascii

Ein Thema von DarkPressure · begonnen am 27. Apr 2006 · letzter Beitrag vom 27. Apr 2006
Antwort Antwort
DarkPressure

Registriert seit: 24. Mär 2006
28 Beiträge
 
Delphi 2006 Architect
 
#1

Hex[aus Bytes] To Ascii

  Alt 27. Apr 2006, 18:25
Hallo erstmal
Ich belästige euch wohl doch häufig mit Fragen, aber nun muss es nochmal sein, weil ich an der Stelle einfach nicht weiterkomme. Und zwar habe ich einen Byte Wert, den ich zu einem String mache:
Delphi-Quellcode:
         for i:=0 to Size - 1 do
         DataStr := DataStr + Chr(DataBytes[i]);
         end;
Aus diesem String mache ich dann einen Hex Wert wie z.B.:
Code:
89 00 00 00 1F 6A 7A 1A 01
Ich möchte aber nun aus diesem Hex Wert den ASCII(ich hoffe das ist richtig)-String erstellen, der in diesem Beispiel so aussehen würde:
Code:
.....jz..
Hat da jeamnd eine Idee, wie man das verwirklicht?

Gruß DarkPressure
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Hex[aus Bytes] To Ascii

  Alt 27. Apr 2006, 18:37
chr(StrToInt('$'+DeinHexString));

oder habe ich da etwas falsch verstanden?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Hex[aus Bytes] To Ascii

  Alt 27. Apr 2006, 18:54
Es gibt druckbare/anzeigbare Zeichen und nicht anzeigbare Zeichen.
Durch brauchst einfache eine Funktion, die ungefähr so aussieht:
Delphi-Quellcode:
function VisibleString(const src:string);
var
 i : integer;
begin
   SetLength(result, Length(src));
   for i := 1 to Length(src) do
   begin
      case src[i] of
      #0..#31: // nicht druckbar
         result[i] := '.'; // das Ersatzzeichen
      else
         result[i] := src[i];
      end;
   end;
end;
Du wird natürlich nicht anfangen, den Hexstring wieder zurückzuverwandeln, sondern
nimmst als Parameter src die orginalen Daten.

Die absolut beste Lösung ist aber ein Font, der alle Zeichen anzeigen kann.
Es gibt Fonts, die zeigen z.B. das Tabulatorzeichen als "TB" an.
Das "TB" sieht aber so aus, dass das T hochgestellt und das B tiefgestellt ist.
Sollte es dir gelingen so einen Zeichensatz im Internet zu finden oder du baust ihn selbst,
dann wäre ich daran stark interessiert.
Andreas
  Mit Zitat antworten Zitat
DarkPressure

Registriert seit: 24. Mär 2006
28 Beiträge
 
Delphi 2006 Architect
 
#4

Re: Hex[aus Bytes] To Ascii

  Alt 27. Apr 2006, 19:18
Erstmal danke für die schnellen Antworten.
Es gibt aber leider noch ein Problem,
Delphi-Quellcode:
function VisibleString(const src:string): string;
var
i : integer;
begin
   SetLength(result, Length(src));
   for i := 1 to Length(src) do
   begin
      case src[i] of
      0..31: // nicht druckbar <<----- [Error] Unit1.pas(122): E2010 Incompatible types: 'Char' and 'Integer'
         result[i] := '.'; // das Ersatzzeichen
      else
         result[i] := src[i];
      end;
   end;
end;
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Hex[aus Bytes] To Ascii

  Alt 27. Apr 2006, 19:20
Zitat von DarkPressure:
Es gibt aber leider noch ein Problem
Siehe Korrektur oben (die #-Zeichen)
Andreas
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Hex[aus Bytes] To Ascii

  Alt 27. Apr 2006, 19:24
Delphi-Quellcode:
function VisibleString(const src:string): string;
var
i : integer;
begin
   SetLength(result, Length(src));
   for i := 1 to Length(src) do
   begin
      case ord(src[i]) of
      0..31: result[i] := '.'; // das Ersatzzeichen
      else
         result[i] := src[i];
      end;
   end;
end;
vielleicht so?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
DarkPressure

Registriert seit: 24. Mär 2006
28 Beiträge
 
Delphi 2006 Architect
 
#7

Re: Hex[aus Bytes] To Ascii

  Alt 27. Apr 2006, 19:37
Funktioniert jetz wunderbar, danke euch beiden für euere Bemühung
  Mit Zitat antworten Zitat
Antwort Antwort


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:39 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