我有一个函数可以从如下文件中读取数据:
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作为参数?
答案 0 :(得分:3)
这是可行的:
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;
除了创建此本地Strings
变量外,您还可以使用已经存在的全局MydataStringList
变量,以满足您的需求。