grendel-1.0.0a7/backup/
grendel-1.0.0a7/bin/
grendel-1.0.0a7/boards/
grendel-1.0.0a7/clans/
grendel-1.0.0a7/documentation/todo/
grendel-1.0.0a7/help/
grendel-1.0.0a7/logs/
grendel-1.0.0a7/players/
grendel-1.0.0a7/progs/
grendel-1.0.0a7/races/
grendel-1.0.0a7/src/contrib/
grendel-1.0.0a7/src/modules/speller/
grendel-1.0.0a7/src/modules/status/
grendel-1.0.0a7/src/tests/
grendel-1.0.0a7/src/tests/dunit/
{
  Summary:
  	Substring manipulation routines
  	
  ## $Id: strip.pas,v 1.2 2004/02/27 22:24:21 druid Exp $
}

unit strip;


interface


uses 
	SysUtils;
	

// return the part on the left of the first occurance of 'delim'
// or the whole string if there is no 'delim'
function left(const s : string; delim : char) : string;

// return the part on the right of the first occurance 'delim'
// or the whole string if there is no 'delim'
function right(const s : string; delim : char) : string;

// return the part on the left of the last occurance of 'delim'
// or the whole string if there is no 'delim'
function leftr(const s : string; delim : char) : string;

// return the part on the right of the last occurance 'delim'
// or the whole string if there is no 'delim'
function rightr(const s : string; delim : char) : string;

function charsInStr(const s : string; what : char) : integer;


implementation


function left(const s : string; delim : char) : string;
var
   i : integer;
begin
  i := pos(delim, s);

  if (i > 0) then
    Result := Copy(s, 1, i - 1)
  else
    Result := s;
end;

function right(const s : string; delim : char) : string;
var
   i : integer;
begin
  i := pos(delim, s);

  if (i > 0) then
    Result := Copy(s, i + 1, length(s))
  else
    Result := s;
end;

function leftr(const s : string; delim : char) : string;
var
   i : integer;
begin
  i := LastDelimiter(delim, s);

  if (i > 0) then
    Result := Copy(s, 1, i - 1)
  else
    Result := s;
end;

function rightr(const s : string; delim : char) : string;
var
   i : integer;
begin
  i := LastDelimiter(delim, s);

  if (i > 0) then
    Result := Copy(s, i + 1, length(s))
  else
    Result := s;
end;

function charsInStr(const s : string; what : char) : integer;
var 
	a , b : integer;
begin
  b := 0;
  
  for a := 1 to length(s) do
   	if (s[a] = what) then 
   		inc(b,1);
   		
  Result := b;
end;

end.