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 — тип переменной содержащий отдельный Интернациональный символ.
