zub писал(а):Это бага в программе. Дебажиш, выясняеш где падает и почему. Емнип чтоб подебажить внутри TStringList - надо собрать fpc с отладочной инфой.
хрустальные шары мне шепчут что ты гдето установил для своего TSTrings Encoding или DefaultEncoding, потом убил их и пытаешся читатьписать убитым EncodingDefaultEncoding
Добавлено спустя 4 минуты 19 секунд:
>>Мне надо принять какое то решение, то ли на предыдущем Lazarus и FPC оставаться, то ли как то бороться с этим.
Что тут принимать, конечно переходишь на актуальную версию, правишь вскрывшиеся баги и адаптируешь под новые реалии
Проблема в DefaultEncoding, я его точно ни где не убивал, вообще только сейчас узнал что такое свойство появилось. Оно почему то = nil, если его указать явно, все работает. По какой то причине оно изначально не создается именно в большом старом проекте. Все вызовы TSTring.SaveToStream, TStrings.LoadFromStream, везде, включая все сторонние компоненты приводят к AV.
- Код: Выделить всё
var
SL: TStringList;
F: TFileStream;
begin
SL := TStringList.Create;
if SL.DefaultEncoding = nil then
begin
ShowMessage('nil');
SL.DefaultEncoding = SL.Encoding.UTF8;
end;
F := TFileStream.Create(GetUserDir + DirectorySeparator + 'test.txt', fmCreate);
try
SL.Add('ыаыаыа);
SL.SaveToStream(F);
finally
SL.Free;
F.Free;
end;
end
Добавлено спустя 1 час 57 минут 19 секунд:Переустановил всё по новой, почистил лишние файлы, проблема пропала. Походу глюк был...