Delphi тип WideString містить рядок, що складається з WideChar.
System unit
type WideString;
Тип даних WideString використовується, щоб тримати послідовність міжнародних символів, подібно до речення. Кожен символ – WideChar, займає 16 біт. Типи WideChar забезпечують підтримку багатобайтових наборів міжнародних символів, таких як китайський, який має велику кількість символів.
На відміну від ShortString, WideString – покажчик, що посилається на змінні. Пам'ять розподіляється для AnsiString лише тоді, коли потрібно. Наприклад, надання значення одного AnsiString іншому не розподіляє пам'ять для копії першого рядка. Натомість, посилання вважає перший рядок збільшеним, і другий AnsiString встановлює покажчик на нього.
Але коли другий рядок змінюється, то для цього нового рядка виділяється нова пам'ять, і посилання вважає перший рядок зменшеним.
Коли на рядок більше не посилаються (останній покажчик WideString встановлений на нуль), він знищується.
WideStrings може бути присвоєний від інших рядків, від функцій, які повертають рядок, та конкатенаціями як у даному прикладі.
При наданні "вузькому" рядку, типу AnsiString, подвійний, перетворення можуть мати непередбачувані результати. Використовуйте з обережністю.
Перетворення з AnsiString на WideString не викликає занепокоєння.
Тип WideString в Delphi: Присвоєння двом WideStrings, та керування ними
var
string1, string2 : WideString;
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?
Подібні функції, процедури та команди
AnsiCompareStr — порівняння двох рядків на рівність.
AnsiLowerCase — символи верхнього регістру змінюються в рядок з малими літерами.
AnsiPos — знаходить позицію одного рядка в інший.
AnsiUpperCase — символи нижнього регістру змінюються на символи верхнього регістру.
Concat — з'єднує кілька рядків в один.
Copy — створює копію частини рядка або частини масиву.
Delete — видаляє частину символів з рядка.
Length — повертає кількість елементів у масиві чи рядку.
Move — копіює байти даних із джерела у місце призначення.
PWideString — покажчик на значення WideString.
SetLength — змінює розмір рядка або розмір динамічного масиву.
String — тип даних, що містить рядок символів.
WideChar — тип змінної яка містить окремий інтернаціональний символ.
