无法获取ini文件值

时间:2013-06-23 02:59:37

标签: delphi ini

我尝试从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 la base de datos es:
Algo anda mal ...

任何想法?。

1 个答案:

答案 0 :(得分:9)

您没有具体说明TIniFile.Create应该查找config.ini文件的位置,因此默认情况下它在Windows目录中查找并找不到它,并返回您说应该返回的默认值

您需要指定config.ini文件的位置。如果它与您的应用程序位于同一文件夹中,您可以使用ParamStr(0)这样的Application.ExeNameExtractFilePath获取路径(我添加了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;