AGB  ·  Datenschutz  ·  Impressum  







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

Vermutlich Hex Daten Umwandeln

Ein Thema von Dumpfbacke · begonnen am 31. Mär 2019 · letzter Beitrag vom 8. Apr 2019
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
332 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Vermutlich Hex Daten Umwandeln

  Alt 31. Mär 2019, 18:46
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:

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;
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.

Danke Tanja.
Tanja
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#2

AW: Vermutlich Hex Daten Umwandeln

  Alt 31. Mär 2019, 19:20
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;

Geändert von mensch72 (31. Mär 2019 um 19:32 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#3

AW: Vermutlich Hex Daten Umwandeln

  Alt 31. Mär 2019, 19:50
Eventuell reicht bei Delphi 7 schon sowas:
Delphi-Quellcode:
var
  RichtigerText : String;
begin
  ...
  RichtigerText := Utf8ToAnsi(Tabelle.FieldByName('Memofeld').AsString);
  ..
end;
Utf8ToAnsi gehört zu Unit System, man braucht dafür also nix im Uses.

Zeichen, die UTF8ToAnsi nicht umwandeln kann, werden als ? dargestellt.
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Vermutlich Hex Daten Umwandeln

  Alt 31. Mär 2019, 20:48
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;
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.051 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Vermutlich Hex Daten Umwandeln

  Alt 31. Mär 2019, 21:36
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;
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Ydobon

Registriert seit: 3. Mär 2006
264 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Vermutlich Hex Daten Umwandeln

  Alt 1. Apr 2019, 08:57
Für Versionen vor 2009 gibt es die Windowsfunktion "WideCharToMultiByte", die ist seit Windows 2000 dabei.
https://www.delphipraxis.net/1081749-post7.html
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Vermutlich Hex Daten Umwandeln

  Alt 1. Apr 2019, 14:30
das wird gerne falsch als Unicode bezeichnet.
Könntest Du vielleicht den Unterschied zu Unicode erklären?
(war es das LE/BE?)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
880 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Vermutlich Hex Daten Umwandeln

  Alt 1. Apr 2019, 16:23
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.
The angels have the phone box.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.444 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Vermutlich Hex Daten Umwandeln

  Alt 1. Apr 2019, 18:25
Dachte ich zuerst auch, war früher vielleicht auch so. Nach https://de.wikipedia.org/wiki/Unicode gehört die Kodierung aber auch dazu.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#10

AW: Vermutlich Hex Daten Umwandeln

  Alt 1. Apr 2019, 18:57
Für die, die es wissenschaftlich sehen: Wikipedia ist keine verwandbarer Literaturhinweis.

Kann man allenfalls als Anlaufpunkt zur weiteren Forschung nehmen.

rfc unicode site:tools.ietf.org
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 06:18 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