zoukankan      html  css  js  c++  java
  • ini 文件操作记要(1): 使用 TIniFile

    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.
    
  • 相关阅读:
    Spire.Barcode好用的条码生在组件
    jQuery、js操作页面
    设计模式---简介
    设计模式---策略设计模式
    POI生成Excel文件:Excel,工具类,背景色,边框,居中,合并单元格
    设计模式---模板设计模式(java)
    maven打包不打lib目录里面的jar包解决办法
    MySQL库表操作
    Linux环境根据data目录文件恢复MySQL数据
    Linux 安装 mysql 与 mysql在Linux环境本地使用,但windows远程连不了问题处理
  • 原文地址:https://www.cnblogs.com/del/p/1003755.html
Copyright © 2011-2022 走看看