[ gajo2 @ 17.10.2006. 12:53 ] @
Pozdrav,

Koristim Delphi 5 i TNT komponente za Unicode. Trenutno radim neke konverzije sa WideStringovima, tako da uzmem svaki karakter (WideChar) i onda treba da proverim njegov broj. Medjutim Ord(WideChar) ne radi, jer verovatno Ord ne podrzava Unicode karaktere, pa uvek dekoduje ? umesto slova.

Jel zna neko kako da uzmem broj od WideChar-a? Jel postoji nesto kao WideOrd funkcija?
[ Miloš Baić @ 17.10.2006. 13:29 ] @
Pozdrav,

imaš u Help - u nešto o tome...
Citat:

Converts a WideString value to a string of 4-byte Unicode characters.
Delphi syntax:

function WideStringToUCS4String(const S: WideString): UCS4String;

C++ syntax:

extern PACKAGE UCS4String __fastcall WideStringToUCS4String(const WideString S);

Description

Call WideStringToUCS4String to convert a WideString value to a string of UCS4 (4-byte Unicode) characters.
UCS4 strings are used by some Linux operating system calls.
[ sasas @ 17.10.2006. 15:22 ] @
Mozda ti posao odradi ovo:

Code:

program aaa;
{$APPTYPE CONSOLE}

uses
  SysUtils;
var
  s: WideChar;
  w: word;
begin
  s := WideChar(92);
  writeln(s);
  w := word(s);
  writeln(w);
  readln;
end.


ss.
[ savkic @ 17.10.2006. 15:28 ] @

> Koristim Delphi 5 i TNT komponente za Unicode. Trenutno radim neke konverzije sa WideStringovima, tako da uzmem svaki karakter (WideChar) i onda treba da
> proverim njegov broj. Medjutim Ord(WideChar) ne radi, jer verovatno Ord ne podrzava Unicode karaktere, pa uvek dekoduje ? umesto slova.

Negde grešiš, evo jednostavnog primera.

procedure TForm1.Button1Click(Sender: TObject);
var
a: WideString;
begin
A := #6512;
Caption := IntToStr(Ord(a[1]));
end;
[ gajo2 @ 17.10.2006. 16:55 ] @
Jeste, stvarno je bila greska.
Prvo to sto AnsiLowerCase i Trunc pretvaraju Unicode slova u ?????. Cudi me da je to slucaj sa AnsiLowerCase-om, posto ima ono Ansi-, ali eto.

Drugo je sto sam hteo da napravim beskonacnu petlju sa
Code:
repeat
until true;

A zapravo treba
Code:
repeat
until false;

Dva sata sam se mucio dok nisam ovo primetio