InnoSetup中枚举出INI文件的所有sections和键值
原文 http://blog.chinaunix.net/uid-23480430-id-3016899.html
InnoSetup支持一些INI文件操作函数,
- procedure ArrayAddStr(var Arr: Array of String; Str: String);
- var
- Len: Longint;
- begin
- Len := GetArrayLength(Arr);
- SetArrayLength(Arr, Len + 1);
- Arr[Len] := Str;
- end;
- //-- INI
- function IniGetSectionName(Line: String; var Name: String): Boolean;
- var
- P0, P1: Integer;
- begin
- Line := TrimLeft(Line);
- P0 := Pos('[', Line);
- P1 := Pos(']', Line);
- if (P0 = 1) and (P1 > P0 + 1) then begin
- Name := Copy(Line, P0 + 1, P1 - P0 - 1);
- Result := True;
- end
- else
- Result := False;
- end;
- function IniGetKeyName(Line: String; var Name: String): Boolean;
- var
- P0, P1: Integer;
- begin
- Line := TrimLeft(Line);
- P0 := Pos('=', Line);
- P1 := pOS(';', Line); //; is start of comment
- if (P0 > 1) and ((P1 = 0) or (P1 > P0)) then begin
- Name := Trim(Copy(Line, 1, P0 - 1));
- Result := True;
- end
- else
- Result := False;
- end;
- procedure IniGetSections(var Arr: Array of String; const Path: String);
- var
- i: Longint;
- Name: String;
- Lines: Array of String;
- begin
- SetArrayLength(Arr, 0);
- if not LoadStringsFromFile(Path, Lines) then exit;
- for i := 0 to GetArrayLength(Lines) - 1 do begin
- if IniGetSectionName(Lines[i], Name) then ArrayAddStr(Arr, Name);
- end;
- end;
- procedure IniGetKeys(var Arr: Array of String; const Path: String; const Section: String);
- var
- i: Longint;
- Name: String;
- Lines: Array of String;
- begin
- SetArrayLength(Arr, 0);
- if not LoadStringsFromFile(Path, Lines) then exit;
- for i := 0 to GetArrayLength(Lines) - 1 do begin
- if IniGetSectionName(Lines[i], Name) then begin
- if CompareText(Name, Section) = 0 then break;
- end;
- end;
- if i < GetArrayLength(Lines) then begin
- { The section is }
- for i := i + 1 to GetArrayLength(Lines) - 1 do begin
- if IniGetSectionName(Lines[i], Name) then break
- else if IniGetKeyName(Lines[i], Name) then ArrayAddStr(Arr, Name);
- end;
- end;
- end;
InnoSetup中枚举出INI文件的所有sections和键值的更多相关文章
- 向php文件中添加php.ini文件
向php文件中添加php.ini文件 默认情况下,php是没有php.ini配置文件的,必须手工添加php.ini文件 在php安装目录中,复制php.ini文件到/usr/local/php/lib ...
- [转载]windows7中没用boot.ini文件而是改用BCDEDIT来配置了
原文地址:windows7中没用boot.ini文件而是改用BCDEDIT来配置了作者:开心骝哥 本人安装的Win7,因为机上有两个系统,一个dos系统,一个win7系统,开机时总是会在系统选择的界面 ...
- win7下iis中配置php.ini文件
将php.ini-development配置文件重命名为php.ini配置文件即可. 接着做如下配置操作: 1.修改php.ini配置文件 打开php.ini配置文件,找到 12 ; On windo ...
- web安全之php中常见的INI文件配置
php.ini 在 PHP 启动时被读取.对于服务器模块版本的 PHP,仅在 web 服务器启动时读取 一次.对于 CGI 和 CLI 版本,每次调用都会读取. * Apache web 服务器在启动 ...
- IDEA中怎么创建ini文件
首先博主在这使用的是idea的2019.3.2的版本,不知道的话可以打开help菜单的about查看 第一步: 具体需要在setings安装ini插件 第二步: 在File Types中查看ini,没 ...
- 获取ini文件所有的Sections和Keys
获取ini文件中所有的Sections和Keys,并以pair对的方式存入到vector中 #include <iostream> #include <windows.h> # ...
- 利用FastJson,拼接复杂嵌套json数据&&直接从json字符串中(不依赖实体类)解析出键值对
1.拼接复杂嵌套json FastJson工具包中有两主要的类: JSONObject和JSONArray ,前者表示json对象,后者表示json数组.他们两者都能添加Object类型的对象,但是J ...
- Nginx中修改php.ini的上传设置upload_max_filesize的值
普遍的网络越来越快,以前小家子气的2M上传限制慢慢变得不合时宜了.最近就把2M的限制直接提升到了20M...代码层面很快就修改好了,没什么可说的.但是上线的话还得修改一下服务器的配置.服务器是Ngin ...
- 关于C#操作INI文件的总结
原文:关于C#操作INI文件的总结 INI文件其实是一种具有特定结构的文本文件,它的构成分为三部分,结构如下: [Section1]key 1 = value2key 1 = value2--[S ...
随机推荐
- spring笔记(一)
这几日,在看spring框架的知识,了解了一下spring的IoC核心,AOP的概念,然后剩下的其实就是Spring对于其他的java服务的封装:ORM,web, JMS,JMX等. 坦白地说,我并没 ...
- Jtree(节点的渲染+资源管理器)(2)
上一次我们建立一个比较简单的资源管理器,这次我们说一下上面的资源管理器的问题,并且得尽量的贴近windows的资源管理器. 这样一个简单的资源管理树就完成了,下面我们说说它的问题: ① 图片和外观和W ...
- bzoj1619[Usaco2008 Nov]Guarding the Farm 保卫牧场
Description The farm has many hills upon which Farmer John would like to place guards to ensure the ...
- 淡淡de馨香---职业尊严
大学四年时光匆匆而过,仿佛一切都不曾远去,那种熟悉又激动的感觉好似就在昨天,但是.一切都仅仅是一种感觉,在现实面前没有谁能够逆天,在被遗忘的什么时候,曾经是想着无数的梦想与自定义,同样也是在被遗忘的什 ...
- 解决java压缩图片透明背景变黑色的问题
public static BufferedImage resize(int faceWidth,BufferedImage srcImg,HttpServletRequest request) th ...
- HTML特殊符号显示技巧
转:http://www.cnblogs.com/JessonChan/archive/2011/08/06/2129170.html HTML符号 显示一览表.编辑博客的时候经常会用到.特别是空格( ...
- 字符串匹配之horspool算法(简化的BM算法)
前面介绍在BF,KMP这些算法的时候老是提到BM这个东西,究竟这什么东西,有啥高深的,这些问题我们如今不去考虑.不知道,认真读前几篇文章的读者有没有发现前面的算法都是从模式串的前面開始匹配的,那我们就 ...
- CSS基础知识笔记(三)
继承 继承是一种规则,它允许样式不仅应用于某个特定html标签元素,而且应用于其后代.比如下面代码:如某种颜色应用于p标签,这个颜色设置不仅应用p标签,还应用于p标签中的所有子元素文本,这里子元素为s ...
- Solr导入数据库数据
接Solr-4.10.2与Tomcat整合.1.在solrconfig.xml中添加数据导入节点,solrconfig.xml路径为D:\solr\data\solr\collection1\conf ...
- 整理 C#(同步调用、异步调用、异步回调)
//闲来无事,巩固同步异步方面的知识,以备后用,特整理如下: class Program { static void Main(string[] args) { //同步调用 会阻塞当前线程,一步一步 ...