Delphi тип AnsiString – тип даних, що містить рядок AnsiChar.
System unit
type AnsiString;
Тип даних AnsiString використовується, щоб містити послідовність символів, подібно до речень.
Кожен символ AnsiChar гарантується, що буде в розмірі 8 біт.
AnsiString може містити будь-яку кількість символів, обмежену лише пам'яттю.
На відміну від ShortString, AnsiString – вказівник, що посилається на змінні. Пам'ять розподіляється для AnsiString лише коли потрібно. Наприклад, надання значення одного AnsiString іншому не розподіляє пам'ять для копії першого рядка. Натомість, посилання вважає перший рядок збільшеним, і другий AnsiString встановлює вказівник на нього.
Але коли другий рядок змінюється, то для цього нового рядка виділяється нова пам'ять, і посилання вважає перший рядок зменшеним.
Коли на рядок більше не посилаються (останній покажчик AnsiString встановлений на нуль), він знищується.
AnsiString може бути привласнений від інших рядків, від функцій, які повертають рядок, і конкатенаціями як у даному прикладі.
Примітка.
У рядках перший символ має індекс 1 (масиви починаються з 0 для першого елемента).
Тип AnsiString в Delphi: Привласнення двом 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?
Подібні функції, процедури та команди
AnsiChar — символьний тип, гарантований розмір 8 біт.
PAnsiString — вказівник на значення AnsiString.
String — тип даних, що містить рядок символів.
WideString — тип даних, який містить рядок, що складається з WideChar.
