Что делать с "can't be longer than 255 chars"?

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

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

Что делать с "can't be longer than 255 chars"?

Сообщение Mapper720 » 13.09.2011 18:54:41

Поиском нашёл подобные обсуждения, но там обсуждалось, как использовать строку ДЛИННЕЕ 255 символов. У меня же несколько другая проблема.
Строка МЕНЬШЕ, чем 255 символов (240 с учётом пробелов). Но при компиляции всё равно получаю "Error: Constant strings can't be longer than 255 chars".
Открыл Gedit, скопировал туда строку, смотрю статистику. Символов (с пробелами) - 240. Но количество байт - почему-то 443.
Попробовал отрезать часть текста, чтобы было 254 байта. Получилось, всё компилится. Но теперь реально в строке умещается лишь 138 символов.
Каждый символ (надпись русская), похоже, занимает 2 байта... Подозреваю, что дело в кодировке, но как это исправить? Помогите, если кто знает.

Версия Lazarus - 0.9.30
ОС - Linux Lubuntu 11.04

P.S. В win xp в Delphi такой пробелемы не наблюдалось...
Mapper720
незнакомец
 
Сообщения: 3
Зарегистрирован: 31.08.2011 10:07:48

Re: Что делать с "can't be longer than 255 chars"?

Сообщение Ism » 13.09.2011 19:15:22

UTF8 , мой юный падаван

Покажи пример кода

Добавлено спустя 4 минуты 25 секунд:
надо использовать не ansistring , a utf8string
кроме того кажется есть отдельные операторы считающие длину строки для utf8 и для ansi
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Что делать с "can't be longer than 255 chars"?

Сообщение Mapper720 » 13.09.2011 19:32:41

Код примрно такой:
Код: Выделить всё
<...>

type
  QST = Record
  Qt: string;
  ...
  ... ... ...
  End;

<...>

var QB: Array [1..Max] of QST;

<...>

QB[8].Qt:='бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-'; {т.е. 240 символов, 420 байт}

<...>

То, что проблема с кодировкой, я понимаю. Не понимаю только, как её лечить...
Mapper720
незнакомец
 
Сообщения: 3
Зарегистрирован: 31.08.2011 10:07:48

Re: Что делать с "can't be longer than 255 chars"?

Сообщение Ism » 13.09.2011 19:51:29

А на каком участке кода это выскакивает, вообщето длина строки в lazarus по умолчанию 2 гб ?
Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08

Re: Что делать с "can't be longer than 255 chars"?

Сообщение Mapper720 » 13.09.2011 20:03:17

Ism писал(а):А на каком участке кода это выскакивает, вообщето длина строки в lazarus по умолчанию 2 гб ?

Ошибка "Constant strings can't be longer than 255 chars" выскакивает на строке
Код: Выделить всё
QB[8].Qt:='бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-бла-';
Mapper720
незнакомец
 
Сообщения: 3
Зарегистрирован: 31.08.2011 10:07:48

Re: Что делать с "can't be longer than 255 chars"?

Сообщение Ism » 13.09.2011 20:22:12

Ism
энтузиаст
 
Сообщения: 908
Зарегистрирован: 06.04.2007 17:36:08


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17

Рейтинг@Mail.ru
cron