WideString
Adam Boduch
WideString - typ łańcuchowy języka Delphi
Typ WideString
, podobnie jak typ AnsiString posiada teoretycznie nieograniczoną "pojemność" (~2^30 znaków, co przekłada się na 4 bajty - 2 GB pamięci). W odróżnieniu od AnsiString, typ WideString
służy do przechowywania tekstu kodowanego w systemie Unicode.
W Delphi dla Win32, typ String wskazywał na AnsiString; w Delphi dla .NET String
wskazuje na WideString
Typ WideString
jest tablicą znaków, tzn. do każdego elementu łańcucha (znaku) można odwoływać się podobnie jak do tablic:
program Foo;
{$APPTYPE CONSOLE}
const
Bar : WideString = 'Hello World';
var
i : Integer;
begin
for I := 1 to Length(Bar) do
Writeln(I, ': ', Bar[i]);
Readln;
end.
Na podstawie tego co powiedzieliśmy, do dowolnego znaku można odwołać się poprzez Foo[n]
gdzie n
to numer znaku (1 oznacza pierwszy znak w łańcuchu). Pojedyńczy znak `WideString``` wskazuje na typ WideChar:
const
Bar : WideString = 'Hello World';
var
S : WideChar;
begin
S := Bar[1];
end.
Łańcuch WideString jest zawsze zakończony znakiem #0, dlatego można w łatwy sposób rzutować go na PWChar. W przeciwieństwie jednak do tego drugiego, może zawierać znaki #0 (dla PWChar znak #0 oznacza koniec łańcucha).
Długość łańcucha znajduje się, podobnie jak dla AnsiString, na pozycji "4 bajty przed łańcuchem" - funkcja Length zwraca właśnie tą wartość, nie obliczając za każdym wywołaniem długości łańcucha. Jednakże w odróżnieniu od AnsiString, długość WideString
jest przechowywana jako ilość bajtów a nie znaków, dlatego funkcja Length dzieli tą liczbę przez 2 i podaje długość łańcucha w znakach.
Zobacz też: