![]() |
AW: Stringbearbeitung - UTF8-Zeichensatz
Zitat:
|
AW: Stringbearbeitung - UTF8-Zeichensatz
Wenn ich das mal zusammen fassen darf:
Du hast einen String in dem nur die Zeichen 0..9,A..F auftreten. Sie sind eine hexadezimale Darstellung von Zeichen in UTF8-Codierung. (C39F='ß') die Nutzdaten sind von bestimmten Zeichenfolgen begrenzt. die Nutzdaten sollen im Klartext dargestellt werden / die nutzdaten sollen schön dargestellt werden. Ist das soweit richtig? Gruß K-H |
AW: Stringbearbeitung - UTF8-Zeichensatz
Also ich habe das problem der Zerteilung in HEX-Zahlen ziemlich brutal gelöst.
Delphi-Quellcode:
Ich muss leider zugeben, dass ich eine ziemliche Niete bin, was komplexere Funktionen angeht. Darum versuche ich mich auf etwas einfachere funktionen zu beschränken.stelle := Copy(gesamt_text,73,52); stelle_HEX := ''; z := 52; i := 1; while i <= 26 do begin stelle_HEX := stelle_HEX + Copy(stelle, 1, 2) + ' '; z := z - 2; stelle := Copy(stelle, 3, z); i := i + 1; end; @himitsu Da ich nur mit Zahlen und Buchstaben(auch leerzeichen) arbeite, kommt es nicht zu solchen Kollisionen :thumb: @DeddyH Ich versuche jetzt erstma deinen Code zu verstehen :oops: |
AW: Stringbearbeitung - UTF8-Zeichensatz
Zitat:
|
AW: Stringbearbeitung - UTF8-Zeichensatz
Delphi-Quellcode:
var S: UTF8String;
SetLength(S, Length(gesamt_text) div 2) HexToBin(PChar(gesamt_text), PAnsiChar(S), Length(S)); ShowMessage(Trim(S)); // ShowMessage(Trim(UTF8ToString(S))); falls noch keine funktionierende automatische String-Konvertierung existiert |
AW: Stringbearbeitung - UTF8-Zeichensatz
@himitsu
wenn ich richtig verstehe, macht dein code folgendes: 1. Die Länge des UTF8-Strings wird auf Hälfte des Ursprungstexts festgelegt 2. Mit HexToBin konvertierst du die hex-zahlen, die du durch die beiden pointer festlegst 3. Mit Trim werden der Anfang und das Ende "gesäubert" und mit showmessage ausgegeben Das ist leider nicht nützlich für mich, da ich die nicht benötigten Hex-zahlen ausfiltern muss. Und die eigentliche Konvertierung habe ich bereits realisiert. Zerteilung des strings:
Delphi-Quellcode:
Konvertierung von Hex zu Stringstelle := Copy(gesamt_text,73,52); stelle_HEX := ''; z := length(stelle); while z > 0 do begin stelle_HEX := stelle_HEX + Copy(stelle, 1, 2) + ' '; z := z - 2; stelle := Copy(stelle, 3, z); end;
Delphi-Quellcode:
Ich suche erstmal nach der Lösung weiter.
function HexStrToStr(s: string) : string;
var s2 : string; begin Result := ''; while s <> '' do begin if Pos(' ', s) <> 0 then begin s2 := Copy(s, 1, Pos(' ', s)-1); s := Copy(s, Length(s2)+2, MaxInt); end else begin s2 := s; s := ''; end; Result := Result + Chr(StrToInt('$' + s2)); end; end; |
AW: Stringbearbeitung - UTF8-Zeichensatz
Also letztendlich habe ich alles beendet. Funktioniert auch alles. :coder:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:16 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-2025 by Thomas Breitkreuz