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