一、读INI文件示例
procedure TForm1.FormCreate(Sender: TObject);
Var
MyIni :Tinifile;
glAppPath :string;
begin
glAppPath := ExtractFilePath(Application.ExeName);//获取当前运行程序的路径
MyIni := Tinifile.Create(glAppPath + 'myini.ini');
Edit1.Text := MyIni.ReadString('Setting','名称','');
Edit2.Text := MyIni.ReadString('Setting','地址','');
Edit3.Text := MyIni.ReadString('Setting','电话','');
MyIni.Free;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
Form2 := TForm2.Create(self);
Form2.ShowModal;
end;
procedure TForm1.Button1Click(Sender: TObject);
Var
MyIni :Tinifile;
glAppPath, path :string;
begin
glAppPath := ExtractFilePath(Application.ExeName);
MyIni := Tinifile.Create(glAppPath + 'myini.ini');
Edit1.Text := MyIni.ReadString('Setting','名称','');
Edit2.Text := MyIni.ReadString('Setting','地址','');
Edit3.Text := MyIni.ReadString('Setting','电话','');
MyIni.Free;
Path := ExtractFilePath(Application.ExeName);
end;
end.

二、写ini文件示例

procedure TForm2.Button1Click(Sender: TObject);
Var
MyIni :Tinifile;
glAppPath :string;
begin
glAppPath := ExtractFilePath(Application.ExeName);
MyIni := Tinifile.Create(glAppPath + 'myini.ini');
MyIni.WriteString('Setting','名称',Edit1.text);
MyIni.WriteString('Setting','地址',Edit2.text);
MyIni.WriteString('Setting','电话',Edit3.text);
MyIni.Free;
Close;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
close;
end;
end.
 
注意事项:
1.读写INI文件时要引用Inifiles单元
2. glAppPath := ExtractFilePath(Application.ExeName);获取当前运行程序的路径,记得要设置一下程序的输出路径才行否则程序路径是安装delphi的路径,设置方法:project->options->Directories/Coditionals的属性设为
Output directory :E:\prj\ini文件(即程序保存路径)
Unit output directory :E:\prj\ini文件(即程序保存路径)
MyIni := Tinifile.Create(glAppPath + 'myini.ini');
 
3 ,myinin.ini结构如下 
[Setting] (属性组名)
名称(属性名)=123(值)
地址=456
电话=789
 
4.

利用Windows API函数WritePrivateProfileString 和GetPrivateProfileString可对.INI文件进行读写操作。其实,对.INI文件的读写完全可以利用Delphi的内置函数来实现。下面就介绍一些对.INI文件读写时相关的类及其属性方法。

1、TIniFile对象

以Delphi中,定义了一个TIniFile对象,将.INI文件封装在其中,并提供一些方法,专门用来对INI文件进行读写操作。如果在程序中要用到TIniFile类或其方法属性,就必须在程序单元的uses语句中手工加入对IniFiles单元的引用。

2、Create方法

该方法用来创建一个处理INI文件的TIniFile类型实例。

方法声明:constructor Create(const FileName:string);

参数说明:FileName指明待创建的INI文件的文件名;

注释:在使用TIniFile对象之前,必须先用此方法创建一个INI文件的实例。FileName中可以包含路径名,缺省时为Windows所在目录(一般就是C:\windows,对于Windows NT来说,则一般是c:\winnt)。用Create方法创建的实例,在使用完之后,调用Free方法释放内存。

3、ReadSection方法

该方法从INI文件中读出指定段的所有子键名,并存入Strings参数指定的字符串列表对象中。

方法声明:procedure ReadSection(const Section:string; Strings:TStrings);

参数说明:Section指明要读取段的段名;

Strings指明存放子键名的字符串列表;

注释:ReadSection方法仅读入指定段的所有子键名,但不读入子键的值。

4、ReadSections方法

该方法从INI文件中读取所有段名,并存入Strings参数指定的字符中列表中。

方法声明:procedure ReadSections(Strings:TStrings);

参数说明:Strings参数指明存放段名的字符串列表;

注释:ReadSections方法将INI文件中所有段的段名读出,存入一指定的字符串列表中,此字符串列表可以直接使用某个列表框的Items属性。

5、ReadSectionValues方法

该方法从INI文件中读入指定段的所有子键名及其键值,并存入Strings参数指定的字符串列表中。

方法声明:procedure ReadSectionValues(const Section:String; Strings:TStrings);

参数说明:Section指明要读取段的段名;

Strings指明存放段名的字符串列表;

注释:ReadSectionValues方法与ReadSection方法的区别在于后者仅读入子键名,面前者除了读取子键名之外,还读取该子键对应的键值。读入的子键名及键值在字符串列表中的存放方法与在文件中的显示方法一致,即"Key=Value"形式。

6、EraseSection方法

该方法删除INI文件中指定的一个整段。

方法声明:procedure EraseSection(const Section:string);

参数说明:Section指明待删除段的段名;

注释:EraseSection方法不仅删除指定段的段名,面且同时将该段的所有子键及键值删除。

7、DeleteKey方法

该方法删除指定段中的某个指定的子键。

方法声明:procedure DeleteKey(const Section,Key:string);

参数说明:Section指明待删除子键据段的段名;

Key指明待删除子键的键名;

注释:DeleteKey方法删除整个子键(包括键名和键值),也就是删除该子键所在的一行。

8、ReadBool方法

该方法读取指定段的某个子键的布尔值。

方法声明:function ReadBool(const Section,Key:string;Default:Boolean):Boolean;

参数说明:Section指明待读子键所在段的段名;

Key指明待读子键的键名;

Default参数指明缺省时的返回值。

注释:ReadBool方法用于读取一个子键的布尔型值,当键值为"1"时,返回True,键值为"0"时,返回False.

9、WriteBool方法

该方法向指定段的某个子键写入布尔值。

方法声明:procedure WriteBool(const Section, Key:string; Value:Boolean);

参数说明:Senction指明待写入子键所在段的段名;

Key参数指明待写入值的子键键名;

Value指明待写入的布尔值;

注释:WriteBool 方法用于写入一个子键的布尔值,当Value为"True"时,写入"1"。Value为"Flase"时,写入"0"。若在写入时,指定的段或键名不存在,则自动创建该段和键名。

10、ReadInteger方法

该方法读取指定段的某个子键的整型值。

方法声明:function ReadInteger(const Section,Key:string; Default:longint):longint;

注释:此方法与ReadBool方法类似,只是变量类型不同。

11、WriteInteger方法

该方法向指写段的某个子键写放整型值。

方法声明:procedure WriteInteger(const Section,Key:string; Value:longint);

注释:此方法与WriteBool方法类似,只是变量灰型不同。

12、ReadString方法

该方法读取指定段的某个子键的字符串型 值。

方法声明:function ReadString(const Section,Key:string; Default:string):string;

注释;此方法与ReadBool方法类似,只是变量类型不同。

13、WriteString方法

该方法向指写段的某个子键写入整型值。

方法声明:procedure WriteString(const Section,Key:string; Value:string);

注释:此方法与WriteBool方法类似,只是变量类型不同。

14、FileName属性

该属性指明被封装在TIniFile对象中的INI文件的文件名。

属性声明:property FileName:string;

注释:FileName属性是一个运行时的只读属性。

由一面的介绍,我们可以看到,强大的Delphi对INI文件的支持是非常全面的。我们在编写涉及此类操作的程序时,几乎无需使用Windows API函数

Delphi- ini文件的读写操作的更多相关文章

  1. INI 文件的读写操作

    在C#中对INI文件进行读写操作,在此要引入using System.Runtime.InteropServices; 命名空间,具体方法如下: #region 变量 private static r ...

  2. Delphi对于文件的读写操作

    delphi文件操作 取文件名 ExtractFileName(FileName); 取文件扩展名: ExtractFileExt(filename); 取文件名,不带扩展名: 方法一: Functi ...

  3. C#+Access 员工信息管理--简单的增删改查操作和.ini配置文件的读写操作。

    1.本程序的使用的语言是C#,数据库是Access2003.主要是对员工信息进行简单的增删改查操作和对.ini配置文件的读写操作. 2.代码运行效果如下: 功能比较简单.其中在得到查询结果后,在查询结 ...

  4. QT从入门到入土(三)——文件的读写操作

     引言 文件的读写是很多应用程序具有的功能,甚至某些应用程序就是围绕着某一种格式文件的处 理而开发的,所以文件读写是应用程序开发的一个基本功能. Qt 提供了两种读写纯文本文件的基本方法: 用 QFi ...

  5. Android 对 properties文件的读写操作

    -. 放在res中的properties文件的读取,例如对放在assets目录中的setting.properties的读取:PS:之所以这里只是有读取操作,而没有写的操作,是因为我发现不能对res下 ...

  6. C++学习48 对ASCII文件的读写操作

    如果文件的每一个字节中均以ASCII代码形式存放数据,即一个字节存放一个字符,这个文件就是ASCII文件(或称字符文件).程序可以从ASCII文件中读入若干个字符,也可以向它输出一些字符. 对ASCI ...

  7. android报错及解决2--Sdcard进行文件的读写操作报的异常

    报错描述: 对Sdcard进行文件的读写操作的时候,报java.io.FileNotFoundException: /sdcard/testsd.txt (Permission denied),在往S ...

  8. Qt对ini文件的读写

    研究了以下Qt下ini文件的读写,不废话,上干货. 写入ini文件 WriteIni.cpp void WriteIni::writeSettings() { QSettings settings(& ...

  9. java文件的读写操作

    java文件的读写操作主要是对输入流和输出流的操作,由于流的分类很多,所以概念很容易模糊,基于此,对于流的读写操作做一个小结. 1.根据数据的流向来分: 输出流:是用来写数据的,是由程序(内存)--- ...

随机推荐

  1. C#基础精华02(静态类,值类型,引用类型,枚举,结构,ref与out)

    静态类 静态类不能被其他类继承,静态成员亦不能被继承(访问的是同一个),备注1. 静态类只能继承自Object类.(静态类不能继承自其它类.) 继承(多态).静态本身就是相反的. 静态类不能实现任何接 ...

  2. SQL查询性能分析之(not in)、(and not)、()、(!=)性能比较

    SQL查询性能分析之(not in).(and not).().(!=)性能比较 SQL Server Bruce 3年前 (2013-01-08) 3284浏览 0评论 <:article c ...

  3. Android 内核初识(1)下载源码需求与教程

    官方文档: http://source.android.com/source/requirements.html  Requirements The Android build is routinel ...

  4. WinAPI——钩子函数大全

    SetWindowsHookEx 函数功能:该函数将一个应用程序定义的挂钩处理过程安装到挂钩链中去,您可以通过安装挂钩处理过程来对系统的某些类型事件进行监控,这些事件与某个特定的线程或系统中的所有事件 ...

  5. 在 Azure 中使用公用 IP 创建多 NIC VM

    Russ Slaten  2014年 11 月 18日下午 4点 我们最近宣布了支持具有多个网络接口控制器 (NIC) 的虚拟机 (VM).我仍在努力了解此功能适用的所有新场景,但首先,我希望亲自测试 ...

  6. 【Mac】『终端』显示、隐藏所有文件

    如果你想打开整个系统的隐藏文件可以在终端下输入以下命令 defaults write com.apple.finder AppleShowAllFiles -bool true 关闭显示隐藏功能def ...

  7. 【转】报错:Program "sh" not found in PATH

    原文网址:http://www.cnblogs.com/SadNight/p/3406201.html (1) 报错:Program "sh" not found in PATH ...

  8. UpYun上传 401 Unauthorized

    _upt=3b9b444a14059041252014-07-21 08:46:25,218 ERROR (com.UpYun:518) - Upload file error:<h1>4 ...

  9. EntityFramework版本下载和更新

    安装指定版本的Package(例如:EntityFramework 5.0): PM> Install-Package EntityFramework -ProjectName MusicSto ...

  10. Entity Framework 增删改查和事务操作

    1.增加对象 DbEntity db = new DbEntity(); //创建对象实体,注意,这里需要对所有属性进行赋值(除了自动增长主键外),如果不赋值,则会数据库中会被设置为NULL(注意是否 ...