Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function AllBetween2(s1, s2, str: string): array of string;
- var
- s1L, s2L, sL, r, sp, start, fp, finish: Integer;
- tmp: string;
- begin
- sL := Length(str);
- s1L := Length(s1);
- s2L := Length(s2);
- if (sL > 0) and (s1L > 0) and (s2L > 0) then
- if (sL >= (s1L + s2L)) then
- begin
- SetLength(Result, (sL * (sL - (s1L + s2L))));
- repeat
- sp := PosEx(s1, str, (start + 1));
- if (sp > 0) then
- begin
- start := sp;
- finish := ((start + s1L) - 1);
- repeat
- fp := PosEx(s2, str, (finish + 1));
- if fp > 0 then
- begin
- finish := fp;
- tmp := Copy(str, (start + s1L), (finish - (start + s1L)));
- if tmp <> '' then
- begin
- Result[r] := tmp;
- Inc(r);
- tmp := '';
- end;
- end;
- until (fp <= 0);
- end;
- until (sp <= 0);
- end;
- SetLength(Result, r);
- end;
- var
- str: string;
- TSA: array of string;
- h, i: Integer;
- begin
- ClearDebug;
- str := '***AllBetween2()**Test***';
- TSA := AllBetween2('*', '*', str);
- h := High(TSA);
- if (h < 0) then
- Exit;
- for i := 0 to h do
- WriteLn('TSA[' + IntToStr(i) + ']: ' + TSA[i]);
- SetLength(TSA, 0);
- end.
Advertisement
Add Comment
Please, Sign In to add comment