Delphi 带有TStringList的OutOfMemoryError

Delphi 带有TStringList的OutOfMemoryError,delphi,out-of-memory,Delphi,Out Of Memory,我尝试使用streamreader来填充stringlist。 但我在填充它时出现了OutOfMemory错误。 我在网上搜索,但找到了关于解决方案的任何信息。 我还试图增加字符串列表的容量,但它并没有改变什么。 谢谢你的帮助 这是我的密码: list := TStringList.create; //list.Capacity := 100000000; Doesn't work Reader := TStreamReader.Create(filename, true); try lis

我尝试使用streamreader来填充stringlist。 但我在填充它时出现了OutOfMemory错误。 我在网上搜索,但找到了关于解决方案的任何信息。 我还试图增加字符串列表的容量,但它并没有改变什么。 谢谢你的帮助

这是我的密码:

list := TStringList.create;
//list.Capacity := 100000000; Doesn't work
Reader := TStreamReader.Create(filename, true);
try
  list.BeginUpdate;
  try
    list.Clear;
    while not Reader.EndOfStream do
    list.Add(Reader.ReadLine); // OutOfMemoryError
  finally
    list.EndUpdate;
  end;
finally
  Reader.Free;
end;

我忘了我的xml文件大小是250 mo。

是您的程序抛出了
OutofMemory
异常还是IDE?Delphi的哪个版本?您的应用程序使用了多少内存?你有多少钱?它与TStringList.LoadFromFile()一起工作吗?这一点都不奇怪。将一个250MB的文本文件加载到一个32位进程将是一件棘手的事情。XML文件很可能使用8位编码,当您转换为本机UTF-16字符串时,内存负载将增加到500MB。我们不知道你还想记住什么。解决方法不是一次性将其全部加载到内存中。另外,为什么要使用
TStringList
?为什么不是一个
IXMLDocument
,等等?