关于操作ini文件的问题

luosha80 2003-04-01 11:59:00
请帮着看看这段代码!我对如何操作ini文件一点不清楚,在一个实例的书中有这么段代码,但是却做不出书上的效果。请高手指点一下,告诉我下面几个关于操ini文件的语句怎么用??或者能提供相关这方面的资料也行,我的QQ(42189737),谢谢谢谢!

unit Student_frm;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ToolWin, ComCtrls, Buttons, Grids, DBGrids, DB, DBTables,
ExtCtrls, DBCtrls, StdCtrls,IniFiles;

type
TFrmStudent = class(TForm)
CoolBar1: TCoolBar;
sbADD: TSpeedButton;
sbQuery: TSpeedButton;
sbChart: TSpeedButton;
sbOption: TSpeedButton;
sbAbout: TSpeedButton;
sbClose: TSpeedButton;
DBGrid1: TDBGrid;
Table1: TTable;
dsTable: TDataSource;
DBNavigator1: TDBNavigator;
btnState: TButton;
Label1: TLabel;
edtStuno: TEdit;
Query1: TQuery;
dsQuery: TDataSource;
procedure FormCreate(Sender: TObject);
procedure btnStateClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
FrmStudent: TFrmStudent;
IniFile:TIniFile; //TIniFile类型变量(需引入IniFiles单元),用于操作ini文件
FieldName:string; //保存字段名称
i,j:integer;
FieldVisible:Boolean; //标识字段在网格中是否可见
SQLCond:string; //查询条件
IniFileName:string;
AFieldCound:Integer;
implementation

{$R *.dfm}

procedure TFrmStudent.FormCreate(Sender: TObject);
begin
SQLCond :=''; //初始化查询条件
//创建由全局的Ini文件名变量IniFileName指定的IniFile对象
IniFile:=TIniFile.Create(IniFileName);
//读入试题个数,该值保存在Ini文件的DBStructure节中
AFieldCound:=IniFile.ReadInteger('DBStructure','试题数',1);
for i:=0 to Query1.FieldCount-1 do
begin
FieldName:=Query1.Fields[i].FieldName; //取出字段名
//对于索引大于试题总数的字段则不网格中不显示
//其中AFieldCount+3原因是在“第一题”字段前还有三个字段
if i>AFieldCound+3 then
FieldVisible:=false
else //否则从配置文件中取出该字段的可见状态
FieldVisible:=Inifile.ReadBool('Display',FieldName,False);
//设定网格中第i列的可见性
DbGrid1.Columns[i].Visible:=FieldVisible;
end;
IniFile.Free;
end;
...全文
97 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
luosha80 2003-04-03
  • 打赏
  • 举报
回复
注释是说得很清楚,不是在相应的ini文件中是不是应该有数据呢,那么数据的格式应该怎么写呢!
mengxianbao1521 2003-04-03
  • 打赏
  • 举报
回复
IniFile.ReadInteger('DBStructure','试题数',1);
如何没有数据默认为1。
为例Ini文件中是这个样子的

【DBStructure】
试题数=2
mypiip 2003-04-03
  • 打赏
  • 举报
回复
ini文件里只有integer,string,boolean类型的值啊,格式?都是一个格式!
hjb8000 2003-04-03
  • 打赏
  • 举报
回复
自己写一个INI读写数据的例子看看对应的INI文件的内容不就知道它的数据格式了!!
如果没有相应的INI文件,在读的时候就使用缺省值的!!
emeng 2003-04-02
  • 打赏
  • 举报
回复
不太懂你的意思
//创建由全局的Ini文件名变量IniFileName指定的IniFile对象
IniFile:=TIniFile.Create(IniFileName);
//读入试题个数,该值保存在Ini文件的DBStructure节中
AFieldCound:=IniFile.ReadInteger('DBStructure','试题数',1);
注释说得挺清楚得。
luosha80 2003-04-02
  • 打赏
  • 举报
回复
我主要是对ini文件中是不是应该有数据及相应的数据格式不是太清楚,如果需要数据请告诉我应该如何写!谢谢了!
纯c读写ini配置文件 用c/c++读写ini配置文件有不少第三方的开源库,如iniparser、libini、rwini、UltraLightINIParser等,但都不理想,往往代码较大、功能较弱、 接口使用不方便。尤其在大小写处理、前后空格、各种注释、跨平台换行符支持、带引号字符串处理、无section操作、原格式保持等方面存在问题。 现将本人精心制作的ini读写程序源码奉献给大家,纯c编写,简洁好用。支持windows和linux。 主要特点: 1、支持;和#注释符号,支持行尾注释。 2、支持带引号'或"成对匹配的字符串,提取时自动去引号。引号中可带其它引号或;#注释符。 3、支持无section或空section(名称为空)。 4、支持10、16、8进制数,0x开头为16进制数,0开头为8进制。 5、支持section、key或=号前后带空格。 6、支持\n、\r、\r\n或\n\r换行格式。 7、不区分section、key大小写,但写入时以新串为准,并保持其大小写。 8、新增数据时,若section存在则在该节最后一个有效数据后添加,否则在文件尾部添加。 9、支持指定key所在整行删除,即删除该键值,包括注释。 10、可自动跳过格式错误行,修改时仍然保留。 11、修改时保留原注释:包括整行注释、行尾注释(包括前面空格)。 12、修改时保留原空行。以上三点主要是尽量保留原格式。 不足之处: 1、不支持单key多value(逗号分割),只能一次性提取后自行处理。 2、不支持同名重复section和key。(重复section可视为错误,重复key则可能造成分歧) 3、不能提取所有section或key名称。 使用只需两个文件inirw.h、inirw.c,另有测试程序和工程文件,支持windows和linux。

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧