![]() |
Unicode umwandeln Delphi 6
Liste der Anhänge anzeigen (Anzahl: 2)
Ich brauche ein bischen Nachhilfe in Unicode. Und zwar ist folgendes gegeben.
Ich habe ein Delphi 6 Programm, welches aus einer Exceltabelle die anzuzeigenden Texte extrahiert. Das passiert in einer Dll, die per ADO auf die Zellen in dem Excelblatt zugreift. Nun ist auch russisch als Sprache hinzugekommen. Ich habe ein wenig rumgespielt und bin zu folgender Lösung gekommen.
Delphi-Quellcode:
Ich rufe die Funktion dann direkt mit dem augelesenen String aus und einem Offset von $B0 für russisch. Jetzt habe ich folgende Fälle festgestellt:
function DecodeString(const str: String; Offset: Integer): Shortstring;
var n: Integer; begin result := ''; for n := 1 to length(str) do begin if ord(str[n]) > $FF then result := (result + chr((ord(str[n]) and $FF) + Offset)) else result := (result + chr((ord(str[n])))); end; end; Mit Delphi 6 kompiliert läuft die Funktion auf einem russischen Rechner richtig. Es werden die richtigen kyrillischen Buchstaben angezeigt Mit Delphi 6 kompiliert läuft die Funktion auf einem deutschen Rechner nicht. Ich erhalte nur ??? Mit Delphi 2010 kompiliert läuft die Funktion auf einem russischen Rechner nicht. Es erscheinen zufällige Zeichen (keine kyrillischen) Mit Delphi 2010 kompiliert läuft die Funktion auf einem deutschen Rechner richtig Zu dem Betrieb auf dem deutschen Rechner muss ich noch kurz was sagen. Mir ist klar, dass ich hier auf einem deutschen Windows keine kyrillischen Buchstaben anzeigen kann, jedoch werden die Texte auch zu einer Hardware übertragen, die diesen Text dann auch auf einem russischen Display anzeigt. Dieses Display braucht dabei 1 Byte Strings. Ich habe mal den korrekten Text angehängt Öffnet man diese Textdatei auf einem russischen System wird der Text kyrillisch angezeigt und auch zu unserer Hardware gesendet wird der Text richtig angezeigt Nach so vile Text jetzt meine Frage, warum funktioniert es je nach Compiler auf dem einem bzw. dem anderen System und wie kann ich das Programm abändern, dass es sowohl auf einem deutschen als auch auf einem russischen Rechner den Text wie in richtig.txt erzeugt ? |
AW: Unicode umwandeln Delphi 6
Zitat:
Aber spaß beiseite: In der Unit JclUnicode der Jedi gibt es die Funktion
Delphi-Quellcode:
Dürfte genau sein was du benötigtst.
function WideStringToStringEx(const WS: WideString; CodePage: Word): string;
![]() |
AW: Unicode umwandeln Delphi 6
Super funktioniert.
Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 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