如何在delphi中编辑ini文件(edit ini files in delphi)

INI文件是用于存储应用程序配置数据的基于文本的文件。...

INI文件是用于存储应用程序配置数据的基于文本的文件。

Concentrated African American woman brainstorming while coding data on desktop PC.

尽管Windows建议使用Windows注册表来存储特定于应用程序的配置数据,但在许多情况下,您会发现INI文件为程序访问其设置提供了更快的方式。Windows本身甚至使用INI文件;desktop.ini和boot.ini只是两个示例。

INI文件作为状态保存机制的一个简单用途是,如果希望表单重新显示在其先前位置,则保存表单的大小和位置。使用INI文件代替搜索整个信息数据库以查找大小或位置。

ini文件格式

初始化或配置设置文件(.INI)是一个限制为64 KB的文本文件,分为多个部分,每个部分包含零个或多个键。每个键包含零个或多个值。

下面是一个例子:

[SectionName] keyname1=value ;comment keyname2=value

节名用方括号括起来,必须从行的开头开始。节和键名称不区分大小写(大小写无关紧要),并且不能包含空格字符。键名后面是等号(=”),可选地由空格字符包围,这些字符将被忽略。

如果同一节在同一文件中出现多次,或者同一键在同一节中出现多次,则以最后一次出现为准。

键可以包含字符串、整数或布尔值。​

DelphiIDE在许多情况下使用INI文件格式。例如,.DSK文件(桌面设置)使用INI格式。

小文件类

Delphi提供了在inifiles.pas单元中声明的TIniFile类,以及从INI文件中存储和检索值的方法。

在使用TIniFile方法之前,需要创建类的实例:

uses inifiles; ... var IniFile : TIniFile; begin IniFile := TIniFile.Create('myapp.ini') ;

上面的代码创建了一个IniFile对象,并将“myapp.ini”分配给类的唯一属性——FileName属性——用于指定要使用的ini文件的名称。

上面编写的代码在\Windows目录中查找myapp.ini文件。存储应用程序数据的更好方法是在应用程序的文件夹中-只需为Create方法指定文件的完整路径名:

// place the INI in the application folder, // let it have the application name // and 'ini' for extension: iniFile := TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) ;

从ini读取

TIniFile类有几个“读取”方法。ReadString从键ReadInteger读取字符串值。ReadFloat和类似工具用于从键中读取数字。所有“读取”方法都有一个默认值,如果条目不存在,则可以使用该值。

例如,ReadString声明为:

function ReadString(const Section, Ident, Default: String): String; override;

写入ini

对于每个“读取”方法,该文件都有相应的“写入”方法。它们是WriteString、WriteBool、WriteInteger等。

例如,如果我们想让一个程序记住最后一个使用它的人的名字、时间以及主要形式坐标是什么,我们可以建立一个名为Users的部分、一个名为last的关键字、一个名为Date的部分来跟踪信息,以及一个名为Placement的部分,其中包含键Top、Left、Width和Height。

project1.ini [User] Last=Zarko Gajic Date=01/29/2009 [Placement] Top=20 Left=35 Width=500 Height=340

请注意,名为Last的键包含一个字符串值,Date包含一个TDateTime值,Placement部分中的所有键都包含一个整数值。

主窗体的OnCreate事件是存储访问应用程序初始化文件中的值所需的代码的最佳位置:

procedure TMainForm.FormCreate(Sender: TObject) ; var appINI : TIniFile; LastUser : string; LastDate : TDateTime; begin appINI := TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) ; try //if no last user return an empty string LastUser := appINI.ReadString('User','Last','') ; //if no last date return todays date LastDate := appINI.ReadDate('User', 'Date', Date) ; //show the message ShowMessage('This program was previously used by ' + LastUser + ' on ' + DateToStr(LastDate)); Top := appINI.ReadInteger('Placement','Top', Top) ; Left := appINI.ReadInteger('Placement','Left', Left); Width := appINI.ReadInteger('Placement','Width', Width); Height := appINI.ReadInteger('Placement','Height', Height); finally appINI.Free; end; end;

主窗体的OnClose事件非常适合于项目的saveini部分。

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction) ; var appINI : TIniFile; begin appINI := TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) ; try appINI.WriteString('User','Last','Zarko Gajic') ; appINI.WriteDate('User', 'Date', Date) ; with appINI, MainForm do begin WriteInteger('Placement','Top', Top) ; WriteInteger('Placement','Left', Left) ; WriteInteger('Placement','Width', Width) ; WriteInteger('Placement','Height', Height) ; end; finally appIni.Free; end; end;

ini部分

擦除部分擦除INI文件的整个部分。ReadSection和ReadSections使用INI文件中所有节(和键名)的名称填充TStringList对象。

限制及;缺点

TIniFile类使用Windows API,该API对INI文件施加了64 KB的限制。如果需要存储超过64 KB的数据,则应使用TMemIniFile。

如果某个截面的值超过8 K,则可能会出现另一个问题。解决此问题的一种方法是编写自己版本的ReadSection方法。

  • 发表于 2021-09-15 03:57
  • 阅读 ( 209 )
  • 分类:IT

你可能感兴趣的文章

如何创建自定义雨表图标和应用程序启动器

...要求。 米——雨表中的米。仪表选项决定如何显示您的皮肤。由于我们的Meter参数设置为String,Rainmeter将把我们的信息显示为一个字符串(即一个单词)。 文本——指示通过Meter参数加载的内容。因...

  • 发布于 2021-03-15 09:58
  • 阅读 ( 193 )

使用rocketdock皮肤在windows7、vista和xp中获得windows8魅力吧

...用程序启动程序。请参阅我们关于RocketDock的文章,了解如何将其添加到Windows桌面。你也可以使用RocketDock的便携版本。 要在Windows7桌面上添加“魅力吧”,请解压缩下载的.rar文件(请参阅本文末尾的链接)。RAR文件与共享软件W...

  • 发布于 2021-04-12 09:35
  • 阅读 ( 170 )

如何使用雨表在桌面上显示报价

...一个鼓舞人心的引用我的桌面壁纸。今天我们将向您展示如何使用雨表,无论您切换到哪种墙纸。 使用雨量计的好处是,你可以切换你的墙纸,或旋转它,而报价保持在同一个地方。我们要做的是展示如何创建一个非常简单的...

  • 发布于 2021-04-13 04:19
  • 阅读 ( 128 )

thumbs.db、desktop.ini和.ds\u存储文件是什么?

...止创建其中一些文件。 什么是拇指.db(thumbs.db)? 相关:如何在Windows7、8或10中显示隐藏的文件和文件夹 thumbs.db文件本质上是一个“缩略图数据库”——这就是它的名称。每当您在Windows资源管理器或文件资源管理器中打开文件...

  • 发布于 2021-07-15 04:10
  • 阅读 ( 212 )

如何将媒体文件嵌入delphi可执行文件(rc/.res)(embed media files into a delphi executable (rc/.res))

...可以防止其他人操纵这些加载项文件。 本文将向您展示如何在Delphi可执行文件中嵌入(和使用)声音文件、视频剪辑、动画以及更一般的任何类型的二进制文件。对于最通用的用途,您将看到如何将MP3文件放入Delphi exe中。 ...

  • 发布于 2021-09-06 15:08
  • 阅读 ( 190 )

使用delphi的键入文件文件创建数据库

...t record} Seek(F, FileSize(F)) ; 更改和更新 您刚刚学会了如何编写和读取整个成员数组,但如果您只想查找第10个成员并更改电子邮件,该怎么办?下一个过程正是这样做的: procedure ChangeEMail(const RecN : integer; const NewEMail : str...

  • 发布于 2021-09-06 15:11
  • 阅读 ( 170 )

了解delphi编程的基础知识

...扩展的应用程序。 之后,探索Delphi实际上是什么,以及如何安装和配置其开发环境。在此基础上,探索DelphiIDE的主要部分和工具。 “你好,世界!” 通过创建一个简单的项目、编写代码、编译和运行项目,开始您对Delphi应...

  • 发布于 2021-09-06 15:13
  • 阅读 ( 181 )

理解delphi项目和单元源文件

...供了在软件后台出现的许多功能。 例如,应用程序处理如何从程序菜单调用帮助文件。 DPROJ是Delphi项目文件的另一种文件格式,但它以XML格式存储项目设置。 pas文件 PAS文件格式保留用于Delphi单元源文件。您可以通过项目...

  • 发布于 2021-09-06 15:15
  • 阅读 ( 172 )

如何在运行时移动和调整控件大小(在delphi应用程序中)(move and resize controls at run time (in delphi applications))

下面介绍如何在应用程序运行时使用鼠标拖动和调整控件大小(在Delphi窗体上)。 运行时的表单编辑器 在窗体上放置控件(可视组件)后,可以调整其位置、大小和其他设计时特性。但是,在某些情况下,您必须允许应用...

  • 发布于 2021-09-10 20:45
  • 阅读 ( 193 )

在delphi的tdbgrid中显示和编辑备注字段

...会在DBGrid单元格中显示备注字段的内容。 本文提供了如何解决这个TMemoField问题的想法(还有一些技巧)。。。 特默菲尔德 备注字段用于表示长文本或文本与数字的组合。使用Delphi构建数据库应用程序时,TMemoField对象用于...

  • 发布于 2021-09-10 20:47
  • 阅读 ( 163 )
qgshcakvur
qgshcakvur

0 篇文章

相关推荐