В какую переменную сохранить много текста?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
McLion
постоялец
Сообщения: 332
Зарегистрирован: 06.02.2015 17:41:00

В какую переменную сохранить много текста?

Сообщение McLion »

Всем привет,

не подскажите в какую переменную можно сохранить много текста? Один или несколько листов A4 например.
String? Сколько в него вообще влазит?

Пасиб!
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3071
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

В String влазит столько, сколько хватает памяти программы. Несколько листов А4 - это очень немного текста. В один мегабайт влазят десятки страниц.
Аватара пользователя
McLion
постоялец
Сообщения: 332
Зарегистрирован: 06.02.2015 17:41:00

Сообщение McLion »

Разве там нет ограничения? WideString вроде без ограничений, или?
Аватара пользователя
Ichthyander
энтузиаст
Сообщения: 701
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань
Контактная информация:

Сообщение Ichthyander »

McLion писал(а):Разве там нет ограничения? WideString вроде без ограничений, или?

Все типы строк String имеет тип AnsiString, то есть неограниченной длины со счетчиком ссылок. Ограничение имеют строки ShortString, которые представляют из себя набор байт, первые из которых отвечают за длину

Добавлено спустя 38 секунд:
Вернее первый (байт)
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3071
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

Забавно, кстати, что в Делфи и по сей день текстовые константы ограничены до 255 символов. Из-за этого присвоение большого константного текста приходится разбивать на несколько фрагментов.
Аватара пользователя
WAYFARER
энтузиаст
Сообщения: 567
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Сообщение WAYFARER »

Снег Север писал(а):Забавно, кстати, что в Делфи и по сей день текстовые константы ограничены до 255 символов.

ShortString - макс. длинна 255, а у AnsiString - 2 ГБ.
Ответить