zoukankan      html  css  js  c++  java
  • ini 文件操作记要: 使用 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;
      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.
  • 相关阅读:
    Java实现 LeetCode 56 合并区间
    JQuery实现对html结点的操作(创建,添加,删除)
    JQuery实现对html结点的操作(创建,添加,删除)
    JQuery实现对html结点的操作(创建,添加,删除)
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 55 跳跃游戏
    Java实现 LeetCode 54 螺旋矩阵
    Java实现 LeetCode 54 螺旋矩阵
    Java实现 LeetCode 54 螺旋矩阵
  • 原文地址:https://www.cnblogs.com/LceMeaning/p/2853045.html
Copyright © 2011-2022 走看看