here's the procedure
procedure TForm1.process_string(Index: integer);
const delims = [#9];
var I,hpos: integer;
datastring, outstring : ansistring ;
doseoffsets : array of integer;
offset : integer;
begin
offset := index;
outstring := '';
datastring := indata[index];
setlength(doseoffsets,dosepositions.Count-1);
hpos := wordposition(3,datastring,delims);
for i := 0 to dosepositions.count -1 do
doseoffsets := hpos + ((strtoint(dosepositions)) * 6);
outstring := extractword(1,datastring,delims) + #9 + extractword(2,datastring,delims) ;
for i := 0 to dosepositions.count-1 do
begin
outstring := outstring + #9 + copy(datastring,doseoffsets,5);
end;
outdata.strings[offset] := outstring;
end;