博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ini 文件操作记要(1): 使用 TIniFile
阅读量:6454 次
发布时间:2019-06-23

本文共 4898 字,大约阅读时间需要 16 分钟。

unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
type
  TForm1 =
class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
   
procedure FormCreate(Sender: TObject);
   
procedure FormDestroy(Sender: TObject);
   
procedure Button1Click(Sender: TObject);
   
procedure Button2Click(Sender: TObject);
   
procedure Button3Click(Sender: TObject);
   
procedure Button4Click(Sender: TObject);
   
procedure Button5Click(Sender: TObject);
   
procedure Button6Click(Sender: TObject);
   
procedure Button7Click(Sender: TObject);
 
private
   
{ Private declarations }
 
public
   
{ Public declarations }
 
end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
uses IniFiles; 
{uses 包含 TIniFile 的单元}
var
  ini: TIniFile;
  path:
string;        
{ini 文件路径}
  Section,Key:
string
{分别表示 ini 文件的小节与关键字}
{
  ini文件结构:
  ;注释
  [小节名]
  关键字=值
  INI文件支持: string、integer、boolean、Date、Time、DateTime、Double 与二进制类型
  string 值没有引号
  boolean 的真假用 1、0 表示
}
procedure TForm1.FormCreate(Sender: TObject);
begin
  path := ChangeFileExt(ParamStr(
0),
'.ini');
  ini := TIniFile.Create(path); 
{ini 对象建立需要文件路径参数, 如果缺少路径会默认Windows目录}
end;
//写入 ini 文件:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Section :=
'AAA';
  Key :=
'AString';
  ini.WriteString(Section,Key,
'AAA-String');
  Key :=
'AInteger';
  ini.WriteInteger(Section,Key,
111);
  Key :=
'ABoolean';
  ini.WriteBool(Section,Key,True);
  Key :=
'ADate';
  ini.WriteDate(Section,Key,Now);
  Key :=
'ATime';
  ini.WriteTime(Section,Key,Now);
  Key :=
'ADateTime';
  ini.WriteDateTime(Section,Key,Now);
  Key :=
'ADouble';
  ini.WriteFloat(Section,Key,Pi);
  Section :=
'BBB';
  Key :=
'BString';
  ini.WriteString(Section,Key,
'BBB-String');
  Key :=
'BInteger';
  ini.WriteInteger(Section,Key,
222);
  Key :=
'BBoolean';
  ini.WriteBool(Section,Key,True);
  Key :=
'BDate';
  ini.WriteDate(Section,Key,Now);
  Key :=
'BTime';
  ini.WriteTime(Section,Key,Now);
  Key :=
'BDateTime';
  ini.WriteDateTime(Section,Key,Now);
  Key :=
'BDouble';
  ini.WriteFloat(Section,Key,Pi);
  Section :=
'CCC';
  Key :=
'CString';
  ini.WriteString(Section,Key,
'CCC-String');
  Key :=
'CInteger';
  ini.WriteInteger(Section,Key,
333);
  Key :=
'CBoolean';
  ini.WriteBool(Section,Key,False);
  Key :=
'CDate';
  ini.WriteDate(Section,Key,Now);
  Key :=
'CTime';
  ini.WriteTime(Section,Key,Now);
  Key :=
'CDateTime';
  ini.WriteDateTime(Section,Key,Now);
  Key :=
'CDouble';
  ini.WriteFloat(Section,Key,Pi);
{写入结果:
  [AAA]
  AString=AAA-String
  AInteger=111
  ABoolean=1
  ADate=2007-12-17
  ATime=22:06:23
  ADateTime=2007-12-17 22:06:23
  ADouble=3.14159265358979
  [BBB]
  BString=BBB-String
  BInteger=222
  BBoolean=1
  BDate=2007-12-17
  BTime=22:06:23
  BDateTime=2007-12-17 22:06:23
  BDouble=3.14159265358979
  [CCC]
  CString=CCC-String
  CInteger=333
  CBoolean=0
  CDate=2007-12-17
  CTime=22:06:23
  CDateTime=2007-12-17 22:06:23
  CDouble=3.14159265358979
}
end;
//读取 ini 文件:
procedure TForm1.Button2Click(Sender: TObject);
var
  s:
string;
  i: Integer;
  b: Boolean;
  f: Double;
  d: TDate;
  t: TTime;
  dt: TDateTime;
begin
  s := ini.ReadString(
'BBB',
'BString',
''); 
{最后一个参数是默认值}
  i := ini.ReadInteger(
'BBB',
'BInteger',
0);
  b := ini.ReadBool(
'BBB',
'BBoolean',False);
  f := ini.ReadFloat(
'BBB',
'BDouble',
0);
  d := ini.ReadDate(
'BBB',
'BDate',Now);
  t := ini.ReadTime(
'BBB',
'BTime',Now);
  dt := ini.ReadDateTime(
'BBB',
'BDateTime',Now);
  ShowMessage(s);                
{BBB-String}
  ShowMessage(IntToStr(i));      
{222}
  ShowMessage(BoolToStr(b));     
{-1(True)}
  ShowMessage(FloatToStr(f));    
{3.14159265358979}
  ShowMessage(DateToStr(d));     
{2007-12-17}
  ShowMessage(TimeToStr(t));     
{22:06:23}
  ShowMessage(DateTimeToStr(dt));
{2007-12-17 22:06:23}
end;
//读入所有小节名到 TStrings:
procedure TForm1.Button3Click(Sender: TObject);
var
  List: TStrings;
begin
  List := TStringList.Create;
  List.LoadFromFile(Path);
  ini.ReadSections(List);
  ShowMessage(List.Text);
 
{
    AAA
    BBB
    CCC
  }
  List.Free;
end;
//读入指定小节的所有关键字到 TStrings:
procedure TForm1.Button4Click(Sender: TObject);
var
  List: TStrings;
begin
  List := TStringList.Create;
  ini.ReadSection(
'AAA',List);
  ShowMessage(List.Text);
 
{
    AString
    AInteger
    ABoolean
    ADate
    ATime
    ADateTime
    ADouble
  }
  List.Free;
end;
//读入指定小节的所有关键字与值到 TStrings:
procedure TForm1.Button5Click(Sender: TObject);
var
  List: TStrings;
begin
  List := TStringList.Create;
  ini.ReadSectionValues(
'BBB',List);
  ShowMessage(List.Text);
 
{
    BString=BBB-String
    BInteger=222
    BBoolean=1
    BDate=2007-12-17
    BTime=22:06:23
    BDateTime=2007-12-17 22:06:23
    BDouble=3.14159265358979
  }
  List.Free;
end;
//删除与添加
procedure TForm1.Button6Click(Sender: TObject);
begin
  ini.DeleteKey(
'BBB',
'BString'); 
{删除关键字}
  ini.EraseSection(
'CCC');        
{删除小节}
//  ini.UpdateFile;                {保存到文件}
{添加小节与关键字或修改值, 直接写入即可}
end;
//其他功能
procedure TForm1.Button7Click(Sender: TObject);
var
  b: Boolean;
  s:
string;
begin
  b := ini.SectionExists(
'DDD');        
{判断某个小节是否存在}
  b := ini.ValueExists(
'AAA',
'AString');
{判断某个关键字的值是否存在}
  s := ini.FileName;                    
{获取文件名}
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
  ini.Free;
end;
end.

转载地址:http://apfzo.baihongyu.com/

你可能感兴趣的文章
Win8 使用经验之飞鸽传书
查看>>
How to set up PyQt4 for python 3.2 in Ubuntu11.10
查看>>
P1047 校门外的树
查看>>
poj1472[模拟题]
查看>>
c# 两个数组比较,将重复部分去掉,返回不重复部分
查看>>
支持IE6的树形节结构TreeTable实际应用案例
查看>>
DFA和NFA的区别
查看>>
并发检测主机ip存活脚本
查看>>
Leetcode 118 杨辉三角
查看>>
VBA中级班课时1小结
查看>>
PLS-00371: 'PAGEQUERY_PACK.CURSORTYPE' 最多允许有一个声明
查看>>
upc组队赛5 Ingenious Lottery Tickets【排序】
查看>>
HTML初级课程 (自学可懂)
查看>>
Error in deleting blocks.
查看>>
Linux 用户和用户组的命令
查看>>
操作系统 实验三、进程调度模拟程序
查看>>
NOIP2000提高组 单词接龙
查看>>
CSS常见的浏览器前缀
查看>>
【转】Eclipse中 代码提示时间修改和悬停(Hover)提示时间修改
查看>>
Tomcat log4j配置
查看>>