我正在寻找一种读取.ini
文件的方法,以从中获取服务器主机信息。我让它加载静态数据,这一部分很容易,但我想扩展它,这样我就可以在.ini
中添加多个服务器,然后让我的程序按顺序添加它们。
[Data]
Server[1]=tcp/80.7.229.47/7799 // server one
Server[2]=udp/80.7.229.47/7780 // server two
Server[3]=tcp/80.7.229.47/7733 // server three
我希望能够添加多个服务器,这里是1到10个或其他什么,然后显示正确的服务器信息、协议、ip和端口。我已经通过拆分代码做到了这一点,但我不知道如何创建多个服务器。
我在想,也许for
循环可以从.ini
文件中获取服务器编号:
sData := IniFile.ReadString('Data', 'Server['+ IntToStr(i) +']', '<none>');
有人知道怎么做吗?
在条目名称上去掉方括号:
[Data]
Server1=tcp/80.7.229.47/7799
Server2=udp/80.7.229.47/7780
Server3=tcp/80.7.229.47/7733
sData := IniFile.ReadString('Data', 'Server' + IntToStr(i), '<none>');
要知道有多少服务器,您可以添加一个ServerCount
条目,例如:
[Data]
ServerCount=3
Server1=tcp/80.7.229.47/7799
Server2=udp/80.7.229.47/7780
Server3=tcp/80.7.229.47/7733
count := IniFile.ReadInteger('Data', 'ServerCount', 0);
for i := 1 to count do
begin
sData := IniFile.ReadString('Data', 'Server' + IntToStr(i), '<none>');
...
end;
或者,您可以使用IniFile.ReadSection()
将所有条目名称获取到本地TStringList
中,然后循环使用,例如:
names := TStringList.Create;
try
IniFile.ReadSection('Data', names);
for i := 0 to names.Count-1 do
begin
if StartsText('Server', names[i]) then
begin
sData := IniFile.ReadString('Data', names[i], '<none>');
...
end;
end;
finally
names.Free;
end;