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 секунд:Переустановил всё по новой, почистил лишние файлы, проблема пропала. Походу глюк был...