读取INI文件, 在线等, 马上给分 ( 积分: 50 )

  • 主题发起人 主题发起人 joshua_jia
  • 开始时间 开始时间
J

joshua_jia

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样将INI文件中的以下数据取出,我用的是SPCOM通讯, 写入的是端口参数:想取出来, <br>[Config]<br>ComPort=COM1<br>BaudRate=1200<br>Byte=_7<br>Parity=ODD<br>StopBit=_1<br><br>后面三个在取的时候报错,因为类型不对 ,,请教了
 
怎样将INI文件中的以下数据取出,我用的是SPCOM通讯, 写入的是端口参数:想取出来, <br>[Config]<br>ComPort=COM1<br>BaudRate=1200<br>Byte=_7<br>Parity=ODD<br>StopBit=_1<br><br>后面三个在取的时候报错,因为类型不对 ,,请教了
 
var<br>strResult:pchar;<br>begin<br>GetPrivateProfileString(<br>'Config', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // []中标题的名字<br>'Byte', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// =号前的名字<br>'NIL', &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // 如果没有找到字符串时,返回的默认值<br>strResult, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //存放取得字符<br>100, &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //取得字符的允许最大长度<br>目录+'config.ini' &nbsp; &nbsp; &nbsp;// 调用的文件名<br>);<br>edit1.text:=strResult; &nbsp; &nbsp; //显示取得字符串
 
后面3个是什么类型的数据?
 
按ReadString读出来再自己处理<br>这样应该可以,就是麻烦点
 
var<br> &nbsp;FComPort, FBaudRate, FByte, FParity, FStopBit: string;<br>begin<br> &nbsp;if FileExists('ini/ini.ini') then<br> &nbsp;with tinifile.Create('ini/ini.ini')do<br> &nbsp;try<br> &nbsp; &nbsp;FComPort := ReadString('Config', 'ComPort', '');<br> &nbsp; &nbsp;FBaudRate := ReadString('Config', 'BaudRate', '');<br> &nbsp; &nbsp;FByte := ReadString('Config', 'Byte', '');<br> &nbsp; &nbsp;FParity := ReadString('Config', 'Parity', '');<br> &nbsp; &nbsp;FStopBit := ReadString('Config', 'StopBit', '');<br> &nbsp;finally<br> &nbsp; &nbsp;free;<br> &nbsp;end;<br>end;
 
用TIniFile类,读取ini文件<br>var <br> &nbsp;f:TIniFile;<br>begin<br> &nbsp;f := TIniFile.create('文件名');<br> &nbsp;f.ReadString('Config','ComPort','com1');<br>....
 
对,用TIniFile
 
用TIniFile(要uses Inifiles啊),后面三个参数就用楼上的哥们告诉你的字符串,然后你自己判断处理转换就可以了,别告诉我你也不知道如何处理啊.
 
用readstring和readinteger都不行的,所以才问, &nbsp; 类型不匹配.
 
Byte=_7<br>有个下划线,你读出后把_去掉再转换成INT不就成了?<br>FByte := Round(copy(ReadString('Config', 'Byte', ''),2,2));
 
你为什么不去看一下,CNPACK的源码包中有一个根据SPCOMM来写的CRC232,其中就包括了将串口的设置全存入INI文件中的属性了。
 
还马上给分呢?多不诚实啊!类型不对就用字符串啊,不行再转换吗!
 
不需要 TIniFile 的,直接使用 GetPrivateProfileString API 就可以了!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
775
import
I
后退
顶部