Вроде разобрался, но при чтении все время вылетает Stream Read Error. При пошаговом выполнении я заметил, что считанная длина строки обычно по модулю больше миллиона...
Что у меня не так?
Код:
//сохранение
Str := Test.TestSubject;
StrLen := Length(Str);
Stream.WriteBuffer(StrLen, SizeOf(Integer));
Stream.WriteBuffer(Str[1], StrLen);
...
//загрузка
Stream.ReadBuffer(StrLen, SizeOf(Integer));//StrLen здесь равен -398.....
SetLength(Test.TestSubject, StrLen);
Stream.ReadBuffer(Test.TestSubject[1], StrLen);//здесь вылетает ошибка
...