Janilabo

Untitled

Aug 7th, 2012
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 0.80 KB | None | 0 0
  1. function Expand(trgt_pos: Integer; s1, s2, str: string): string;
  2. var
  3.   l, p, start, finish, s1L, s2L: Integer;
  4.   tmp: string;
  5. begin
  6.   l := Length(str);
  7.   s1L := Length(s1);
  8.   s2L := Length(s2);
  9.   if ((s1L > l) or (s2L > l) or (trgt_pos > l) or (trgt_pos < 1)) then
  10.     Exit;
  11.   finish := PosEx(s2, str, trgt_pos);
  12.   if (finish <= 0) then
  13.     Exit;
  14.   tmp := Copy(str, 1, trgt_pos);
  15.   repeat
  16.     p := PosEx(s1, tmp, (p + 1));
  17.     if (p > 0) then
  18.       start := p;
  19.   until (p <= 0);
  20.   if (start > 0) then
  21.     if (start < finish) then
  22.       Result := Copy(str, (start + s1L), ((finish - start) - s2L));
  23. end;
  24.  
  25. var
  26.   str: string;
  27.   i, l: Integer;
  28.  
  29. begin
  30.   ClearDebug;
  31.   str := '*Janilabo*';
  32.   l := Length(str);
  33.   for i := 1 to l do
  34.     WriteLn(IntToStr(i) + ': ' + Expand(i, '*', '*', str));
  35. end.
Advertisement
Add Comment
Please, Sign In to add comment