论坛风格切换切换到宽版
  • 1728阅读
  • 3回复

请教老虎版主这个脚本怎么理解 [复制链接]

上一主题 下一主题
离线546242502
 

发帖
332
金钱
-3060
威望
-306
只看楼主 倒序阅读 0 发表于: 2015-08-13
用户被禁言,该主题自动屏蔽!
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 1 发表于: 2015-08-13
procedure DoSomething;
var
aos: TArrayOfString;
n: Integer;
SecName, sLine, sValue: String;
Found: boolean;
begin
if LoadStringsFromFile(ExpandConstant('{app}\abc.ini'), aos) then
  begin
  Found:= false;
  SecName:= '';
  sValue:= '';
  for n:= 0 to GetArrayLength(aos)-1 do
    begin
    sLine:= Trim(aos[n]);
    if (copy(sLine, 1, 1)='[') and (copy(sLine, Length(sLine), 1)=']') then
       begin
       SecName:= copy(sLine, 2, Length(sLine)-2);
       sValue:= '';              // 一旦找到新的区段,就要把上一段找到的值重置
       end;
    if (Pos('=', sLine) <> 0) and (copy(sLine, 1, 1) <> ';') and (copy(sLine, 1, 1) <> '#') then
       sValue:= Trim(copy(sLine, Pos('=', sLine)+1, Length(sLine)-Pos('=', sLine)));
    MsgBox('Section: ' + SecName + #10#13 + 'Value: ' + sValue, mbInformation, MB_OK);
    if (SecName='AAA') and (sValue='BBB') then
       Found:= true;
    end;
  If not Found then
    SetIniString('AAA', 'ZYX', 'CCC', ExpandConstant('{app}\abc.ini'));
  end;
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 2 发表于: 2015-08-13
我用下面的两个 ini 文件测试了,没有问题:

[TTT]
111=222
123=BBB
[AAA]
A=1
[XXX]
222=333

或者
  
[TTT]
111=222
123=BBB
[AAA]
A=1
X=BBB
[XXX]
222=333
离线546242502

发帖
332
金钱
-3060
威望
-306
只看该作者 3 发表于: 2015-08-13
用户被禁言,该主题自动屏蔽!