delphi同步读取ini文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi同步读取ini文件相关的知识,希望对你有一定的参考价值。
现在我又3个同时运行的程序要访问A.ini,这三个程序都是做的死循环方式访问A.ini的,这时如果其中一个程序在访问A.ini时,另外一个程序再访问时就提示该文件不能被打开,这怎么解决呢?对了我打开文件采用的是filestream方式的filestream.create('a.ini',fmshareamp or fmreadwrite)
三个程序分别是在其他不同的机器上消息传送不能在我这里处理,也不能用数据库代替
试试过消息传送的方法,或者用数据库代替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文件的主要内容,如果未能解决你的问题,请参考以下文章