![]() |
Chr(224) Delphi 2007 <-> Delphi 2009
Hallo,
ich habe das Problem, dass Chr(xx) unter Delphi 2009 etwas anderes liefert als Chr(xx) unter Delphi 2007.
Delphi-Quellcode:
Gibt es eine Möglichkeit unter Delphi 2009 den gleichen Wert zu einer Zahl zu generieren, die Chr() in Delphi 2007 zurückgegeben hat?
var
c : AnsiChar; begin c := AnsiChar(Chr(224)); ShowMessage(c); end; Das eigentliche Problem das ich habe sind Daten die mit der Funktion:
Delphi-Quellcode:
geschrieben, und nun mit der Funktion:
function BinaryStrToHexStr(aBinary : AnsiString) : AnsiString;
var i : Integer; begin Result := ''; for i := 1 to Length(aBinary) do Result := Result + IntToHex(Ord(aBinary[i]), 2); end;
Delphi-Quellcode:
gelesen werden sollen. Es handelt sich um verschlüsselte Texte.
function HexStrToBinaryStr(aHex : AnsiString) : AnsiString;
var i : Integer; begin Result := ''; for i := 1 to (Length(aHex) div 2) do begin Result := Result + Chr(:= StrToint('$' + Copy(aHex,i*2-1,2))); end; end; |
Re: Chr(224) Delphi 2007 <-> Delphi 2009
Welchen Typ hat aHex?
|
Re: Chr(224) Delphi 2007 <-> Delphi 2009
Zitat:
|
Re: Chr(224) Delphi 2007 <-> Delphi 2009
Man heute bin ich blind :oops:
|
Re: Chr(224) Delphi 2007 <-> Delphi 2009
Zitat:
Gruß Assertor |
Re: Chr(224) Delphi 2007 <-> Delphi 2009
Vielleicht trotzdem ähnliches Problem wie bei mir damals:
![]() |
Re: Chr(224) Delphi 2007 <-> Delphi 2009
das ist ja lustig!
bei mir liefert ein Testprojekt mit 1 form und einem button und:
Delphi-Quellcode:
* unter Delphi 2007 ein 'ŕ'
procedure TForm1.Button1Click(Sender: TObject);
var c : AnsiChar; begin c := Chr(224); ShowMessage(c); end; * unter Delphi 2009 ein 'a'. im Debugger wird aber Chr(224) als 'à' ausgewertet kann sich (oder mir ;-) ) das jemand erklären? |
Re: Chr(224) Delphi 2007 <-> Delphi 2009
ja, ich kann es mir erklären. D2009 ist glaub ich Unicodefähig und chr liefert dir dann vielleicht das ganze als Unicode zurück. Immerhin ist chr eine Funktion. vielleicht klappt es ja wenn du die Zahl direkt castest also char(zahl) sofern sizeof(char) noch 1 ist.
|
Re: Chr(224) Delphi 2007 <-> Delphi 2009
Nein Chr liefert auch in D2009 einen Ansistring zurück
|
Re: Chr(224) Delphi 2007 <-> Delphi 2009
Zitat:
Also bei mir liefert sowohl Delphi 2007, als auch Delphi 2009 ein "á" (auch im Debugger)! Ist im Übrigen das gleiche, was auch #224 liefert - in beiden Versionen. Frage: Warum nimmst du nicht gleich HexToBin/BinToHex aus Classes.pas? |
Re: Chr(224) Delphi 2007 <-> Delphi 2009
Hallo,
Zitat:
Delphi-Quellcode:
Zugegeben - die Hilfedatei ist in diesem Punkt leider keine große Hilfe...
var
ch : Char; begin ch := Chr($0815); ShowMessage (IntToHex(Ord(ch), 4)); end; Gruß Hawkeye |
Re: Chr(224) Delphi 2007 <-> Delphi 2009
Zitat:
|
Re: Chr(224) Delphi 2007 <-> Delphi 2009
Liste der Anhänge anzeigen (Anzahl: 1)
Die IDE auch nicht
|
Re: Chr(224) Delphi 2007 <-> Delphi 2009
wie sieht es aus wenn man castet mit char(zahl) anstelle die compilermagic funktion chr(zahl) zu verwenden?
|
Re: Chr(224) Delphi 2007 <-> Delphi 2009
Danke für die Tips.
BinToHex und HexToBin liefern gerau das gleiche Ergebnis wie meine Funktionen. Habe inzwischen den Grund für das Problem gefunden, allerdings noch keine Lösung. Auf meinem System war die Defaultcodepage auf Polnisch eingestellt (Systemsteuerung/Regions- und Sprachoptionen/Erweitert/Sprachversion für nicht-Unicodefähige Programme). Wenn ich sie auf Deutsch zurückstelle, bekomme ich wie Ihr ein 'á'. Chr arbeitet also Systemcodepage-abhängig. Lösung mit Casten werde ich ausprobieren |
Re: Chr(224) Delphi 2007 <-> Delphi 2009
Zitat:
Zitat:
Delphi-Quellcode:
Wird nur AnsiString angegeben, verwendet Delphi die aktuelle Windows-CodePage. Leider geht das nicht mit AnsiChar, nur mit AnsiString;
type
GermanString = type AnsiString (1252); PolishString = type AnsiString (1250); var German: GermanString; Polish: PolishString; begin German := chr(224); Polish := chr(224); ShowMessage(German + '<>' + Polish); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 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