Einzelnen Beitrag anzeigen

messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Unicode/WChar im BCB darstellen

  Alt 31. Dez 2006, 14:54
Zitat von Robert Marquardt:
L vor dem String ist C Syntax fuer ein Unicode String Literal. Die String-Konstante wird von Compiler nicht als C-String-Typ sondern als Unicode-String-Typ gehandelt.
Interessanterweise scheint die Zuweisungsart über die Compilerbehandlung zu entscheiden:
Code:
WideString s1 = L"\x043F\x043E\x0442\x0435\x0440\x0438\x0442\x0435\x043F\x043B\x0430"
         L"\x043F\x043E\x0442\x0435\x0440\x0438 \x0442\x0435\x043F\x043B\x0430"
         L"\x043F\x043E\x0442\x0435\x0440\x0438 \x0442\x0435\x043F\x043B\x0430";
läßt kein späteres
Code:
s1 = s1 + "hallo"; //bzw.
s1 = s1 + L"\x0641";
zu (Out of Memory). Übergebe ich von hinten durch die Brust ins Auge
Code:
s1 = (WideString(wchar_t(0x0641)))+(WideString(wchar_t(0x0442)))+(WideString(wchar_t(0x043F)))+(WideString(wchar_t(0x043B)));
, kann ich diese Syntax s1 = s1 + irgendwas verwenden. Die Zuweisung läßt wiederum keinen Zeilenumbruch in der IDE zu.
Die Übergabe als Literal scheint also zur Behandlung als Literal mit einer festen Länge zu führen, während die Widestringvariante das Stringarray offen hält.
Ich habe mein Problem leider mit beidem nicht lösen können: beliebig lange Widestrings in der BCB6-IDE zuweisen und als WideString behandeln zu können.


Grüße, Messie
  Mit Zitat antworten Zitat