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
WideString
Тип
Тип данных, который содержит строку, состоящую из WideChar System unit
  type WideString;
Описание
Тип данных WideString используется, чтобы держать последовательность Интернациональных символов, подобно предложениям. Каждый символ - WideChar, занимает 16 бит. Типы WideChar обеспечивают поддержку многобайтовых наборов Интернациональных символов, таких как китайский, который имеет большое число символов.

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

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

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

WideStrings может быть присвоен от других строк, от функций, которые возвращают строку, и конкатенациями как в данном примере.

При присвоении 'узкой' строке, типа AnsiString, двойной, преобразования могут иметь непредсказуемые результаты. Используйте с осторожностью.

Преобразование из AnsiString в WideString не вызывает беспокойства.
Примечания
В строках первый символ имеет индекс 1 (массивы начинаются с 0 для первого элемента).
Похожие команды
AnsiCompareStr  Сравнение двух строк на равенство

AnsiLowerCase  Символы верхнего регистра изменяются в строку со строчными буквамм

AnsiPos  Находит позицию одной строки в другой

AnsiUpperCase  Символы нижнего регистра изменяются на символы верхнего регистра

Concat  Соединяет несколько строк в одну

Copy  Создает копию части строки или части массива

Delete  Удаляет часть символов из строки

Length  Возвращает число элементов в массиве или строке

Move  Копирует байты данных из источника в место назначения

PWideString  Указатель на значение WideString

SetLength  Изменяет размер строки или размер динамического массива

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

WideChar  Тип переменной содержащий отдельный Интернациональный символ

 
Пример кода : Присвоение двум 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?
 


Оплата за обучение в Kata Academy только после твоего трудоустройства в IT, начни карьеру Middle Java-разработчика



Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки? Slurm подготовили для вас особенный продукт!





форум программистов


© Форум Delphi  |  Форум Pascal   |  Блог программистов   |  Исходники Delphi   |  Автор сайта  |  Ссылки   |  Английская версия