`
swary
  • 浏览: 938 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

ini 文件操作记要(1): 使用 TIniFile

阅读更多
转自:http://www.cnblogs.com/del/archive/2007/12/17/1003755.html
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.

分享到:
评论

相关推荐

    Delphi读写文本文件(通过Memo)和ini文件

    - 对于ini文件,如果要修改或删除键值,使用TIniFile的相应方法如EraseKey或WriteBool等。 - 当文件可能被其他进程使用时,考虑使用适当的文件共享模式。 通过以上方法,开发者可以在Delphi中方便地处理文本文件...

    delphi 对ini文件的操作

    在Delphi中,我们可以使用内置的TIniFile类来轻松地进行Ini文件的操作。下面将详细介绍如何在Delphi中对Ini文件进行读取、写入和修改等操作。 1. ** Ini文件的基本结构 ** Ini文件以纯文本形式存在,通常由三个...

    delphxe读取写Ini配置文件

    - Delphi XE提供了`TIniFile`组件,它是`Classes`单元的一部分,方便地实现了对INI文件的操作。`TIniFile`提供了读写INI文件的各种方法,如`ReadString`、`WriteString`、`ReadInteger`、`WriteInteger`等。 3. **...

    delphi7 ini文件的3种类型读写

    本篇文章将深入探讨在Delphi 7中处理INI文件的三种主要方法:TIniFile、WriteString和ReadString以及自定义的读写函数。 **1. TIniFile类** TIniFile是Delphi提供的一个内置组件,用于方便地读写INI文件。首先,你...

    保存DBGrid列状态到INI文件

    可以使用`TIniFile`类来操作INI文件,例如`WriteInteger`方法来写入列索引和宽度。 2. **恢复DBGrid列状态** - 应用程序启动时,或者用户选择恢复设置时,先从INI文件读取列的状态信息。使用`TIniFile`的`...

    读取ini配置文件创建delphi界面

    9. **优化性能**:虽然ini文件操作相对简单,但大量读写可能影响性能。可以考虑缓存已读取的配置,或者批量处理更改,以提高效率。 10. **版本控制与兼容性**:随着程序升级,ini文件的结构可能会变化。为保证兼容...

    xe10实现最近打开文件记录最终

    2. **配置文件**:存储最近打开文件记录通常会使用配置文件,如INI文件或XML文件,以便持久化数据。Delphi提供了`TIniFile`和`TXMLDocument`等类来方便地操作这些文件。 3. **菜单栏和上下文菜单**:在Windows应用...

    xe10实现最近打开文件记录

    这可以是XML文件、ini文件、注册表项或者更现代的数据库系统。Delphi提供了各种组件,如TIniFile、TRegistry,以及XML解析库,来方便地读写这些数据。 2. 文件打开事件:在程序中,你需要监听文件打开事件。通常,...

    在DELPHI中使程序具有记忆功能的源程序

    TIniFile用于处理.INI配置文件,而TRegistry则与Windows注册表交互。 1. **创建历史记录结构** 为了存储文件路径,我们可以定义一个记录结构,例如: ```delphi TRecentFile = record FileName: string; end; ...

    WakeUP_Poweroff.rar_WakeUP_Poweroff_delphi_delphi 托盘_网络唤醒

    4. INI文件操作:如何使用TIniFile读写配置文件,以实现定时关机等功能。 以上内容是根据“WakeUP_Poweroff.rar”压缩包中的资源,特别是“WakeUP_Poweroff”项目,对网络唤醒和Delphi编程实践的深入解析。对于希望...

    delphi 读取和写入text 新手入门Demo2.zip.zip

    `TIniFile`,用于读写INI配置文件;`TMemo`,可以用来显示和编辑文本文件内容等。 6. **Delphi的事件驱动编程**: 通常在Delphi中,我们会将文件读写操作封装在按钮点击事件或其他用户交互事件中,确保在正确的...

    监视一个进程,当它停止响应时结束任务然后重启,可以是多个目录下的相同的程序

    Delphi提供了`TIniFile`组件,可以方便地读写ini文件。例如: ```delphi uses IniFiles; var Ini: TIniFile; ProcessPath: string; begin Ini := TIniFile.Create('config.ini'); try // 读取进程路径 ...

    教师工作评价问卷系统

    这个系统利用了Delphi的强大功能,结合ini文件进行数据的读写操作,能够根据设定的题目数量自动创建和管理评价问卷。下面我们将深入探讨这个系统的组成部分和涉及的技术知识。 首先,Delphi是一个集成开发环境(IDE...

    WOAO.rar_Windows编程

    1. **文件操作**:在Delphi中,我们可以使用`TFile`和`TFileStream`等类来读写文件。例如,为了保存程序状态,我们需要将相关信息写入文件,然后在启动时读取这些信息。 2. **数据序列化**:为了将对象的状态转化...

    抽签程序源码delphi7

    INI文件是Windows操作系统中常见的配置文件格式,用于存储应用程序的设置和参数。在Delphi中,我们可以使用TIniFile类来轻松读写这些文件。在本例中,boult.ini.bak可能是原始配置文件的备份,通过源码我们可以学习...

    delphi文件夹及大小统计例子

    Delphi提供`TIniFile`类,方便读写INI格式的配置文件。 6. **项目管理**: - `main.ddp`和`.ddp`文件是Delphi项目文件,它们记录了项目的所有设置,包括使用的单元、编译选项、依赖项等。`.dpr`(项目源文件)会...

    delphi 初始化工具

    Delphi提供了一系列的文件操作函数和类,如`TIniFile`,可以方便地与配置文件交互。 3. **加密解密**:为了保护系统敏感信息,初始化工具可能包含了加密和解密算法。Delphi支持多种加密库,例如,可以使用内置的`...

    定时器自定义程序定时执行

    在Delphi中,可以使用TIniFile或TMemIniFile类来操作此类配置文件,这些类提供了读写配置文件的接口,如ReadString、WriteString等方法。 "timestart.exe"可能是由Delphi编译的主程序,它包含了定时器逻辑和执行...

    Oracle数据库备份.pdf

    读写配置文件的操作包括使用TIniFile对象来创建和初始化INI文件对象,并通过读写字符串的方式来实现对特定参数的读取和设置。 最后,文章还提到了调用Oracle导出程序的具体实现。在文章给出的代码片段中,作者详细...

    一个Delphi定时监控程序雏形

    6. **配置文件管理**:为了保存用户的设置,如定时时间、录像参数等,可以使用配置文件(如`.ini`文件)。Delphi提供了`TIniFile`类,可以方便地读写配置文件。 7. **错误处理和日志记录**:任何程序都可能出现异常...

Global site tag (gtag.js) - Google Analytics