有一数组a[1..255],里面均存有integer型数据。有一ini文件,里面有20个字段,
[1]
d=10+101+255
[2]
d=11+52+56+73
...
[20]
d=120+121+123+124我要实现的功能是通过分别读取20个字段中d后面的字段,将相应的数组内的值相加。比如,10+101+255,就是将a[10]+a[101]+a[255]相加。
自己写的总是出错。不知道各位如何解决?!谢谢!

解决方案 »

  1.   

    uses IniFiles;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      A: Array[1..255] of Integer;
      MyIniFile: TIniFile;
      I,P,R: Integer;
      S: String;
    begin
      for I := 1 to 255 do A[I] := I;  MyIniFile := TIniFile.Create('g:\aa.ini');
      for I := 1 to 2 do
      begin
        S := MyIniFile.ReadString(IntToStr(I), 'd', '');
        R := 0;
        P := Pos('+', S);
        while P <> 0 do
        begin
          Inc(R, A[StrToInt(Copy(S, 1, P-1))]);
          Delete(S, 1, P);
          P := Pos('+', S);
        end;
        Inc(R, A[StrToInt(S)]);
        ShowMessage(IntToStr(R));
      end;
      MyIniFile.Free;
    end;—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————
      

  2.   

    for I := 1 to 2 do
    -》
    for I := 1 to 20 do—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————