String

String - słowo kluczowe języka Delphi

String jest słowem kluczowym języka Delphi wskazującym na tzw. długi łańcuch. W domyślnych ustawieniach kompilatora, słowo String wskazuje na typ AnsiString w Win32. W Delphi dla .NET typ String jest równoważny z WideString, który wskazuje na klasę System.String.

Na platformie Win32 przełącznik kompilatora {$H-} powoduje iż typ String będzie wskazywał na ShortString. Na platformie .NET, dyrektywa dyrektywa ta jest uważana za przestarzałą.

Korzystanie z typu String jest możliwe tak samo jak korzystanie z dowolnego typu danych w Delphi:

Foo: string;


Możliwe jest również ograniczenie długości łańcucha:

Foo: string[30];


W takim wypadku, długość zmiennej Foo będzie ograniczona do 30 znaków. Równocześnie oznacza to, iż łańcuch Foo będzie traktowany przez kompilator jako krótki łancuch (ShortString). Jako, że długość łancucha ShortString jest ograniczona do 255 znaków nie można zadeklarować łańcucha, załóżmy - o długości 300 znaków:

var
  Foo : String[300]; { <-- nieprawidłowa składnia }


Większość źródeł podaje, iż długość zmiennej typu String (a więc de facto AnsiString lub WideString - w zależności od wersji Delphi) jest ograniczona jedynie dostępną pamięcią, z tym jednak bywa różnie - Windows na przykład domyślnie pozwala aplikacji adresować maksymalnie 2GB. Do normalnych zastosowań to zupełnie wystarcza więc jest to jedynie ciekawostka.

Zobacz też:

Informacje
Ostatnia modyfikacja 07-02-2006 17:50 Ostatni autor Adam Boduch
Ilość wyświetleń 22742 Wersja 7
Komentarz
N00byStance dnia 22-12-2005 21:16
Nie liter tylko znaków... Czepiam się ;)
Patyk dnia 22-12-2005 00:24
brodny dnia 21-12-2005 23:17
Do tego pobranie aktualnej długości łańcucha, jej ustawienie, ew. odnośniki do innych typów łańcuchowych.
Patyk dnia 21-12-2005 19:47
Dodał byś jeszcze coś na temat tego rozróżnienia na AnsiString i ShortString, wraz z dyrektywą która ustawia której z tych dwóch zmiennych aliasem ma być samo String...

W ostatnim kodzie daj < delphi > </ delphi > zamiast < code=Delphi > </ code>

Copyright © 2000-2006 by Coyote Group 0.9.3-pre3
Czas generowania strony: 0.0256 sek. (zapytań SQL: 9)