Строка | Программирование в Делфи | Fandom
‘ Строка представляет собой последовательность символов (символов). Он представлен между одинарными кавычками. Его также можно объединить с + .
Пример[]
вар МояСтрока: Строка; начинать MyString := 'Привет'; MyString := MyString + 'Мир'; конец;
Типы строк[]
- ShortString (255 символов, до 256 байт памяти)
- AnsiString 930 широких символов, до 1 ГБ памяти)
AnsiString был текущим значением по умолчанию для String до Delphi 2009, в котором String по умолчанию имеет значение UnicodeString.
В обсуждении в группе новостей (comp.lang.pascal.delphi.misc, начало 2007 г.) был поднят вопрос о том, сколько типов строк есть в delphi.
Тот, кто спрашивал, конечно (я), знал, что было больше, чем обычные один-три, которые обычно называют; короткие, анси и широкие.
Обратите внимание, что в сводке ниже можно спорить о точном определении типа строки или о том, считается ли определенная запись как 1 или 255 (например, поскольку короткие строки
определенной длины в некотором роде несовместимы друг с другом, можно сказать, что существует 255 типов коротких строк).
Однако это не было целью обсуждения. Цель обсуждения — ознакомить людей с огромным количеством строковых типов и преобразований между ними, которые существуют в Delphi.
Исходное определение типа строки: «Типы строк Delphi и типы, которые автоматически преобразуются в них в той или иной форме»
Список:
- 3 коротких, анси, широких строк.
- 1 (анси)симв
- 1 широкий символ (оба = соответственно символ и широкий символ с этого момента)
- 2 (статический) массив из обоих
- 2 динамических массива обоих.
- 2 открытых массива обоих,
- 2 указатель на оба,
- 2 указатель на массив обоих ,
1 короткая строка открытого массива. (в некоторых смысловых контекстах отличается)
16 -> Теоретическое максимальное количество преобразований: 16*16 = 256
Это, конечно, слишком много:
- предполагает, что каждое преобразование возможно (например, открытые массивы, возможно, доступны только для чтения),
- предполагает очень обратимое преобразование.

- также включены 16 прямых назначений того же типа, которые менее подвержены проблемам автоматического преобразования
.
Некоторые другие замечания, собранные из различных комментариев (IRC и c.l.p.delphi.misc)
- Обратите внимание, что это даже не включает некоторые из этих типов в вариантах.
- многобайтовых форм в существующих типах строк не учитываются.
- литералов. Отличаются ли строковые литералы ?
- Существуют ли другие типы литералов? (resourcestring отдельный вид?)
- есть ли преобразования, а не базовые типы строк между литералами и, например, статический массив символов?
Первоначальный список был создан в ходе обсуждения добавления новой функции в FPC (и он также хотел предложить ее разработчикам Delphi). Среди прочего, «фича» добавила автопреобразование в строки. Мы спросили «какая строка?». Он ответил «все»…
Контент сообщества доступен по лицензии CC-BY-SA, если не указано иное.
Жестко закодированные строки — MMX
При подготовке приложения к локализации вам необходимо иметь дело с жестко закодированными строками в исходных файлах.
Эти жестко закодированные строки обычно либо преобразуются в строку ресурсов, константу, либо помечаются как нелокализованные.
ModelMaker Code Explorer поставляется с обширным набором инструментов, помогающих управлять поиском и преобразованием жестко запрограммированных строк в исходных файлах Delphi Pascal:
- Преобразовать строку в курсоре редактора в строку ресурсов или константу: просто нажмите Ctrl+Alt+R, чтобы преобразовать строку в строку ресурсов. Аналогично, нажмите Ctrl+Alt+N, чтобы преобразовать строку в константу.
- Подсказки Live Metrics™ отображаются, если единица измерения содержит жестко запрограммированные строки.
- Мастер преобразования строк модулей : сканирует весь файл на наличие строк жесткого кода и позволяет выполнять массовое извлечение и преобразование.

- Мастер нескольких файловых строк : используется для управления и сканирования списков исходных файлов на наличие жестко закодированных строк
- Расширенные параметры для управления сканированием и преобразованием строк.
- Сканер строк командной строки для включения в автоматизированные процессы сборки.
Code Explorer помогает вам сделать ваше программное обеспечение локализуемым путем преобразования жестко закодированных строк в строки ресурсов.
Следующим шагом является использование инструмента локализации программного обеспечения .
Мастер преобразования строк модулей
Этот мастер сканирует весь исходный файл на наличие жестко запрограммированных строк и позволяет выполнить массовое преобразование в строки ресурсов и/или константы.
Сканер использует фильтры на основе регулярных выражений и длины строки. Щелкнув строку в списке, редактор IDE прокручивает строку, содержащую строку
(первое вхождение).
После нажатия Convert строки заменяются идентификаторами и вставляется раздел resourcesstring и/или const , определяющий идентификаторы и строки.
Помимо преобразования строки в resourcestring или const, мастер может пометить строку как нелокализованную . Это делается путем добавления определяемого пользователем комментария // в стиле строки, содержащей строку – по умолчанию // не локализовать
Мастер чувствителен к регистру и обрабатывает ‘Hello’ и ‘hello ‘ как две разные строки.
Параметры преобразования строк и сканера
Параметры, указанные ниже, позволяют настраивать сканер строк, используемый мастером строк модулей и мастерами многофайловых строк.
К ним относятся фильтры, пропускающие строки меньше минимальной длины.
Фильтр строк позволяет пропускать строки, содержащие определенные фразы, такие как «Утверждать» или «// не локализовать».
Аналогично, строковый фильтр может быть определен для фильтрации фактической строки, а не всей исходной строки.
Оба фильтра используют регулярные выражения.
Мастер строк с несколькими файлами
Мастер строк с несколькими файлами помогает сканировать, анализировать, извлекать и преобразовывать жестко запрограммированные строки в списке файлов.
Только для Delphi IDE: окно со списком файлов можно закреплять. Операции с несколькими выбранными файлами включают:
- Сканирование и фильтрация: сканирование файлов на наличие жестко закодированных строк и удаление из списка файлов, не содержащих жестко закодированных строк.
Количество (уникальных) строк отображается в файле. - Запустите мастер строк ресурсов модуля, чтобы просмотреть и преобразовать жестко закодированные строки.
- Загрузить список файлов из текстового файла, например, созданного с помощью dir *.pas /b/s > filelist.txt
- Загрузить файлы в активный проект IDE.
- Загрузить файлы с помощью открытого диалогового окна.
- Сохранить список файлов в текстовый файл.



