Я считаю, что это ограничение функций операционной системы для обработки файлов INI; строка слишком длинная для этого.
Если вместо этого вы используете реализацию Delphi INI-файла, TMemIniFile
, она работает нормально. Только не забудьте в конце вызвать MyIni.UpdateFile
.
Да, это действительно ограничение в Windows API , как показано в следующем минимальном примере:
var
wini: TIniFile;
dini: TMemIniFile;
begin
wini := TIniFile.Create('C:\Users\Andreas Rejbrand\Desktop\winini.ini');
try
wini.WriteString('General', 'Text', StringOfChar('W', 10*1024*1024));
finally
wini.Free;
end;
dini := TMemIniFile.Create('C:\Users\Andreas Rejbrand\Desktop\pasini.ini');
try
dini.WriteString('General', 'Text', StringOfChar('D', 10*1024*1024));
dini.UpdateFile;
finally
dini.Free;
end;
(Напомним, что файлы INI изначально использовались для хранения небольших объемов данных конфигурации в 16-битной Windows эпохе.)
Также , Уве Раабе прав: вы должны сохранить строку Base64 как текст.