Ich habe für die gleiche Sache heute suchen ...
Dieses funktioniert auf ganz gut. Fügen Sie diesen Auszug innerhalb Ihres Skripts vor der Prozedur/Funktion ein, die diese "Split" -Prozedur aufrufen wird.
Sie können dies auch auf eine Funktion ändern, wenn Sie es wünschen ...
procedure Explode(var Dest: TArrayOfString; Text: String; Separator: String);
var
i, p: Integer;
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;
end;
procedure Whatever();
var
str: String;
strArray: TArrayOfString;
i: Integer;
begin
Explode(strArray,str,'.');
for i:=0 to GetArrayLength(strArray)-1 do begin
//do something
end;
end;
Entnommen here
Sie können wahrscheinlich tun, aber es könnte nützlich sein, wenn Sie erklären, warum Sie dies tun möchten; Es sieht so aus, als ob Sie versuchen, etwas mit einer Versionsnummer zu tun, und je nachdem, was Sie tun möchten, könnte es eine einfachere Methode sein. Es wird sicherlich nichts wie die von Ihnen gepostete Syntax verwenden, die mehr C/C# als InnoSetup Pascal Script ist. –
Es gibt keine Möglichkeit, diese Zeichenfolge zu "teilen". Es muss analysiert werden. Aber versuchen Sie besser, das Ziel zu erklären, wie @Ken im obigen Kommentar fragt. – TLama
@TLama: Nun, Sie könnten eine Funktion schreiben, die es analysiert und die "Split" -String zurückgegeben, und nennen Sie es "Split". :-) –