Строковая константа длинной более 255 символов

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Ответить
Аватара пользователя
coyot.rush
постоялец
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Строковая константа длинной более 255 символов

Сообщение coyot.rush »

Код: Выделить всё

Error: Constant strings can't be longer than 255 chars

При попытке использовать строковую константу длиной более 255 символов.
Варианты решения
1)
A single string constant can contain at most 255 chars. Try splitting up the string into multiple smaller parts and concatenate them with a + operator.
http://www.freepascal.org/docs-html/user/userse61.html
Использовать +.
2) :?: :?: :?:
Хочется записывать длинную строку без использования +. Можно ли такое осуществить в fpc ? Есть ли специальные директивы компиляции?
Сквозняк
энтузиаст
Сообщения: 1159
Зарегистрирован: 29.06.2006 22:08:32

Сообщение Сквозняк »

Бедные редакторы, они ведь тоже на исходники с короткими строками заточены. Да и компилятор потеряет скорость если станет компилировать ansistring.
Есть ли специальные директивы компиляции?
Справка fpc в консоле ничего подходящего не показывает, трудно искать чёрную кошку в тёмной комнате.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Ограничение на длину строковой константы распространяется вроде только на режим {$H-}. Но есть ограничение в 255 символов на длину строки исходного файла, так что длинные константы так или иначе придется писать в несколько строк и соединять плюсами. Директив нет.
Ask
постоялец
Сообщения: 163
Зарегистрирован: 25.12.2008 02:51:37

Сообщение Ask »

В trunk'е этой проблемы уже нет
Аватара пользователя
coyot.rush
постоялец
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Сообщение coyot.rush »

Часть файла main.mfm (на форме tmemoedit ):

Код: Выделить всё

object tmemoedit1: tmemoedit
    frame.localprops = [frl_colorclient]
    taborder = 10
    bounds_x = 8
    bounds_y = 160
    bounds_cx = 516
    bounds_cy = 245
    value = '01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789'
  end


Строка больше 255 символов и всё прекрасно компилируется :!: :?:
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

В лазарусе есть возможность создать строку ресурсов - в этом случае плюсики появятся автоматически
Ответить