Znakowe

SebaZ

Typ znakowy określa zbiór znaków. W zmiennej tego typu można zapamiętać kod pojedynczego znaku.

NazwaKrótki opis
CharKod [1 bajtowy] jednego znaku ASCII (0..255)
AnsiCharKod [1 bajtowy] jednego znaku ASCII (0..255) - równoznaczny z Char
WideCharKod [2 bajtowy] jednego znaku Unicode (UCS-2) (0..65535)
UCS2CharKod [2 bajtowy] jednego znaku Unicode (UCS-2) (0..65535) - równoznaczny z WideChar
UCS4CharKod [4 bajtowy] jednego znaku Unicode (UCS-4) (0..4294967295) - równoznaczny z LongWord

Mimo, iż niektóre systemy operacyjne (z rodziny Linux) obsługują Multi-Byte Character Strings (MBCS) ze znakami 4 bajtowymi (UCS-4), język Delphi pozwala jedynie na wbudowaną obsługę MBCS 2 bajtowych (UCS-2).

Obsługa Unicode (UCS-4) została osiągnięta przez utworzenie typu UCS4Char pochodnego z LongWord - wyjątkowo jest to typ liczbowy, a nie znakowy.

Przykład przypisania znaku o wybranym kodzie:

program Przyklad;
 
{$APPTYPE CONSOLE}
 
var C: Char;
    A: AnsiChar;
    W: WideChar;
    U2: UCS2Char;
    U4: UCS4Char;
begin
//Przypisanie znaku o kodzie 50
  C := #50;
  A := #50;
  w := #0050;
  U2 := #0050;
  U4 := 00000050; //Typ liczbowy!
  WriteLn(SizeOf(C));
  WriteLn(SizeOf(A));
  WriteLn(SizeOf(W));
  WriteLn(SizeOf(U2));
  WriteLn(SizeOf(U4));
end.

Łańcuchy Unicode (UTF-8) są obsługiwane jako typ łańcuchowy String i nie posiadają specjalnego typu znakowego.

AnsiChar

  • 2006-01-06 15:30
  • 0 komentarzy
  • 1234 odsłony

WideChar

  • 2006-01-01 15:47
  • 0 komentarzy
  • 1071 odsłon

Char

  • 2005-12-24 14:49
  • 1 komentarz
  • 1485 odsłon

1 komentarz

Od wersji D2009 Char=WideChar.