Глобальные проблеммы со строками

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

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

Глобальные проблеммы со строками

Сообщение Alex2013 » 25.04.2013 15:44:47

При использовании TStringList обнаружил странную ошибку
Код примерно такой
Код: Выделить всё
Var
L:TStringList;
S:String;
begin
L:=TStringList.Create;
L.LoadFromFile('cur1.Log');
S:=L.Text;
ShowMessage(L.Text);//Тут нормально
ShowMessage(S);// А тут обрезает  ...
L.Free;
////
end;


Лог размером с "полкило" или даже меньше
как результат все операции с полученной строкой происходят с ошибкой .
Вопрос в чем может быть проблема?
Версия 1.0.02 кодировка UTF8 среда Win32
Alex2013
долгожитель
 
Сообщения: 3148
Зарегистрирован: 03.04.2013 11:59:44

Re: Глобальные проблеммы со строками

Сообщение SeZuka » 25.04.2013 17:41:32

Alex2013 писал(а):Код примерно такой

А можно не примерно, а оригинал?
SeZuka
постоялец
 
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Re: Глобальные проблеммы со строками

Сообщение SSerge » 26.04.2013 05:14:59

Alex2013 писал(а):в чем может быть проблема?


Директиву {$H+} в начале файла скорее всего не впечатали.
Без нее (или без аналогичной опции компилятора) строки будут String=ShortString до 255 байт длиной.
SSerge
энтузиаст
 
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: Глобальные проблеммы со строками

Сообщение Alex2013 » 26.04.2013 17:34:01

SSerge писал(а):
Alex2013 писал(а):в чем может быть проблема?


Директиву {$H+} в начале файла скорее всего не впечатали.
Без нее (или без аналогичной опции компилятора) строки будут String=ShortString до 255 байт длиной.

Надо попробовать ... Спасибо за совет!
Зы
А можно не примерно, а оригинал?

Если не поможет {$H+} выложу хотя смысла особого не вижу
Увидел что строки где-то обрезает начал отлаживать и добрался до
вот этого куска кода
Код: Выделить всё
S:=L.Text;
ShowMessage(L.Text);//Тут нормально
ShowMessage(S);// А тут обрезает  ..

Где четко видно что ошибка не в алгоритме ..
Alex2013
долгожитель
 
Сообщения: 3148
Зарегистрирован: 03.04.2013 11:59:44

Re: Глобальные проблеммы со строками

Сообщение SeZuka » 27.04.2013 08:10:37

Alex2013 писал(а):добрался до
вот этого куска кода
Код: Выделить всё
S:=L.Text;
ShowMessage(L.Text);//Тут нормально
ShowMessage(S);// А тут обрезает  ..

Весьма странный у вас кусок "рабочего" кода...
SeZuka
постоялец
 
Сообщения: 209
Зарегистрирован: 05.09.2012 14:58:05

Re: Глобальные проблеммы со строками

Сообщение Alex2013 » 27.04.2013 14:27:20

{$Н+} Помогло ... Я думал что подобные объявления должны работать из файла проекта на всю программу и видимо при написании комментария к модулю случайно стер .
Но кроме того у меня в проекте есть не визуальный модуль где все работает без всякого {$Н+}
странно ... Может из за {$mode ..} который добавляется дизайнером форм ?
Ps
Из "рабочего кода" только S:=L.text; дальше отладка ...
PS PS
Кстати есть вопрос как можно посмотреть значения строчных переменных в виде текста а то все через #nnn (в ранних версиях было иначе) ? .
Alex2013
долгожитель
 
Сообщения: 3148
Зарегистрирован: 03.04.2013 11:59:44


Вернуться в Lazarus

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

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

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