delphi同步读取ini文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi同步读取ini文件相关的知识,希望对你有一定的参考价值。

现在我又3个同时运行的程序要访问A.ini,这三个程序都是做的死循环方式访问A.ini的,这时如果其中一个程序在访问A.ini时,另外一个程序再访问时就提示该文件不能被打开,这怎么解决呢?对了我打开文件采用的是filestream方式的filestream.create('a.ini',fmshareamp or fmreadwrite)
三个程序分别是在其他不同的机器上消息传送不能在我这里处理,也不能用数据库代替

如果其中一个程序在访问A.ini时,另外一个程序再访问时只能等待了.

试试过消息传送的方法,或者用数据库代替INI文件
参考技术A 利用线程同步的方式,可以使用互斥体。

经验Delphi INI文件保存与读取

//需要引用IniFiles
uses
  system.IniFiles;

//保存INI配置文件
procedure TForm1.btnSaveClick(Sender: TObject);
var
  myIniFile: TIniFile;
  filepath: string;
begin
  filepath := ExtractFilePath(Application.Exename) + DBConfig.ini; //取得ini文件的路径
  myIniFile := TIniFile.Create(filepath);
  try
    myIniFile.WriteString(DBConf, Server, edtServer.Text);     //服务器地址
    myIniFile.WriteString(DBConf, Port, edtPort.Text);         //数据库端口
    myIniFile.WriteString(DBConf, Database, edtDatabase.Text); //数据库名
    myIniFile.WriteString(DBConf, User, edtUser.Text);         //登录用户名
    myIniFile.WriteString(DBConf, Password, edtPwd.Text);      //登录密码
    ShowMessage(保存成功);
  finally
    myIniFile.Free;
  end;
end;

 

//载入INI配置文件
procedure TForm1.btnLoadClick(Sender: TObject);
var
  myIniFile: TIniFile;
  filepath: string;
begin
  filepath := ExtractFilePath(Application.Exename) + DBConfig.ini; //取得ini文件的路径
  myIniFile := TIniFile.Create(filepath);
  try
    ListBox1.Clear;
    ListBox1.Items.Add(服务器: + myIniFile.ReadString(DBConf, Server, ‘‘));     //服务器地址
    ListBox1.Items.Add(端口: + myIniFile.ReadString(DBConf, Port, ‘‘));         //数据库端口
    ListBox1.Items.Add(数据库: + myIniFile.ReadString(DBConf, Database, ‘‘));   //数据库名
    ListBox1.Items.Add(用户名: + myIniFile.ReadString(DBConf, User, ‘‘));       //登录用户名
    ListBox1.Items.Add(密码: + myIniFile.ReadString(DBConf, Password, ‘‘));     //登录密码
  finally
    myIniFile.Free;
  end;
end;

技术图片

 

以上是关于delphi同步读取ini文件的主要内容,如果未能解决你的问题,请参考以下文章

在Delphi下,怎样在DLL里读取ini文件的内容

delphi中怎么读取ini文件第2行

delphi treeview控件读取INI文件。

delphi读取文本问题

Delphi INI文件保存与读取

经验Delphi INI文件保存与读取