我试图拆分一个csv字符串,然后遍历数组并更改这些字符串,然后再将其重新构建成逗号分隔的字符串。

function StrSplit(Text: String; Separator: String): Array of String;
var
  i, p: Integer;
  Dest: Array of String;
begin
  i := 0;
  repeat
    SetArrayLength(Dest, i+1);
    p := Pos(Separator,Text);
    if p > 0 then begin
      Dest[i] := Copy(Text, 1, p-1);
      Text := Copy(Text, p + Length(Separator), Length(Text));
      i := i + 1;
    end else begin
      Dest[i] := Text;
      Text := '';
    end;
  until Length(Text)=0;
  Result := Dest
end;

function FormatHttpServer(Param: String): String;
var
build: string;
s: string;
ARRAY1: Array of String;
begin
  ARRAY1 := StrSplit(param, ',');
  build:='';
  for s in ARRAY1 do
  begin
    build := build + DoSomething(C);
  end;
end;


我从其他地方呼叫FormatHttpServer。我无法编译该脚本,因为在下一行中,我收到“类型不匹配错误”,并且我不明白为什么。它应该使用字符串s遍历字符串数组。

for s in ARRAY1 do

最佳答案

Inno Setup Pascal脚本不支持for ... in语法。

您必须使用索引:

var
  I: Integer;
  A: array of string;
  S: string;
begin
  A := { ... };
  for I := 0 to GetArrayLength(A) - 1 do
  begin
    S := A[I];
    { Do something with S }
  end;
end;

10-07 19:09
查看更多