我试着从ini文件中得到一个值。ini文件是:
[Database]
User=root
Pssword=lalalala
Server=localhost
Name=Prueba我的代码过程是:
procedure testManejoIniFile();
var
iniFile: TIniFile;
user: String;
begin
{Abro el archivo ini}
iniFile := TIniFile.Create('config.ini');
user := iniFile.ReadString('Database','User','Algo anda mal...');
iniFile.Free;
WriteLn(user);
end;调用该过程的cli程序是:
WriteLn('El usuario para la base de datos es:');
testManejoIniFile();
ReadLn;cli总是返回:
El usuario para base de datos es: 阿尔戈·达·马尔..。
有什么主意吗?
发布于 2013-06-23 04:44:00
您并没有具体说明TIniFile.Create应该在哪里查找config.ini文件,因此它默认情况下查找的是config.ini目录,而不是找到它,而是返回您说它应该返回的默认值。
您需要指定config.ini文件的位置。如果它与应用程序位于同一个文件夹中,则可以使用类似于这样的ParamStr(0)或Application.ExeName从ExtractFilePath获得路径(我添加了一个try..finally来防范异常,并移动了WriteLn,以便只在ReadString成功的情况下调用):
procedure testManejoIniFile();
var
iniFile: TIniFile;
user: String;
Path: string;
begin
{Abro el archivo ini}
Path := ExtractFilePath(ParamStr(0)); // Or Application.ExeName
iniFile := TIniFile.Create(Path + 'config.ini');
try
user := iniFile.ReadString('Database','User','Algo anda mal...');
WriteLn(user);
finally
iniFile.Free;
end;
end;https://stackoverflow.com/questions/17257350
复制相似问题