Janilabo

Janilabo | CountStrEx() [SCAR Divi]

Apr 28th, 2013
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 1.10 KB | None | 0 0
  1. {==============================================================================]  
  2.   Explanation: Counts all strings (s) in text (str).
  3.                If overlap is set to true, strings can overlap.
  4.                ('test', 'testestest', False) => 2
  5.                ('test', 'testestest', True) => 3                  
  6. [==============================================================================}
  7. function CountStrEx(s, str: string; overlap: Boolean): Integer;
  8. var
  9.   p, o: Integer;
  10. begin
  11.   Result := 0;
  12.   if not overlap then
  13.   begin      
  14.     o := Length(s);
  15.     p := (p - (o - 1));
  16.   end else      
  17.     o := 1;
  18.   repeat
  19.     p := PosEx(s, str, (p + o));
  20.     if (p > 0) then
  21.       Inc(Result);
  22.   until (p <= 0);
  23. end;
  24.  
  25. var
  26.   s, str: string;
  27.  
  28. begin
  29.   ClearDebug;
  30.   str := 'TESTESTESTEST for CountStrEx()!';
  31.   s := 'TEST';                    
  32.   WriteLn('String: "' + str + '"');
  33.   WriteLn('Count of "' + s + '" in String: ' + IntToStr(CountStrEx(s, str, True)) + ' (overlap = ON)!');
  34.   WriteLn('Count of "' + s + '" in String: ' + IntToStr(CountStrEx(s, str, False)) + ' (overlap = OFF)!');
  35. end.
Advertisement
Add Comment
Please, Sign In to add comment