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;
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.

ini 文件操作记要(2): 使用 TMemIniFile
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
private
    { Private declarations }
public
    { Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses
IniFiles;
var
ini: TMemIniFile;
procedure TForm1.FormCreate(Sender: TObject);
begin
ini := TMemIniFile.Create('c:\temp\test.ini');
end;
//写入
procedure TForm1.Button1Click(Sender: TObject);
begin
ini.WriteString('AAA','A1','AAA-String');
//其他也都和 IniFile 一样使用
// ini.WriteInteger();
// ini.WriteBool();
// ini.WriteDate();
// ini.WriteTime();
// ini.WriteDateTime();
// ini.WriteFloat();
// ini.WriteBinaryStream();
//ini.UpdateFile; //因为 TMemIniFile 是内存操作, 这样才能保存到文件
end;
//读出及其他
procedure TForm1.Button2Click(Sender: TObject);
var
s: string;
begin
s := ini.ReadString('AAA','A1','默认值');
ShowMessage(s); //AAA-String
//其他读入命令也都和 IniFile 一样使用
// ini.ReadInteger();
// ini.ReadBool();
// ini.ReadDate();
// ini.ReadTime();
// ini.ReadDateTime();
// ini.ReadFloat();
// ini.ReadBinaryStream();
//还有四个常用方法也是和 IniFile 一样的
//ini.DeleteKey();
//ini.EraseSection();
//ini.ReadSection();
//ini.ReadSections();
//另外有三个 IniFile 中没有的方法也容易使用
//ini.GetStrings(List: TStrings);
//ini.SetStrings(List: TStrings);
//ini.Rename(const FileName: string; Reload: Boolean);
//其中 Rename 中的第二个 Boolean 参数如果为 True 将会刷新读入
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
ini.Free;
end;
end.

delphi对ini文件的操作(转载 万一)的更多相关文章

  1. Delphi对ini文件的操作

    一.INI文件的结构:; 注释[小节名]关键字=值 INI文件允许有多个小节,每个小节又允许有多个关键字, “=”后面是该关键字的值. 值的类型有三种:字符串.整型数值和布尔值.其中字符串存贮在INI ...

  2. Delphi 对ini文件的操作

    界面如图: 代码如下: unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Vari ...

  3. Delphi关于记录文件的操作

    http://www.cnblogs.com/railgunman/archive/2010/08/16/1801004.html Delphi关于记录文件的操作   本例子几个变量的说明TFileR ...

  4. delphi中ini 文件操作记要(1): 使用 TIniFile

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  5. C#实现.ini文件读写操作

    1.ini文件是什么?        见百度百科:https://baike.baidu.com/item/ini%E6%96%87%E4%BB%B6/9718973?fr=aladdin 2.C#语 ...

  6. VC++ 实现INI文件读写操作

    转载:https://blog.csdn.net/fan380485838/article/details/73188420 在实际项目开发中,会用ini配置文件,在此总结一下对ini读写操作 一:读 ...

  7. delphi读取ini文件

    ini文件在系统配置及应用程序参数保存与设置方面,具有很重要的作用,所以可视化的编程一族,如vb.vc.vfp.delphi等都提供了读写ini文件的方法,其中delphi中操作ini文件,最为简洁, ...

  8. delphi 基础之三 文件流操作

    文件流操作 Delphi操作流文件:什么是流?流,简单来说就是建立在面向对象基础上的一种抽象的处理数据的工具.在流中,定义了一些处理数据的基本操作,如读取数据,写入数据等,程序员是对流进行所有操作的, ...

  9. Delphi 实现Ini文件参数与TEdit和TCheckBox绑定(TSimpleParam)

    在实际工作中,常遇到对Ini参数的修改,显示与保存问题. 如果手工写代码,会有很大的工作量. 本例把ini文件的参数与控件绑定起来,以达到方便使用的目的. 本例程共有2个单元 uSimpleParam ...

随机推荐

  1. QT程序库

      实际上,QT不仅仅是一个巨大的程序库,而是7个程序库,还包括许多使用工具,qmake是其中的一个.如今,术语GUI工具包代表的东西的用途不再仅仅是系统提供的那么一个小部分(GUI界面).尤其是QT ...

  2. 使用 Java 配置进行 Spring bean 管理--转

    概述 众所周知,Spring 框架是控制反转 (IOC) 或依赖性注入 (DI) 模式的推动因素,而这种推动是通过基于容器的配置实现的.过去,Spring 允许开发人员使用基于 XML 的配置,通过利 ...

  3. Android开发艺术探索》读书笔记 (5) 第5章 理解RemoteViews

    第5章 理解RemoteViews 5.1 RemoteViews的应用 (1)RemoteViews表示的是一个view结构,它可以在其他进程中显示.由于它在其他进程中显示,为了能够更新它的界面,R ...

  4. MIUI6&7桌面角标开源代码简介

    MIUI6&7桌面角标开源代码简介 MIUI6&7上重新设计了桌面app图标的角标显示,基本规则如下: 一.基本介绍 1.默认的情况 当app 向通知栏发送了一条通知 (通知不带进度条 ...

  5. Java基础知识强化之集合框架笔记08:Collection集合自定义对象并遍历案例(使用迭代器)

    1. Collection集合自定义对象并遍历案例(使用迭代器) (1)首先定义一个Student.java,如下: package com.himi.collectionIterator; publ ...

  6. codevs 1200 同余方程 (Extend_Eulid)

    /* 扩展欧几里得 ax%b==1 -> ax-by==1 求不定方程的一组解 使x为最小正整数解 */ #include<iostream> #include<cstdio& ...

  7. webconfig的设置节点几个说明

    有助于深入理解webconfig <?xml version="1.0" encoding="utf-8" ?> <configuration ...

  8. 使用Maven构建javaWeb项目时,启动tomcat出错:严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.conte

    在初学使用maven构建javaWeb的项目的时候,启动tomcat加载时,总是提示如下错误,辛苦一番终于找到解决办法. 严重: Error configuring application liste ...

  9. EF学习系列

    http://www.cnblogs.com/Wayou/archive/2012/09/20/EF_CodeFirst.html http://kb.cnblogs.com/zt/ef/#

  10. LoadRunner安装停在注册界面安装失败----解决办法之一

    今天下了个LoadRunner11.5玩玩,准备测手头上准备发布的项目性能,结果安装的时候,报错“Error Creating system registry entry”,在51testing搜索各 ...