Delphi справочник - Форум программистов - Навигация  
 A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z      По первой букве  
System     SysUtils     StrUtils     DateUtils     FileCtrl     ConvUtils     StdConvs     Math     Classes     Dialogs     Types     Variants    ПО Unit   Compiler directives     Directives     Keywords     Types     Variables     Constants     Functions     Procedures    По категории  


Основы Delphi
AnsiString
Тип
Тип данных, который содержит строку AnsiChar System unit
  type AnsiString;
Описание
Тип данных AnsiString используется, чтобы содержать последовательность символов, подобно предложениям.

Каждый символ AnsiChar, гарантируется, что будет в размере 8 бит.

AnsiString может содержать любое число символов, ограниченное только памятью.

В отличие от ShortString, AnsiString - указатель, ссылающийся на переменные. Память распределяется для AnsiString только когда необходимо. Например, присваивание значения одного AnsiString другому не распределяет память для копии первой строки. Вместо этого, ссылка считает первую строку увеличенной, и второй AnsiString устанавливает указатель на него.

Но когда вторая строка изменяется, то для этой новой строки выделяется новая память, и ссылка считает первую строку уменьшенной.

Когда на строку больше не ссылаются (последний указатель AnsiString установлен на ноль), она уничтожается.

AnsiString может быть присвоен от других строк, от функций, которые возвращают строку, и конкатенациями как в данном примере.
Примечания
В строках первый символ имеет индекс 1 (массивы начинаются с 0 для первого элемента).
Похожие команды
AnsiChar  Символьный тип, гарантированный размер 8 бит

PAnsiString  Указатель на значение AnsiString

String  Тип данных, который содержит строку символов

WideString  Тип данных, который содержит строку, состоящую из WideChar

 
Пример кода : Присвоение двум AnsiString, и управление ими
var
  string1, string2 : AnsiString;
begin
  // Присвоение известного предложения первой строке
  string1 := 'Hello World';

  // Присвоение второй строке
  // Это просто указывает string2 на string1
  // Число ссылок на память строки 'Hello World' равно 2
  string2 := string1;

  // Добавление второй строке
  // Это разъединяет от string1 - создаётся новая память для строки,
  // чтобы хранить значение string2
  string2 := string2 + ', how is everyone?';

  // И наконец, делаем длину первой строки равной 5
  SetLength(string1, 5);

  // Показ обоих хначений
  ShowMessage('String1 = '+string1);
  ShowMessage('String2 = '+string2);
end;
String1 = Hello
String2 = Hello World, how is everyone?
 



© Форум Delphi   |  Блог программистов   |  Создание и продвижение сайтов - "Веб сателлит"  |  Ссылки   |  Английская версия