![]() |
Vermutlich Hex Daten Umwandeln
Hallo Delphianer,
ich habe hier eine Firebird Datenbank mit einem MemoFeld. Dort in dem MemoFeld sind einige Daten vorhanden. Wenn ich mir das ganze mittels IBExpert as Hex anzeigen lassen so kann ich dort das gewünschte erkennen. Beispiel: (Auszug aus dem ganzen. Es steht noch mehr drin) 50 00 72 00 69 00 76 00 61 00 74 | P.r.i.v.a.t genau das Privat suche ich. Jetzt haben die dieses funktion hier gefunden. Ich habe mir das Memo in einen String geholt und dann umgewandelt.
Delphi-Quellcode:
Leider funktioniert das ganze nicht. Hat so etwas schon mal jemadn gemacht und kann mir hierzu einen Tip geben ? ich möchte also an den Text oder zuminest an die Hexwerte Links an. Lass isch mit den String nur anzeigen kann man nichts erkennen.function TForm1.StrToHexString(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; Danke Tanja. |
AW: Vermutlich Hex Daten Umwandeln
es sind keine HEX Daten, es sind normale UniCode Textdaten.
Mit aktuellem Delphi wäre es wohl einfach da... Mit NonUnicode-Delphi7(wenn dein Profil stimmt) den Memo-Inhalt eventuell in einen WideString passender länge umkopieren... oder eine ander eder unendlich vielen Möglichkeiten suchen/nutzen. Quick&Dirty könntest du auch nur jedes 2. Zeichen in einen AnsiString einsetzen, denn die zusätzlichen 00 deuten auf simples 16Bit-UniCode mit ohne HiByte-Nutzung hin(das ist aber unsauber und kann schon bei Umlauten oder sonstigen Sonderzeichen scheitern)
Delphi-Quellcode:
function Uni16StrToAnsiStr(const s : string):string;
var i:integer; begin SetLength(Result, Length(s) div 2); for(i:=0 to Length(Result)-1 do Result[1+i]:=s[1+(i*2)]; end; |
AW: Vermutlich Hex Daten Umwandeln
Eventuell reicht bei Delphi 7 schon sowas:
Delphi-Quellcode:
Utf8ToAnsi gehört zu Unit System, man braucht dafür also nix im Uses.
var
RichtigerText : String; begin ... RichtigerText := Utf8ToAnsi(Tabelle.FieldByName('Memofeld').AsString); .. end; Zeichen, die UTF8ToAnsi nicht umwandeln kann, werden als ? dargestellt. |
AW: Vermutlich Hex Daten Umwandeln
Hallo,
evtl. reicht das hier?
Delphi-Quellcode:
function HexToString(const value: string): string;
begin SetLength(Result, Length(value)-1 div 2); if Length(value) > 0 then HexToBin(PChar(value), PChar(Result), Length(value)); end; procedure TForm1.Button1Click(Sender: TObject); Var s: string; begin s := '50 00 72 00 69 00 76 00 61 00 74'; s := ReplaceStr(s, ' ', ''); Label2.Caption := HexToString(s); end; |
AW: Vermutlich Hex Daten Umwandeln
Das ist kein UTF-8. Das ist UCS-2LE oder UTF-16LE (kann man am Beispiel nicht erkennen, ist den meisten Usern aber auch egal), das wird gerne falsch als Unicode bezeichnet. Bei Delphi ab Version 2009 geht so etwas:
Delphi-Quellcode:
var
bs: TByteStream; sl: TStringList; begin bs := TByteStream.Create(FieldByName('bla').AsBytes); try sl := TStringList.Create(); try sl.LoadFoomStream(bs, TEncoding.Unicode); // tu was finally sl.Free(); end; finally bs.Free(); end; end; |
AW: Vermutlich Hex Daten Umwandeln
Für Versionen vor 2009 gibt es die Windowsfunktion "WideCharToMultiByte", die ist seit Windows 2000 dabei.
![]() |
AW: Vermutlich Hex Daten Umwandeln
Zitat:
(war es das LE/BE?) Gruß K-H |
AW: Vermutlich Hex Daten Umwandeln
Unicode beschreibt ja einfach nur das Anliegen, jedem Schriftzeichen eine eindeutige Nummer zuzuordnen. Mit dem Ziel, das Kodierungs-Chaos zu beheben, das z.B. bei Verwendung der ISO 8859 Normen unvermeidbar ist.
Wie diese Nummer (= diese Zahl) dann in einer Datei gespeichert wird (UTF-8, UTF16-LE/BE, UTF-32) ist dann wieder ein wenig was anderes. :-D |
AW: Vermutlich Hex Daten Umwandeln
Dachte ich zuerst auch, war früher vielleicht auch so. Nach
![]() |
AW: Vermutlich Hex Daten Umwandeln
Für die, die es wissenschaftlich sehen: Wikipedia ist keine verwandbarer Literaturhinweis.
Kann man allenfalls als Anlaufpunkt zur weiteren Forschung nehmen. ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 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 by Thomas Breitkreuz