I was looking for the same thing today ...
This works great on Inno Setup scripts. Insert this snippet inside the script before the procedure / function that calls this split procedure.
You can also change this to a function if you want ...
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;
Taken from here
source share