Delphi 从Stringlist读取为从文件读取

Delphi 从Stringlist读取为从文件读取,delphi,Delphi,我有一个从文件中读取数据的函数,如: procedure ReadDatafromFile (const aFilename : String; aparameterList : TList ); var aIniFile : TInifile; begin aIniFile :=TInifile.create(aFilename); data1 := ReadInteger(......); ..... .... end; 现在,该文件的内容以S

我有一个从文件中读取数据的函数,如:

procedure ReadDatafromFile (const aFilename : String; aparameterList : TList );
var  aIniFile : TInifile;
 begin
     aIniFile :=TInifile.create(aFilename);
    data1 :=  ReadInteger(......);
    .....
     ....
 end; 
现在,该文件的内容以StringList的形式存在于程序中的不同位置。我希望重用现有代码,并以如下方式对其进行编程:

...
MydataStringList.SaveToFile('c:\temp\tempfile.txt');
ReadDatafromFile( MydataStringList, myparameterList);
... 
是否有任何智能解决方案可以重用现有函数并创建一个重载版本,该版本接受StringList作为参数?

这是可行的:

procedure ReadDataFromStrings(aFileStrings: TStrings; aParameterList: TList);
  overload;
begin
  if aParameterList <> nil then
    // Add aFileStrings to aParameterList
end;

procedure ReadDataFromFile(const aFileName: TFileName; aParameterList: TList);
  overload;
var
  Strings: TStringList;
begin
  Strings := TStringList.Create;
  try
    Strings.LoadFromFile(aFileName);
    ReadDataFromStrings(Strings, aParameterList);
  finally
    Strings.Free;
  end;
end;
过程ReadDataFromStrings(aFileStrings:TStrings;apaParameterList:TList);
超载;
开始
如果参数列表为零,则
//将文件字符串添加到参数列表
结束;
过程ReadDataFromFile(const-aFileName:TFileName;apaParameterList:TList);
超载;
变量
字符串:TStringList;
开始
字符串:=TStringList.Create;
尝试
Strings.LoadFromFile(aFileName);
ReadDataFromStrings(字符串、参数列表);
最后
字符串。免费;
结束;
结束;

您也可以使用已经存在的全局
MydataStringList
变量,而不是创建这个本地
Strings
变量,以适合您的需要为准。

+1(并删除我的答案)。你抓住了“过载”部分并回答了它;我错过了。很好。我改了Q,希望现在更清楚了。我想我必须做一些事情,比如用我的Stringlist创建一个虚拟文件。上面建议的解决方案将迫使我加倍代码,从字符串列表中读取,从file@Franz这就是你问题的答案!问题不是
如何读取文件到字符串列表
,而是
是否可以直接从InFile中的stringlist加载数据,或者使用InFile接口从stringlist读取数据
您的编辑使这个问题变得非常不清楚。你刚才说的是StringList,现在说的是InFile!INI文件与StringList的关系如何?您是否使用
aIniFile.GetStrings(MydataStringList)
?那么,新例程(带有StringList参数)应该如何将StringList内容解析为aParameterList呢?甚至需要从文件中解析吗?为什么不直接存储InFile而不是StringList?有一种像TMemIniFile这样的东西你知道吗?我们需要看到更多的代码,或者您需要更清楚地了解所有内容。显然,您似乎有从InFile解析到StringList的代码(现在该文件的内容作为StringList存在于我的程序中的不同位置)。那么,为什么您需要代码来从IniFile解析到aParemeterList呢?或者更好,就像上面的意思:为什么要使用StringList?存储该文件。