145 lines
3.7 KiB
Plaintext
Executable File
145 lines
3.7 KiB
Plaintext
Executable File
|
|
function PadWithSpaces(sstring: string;padlength : integer): string;
|
|
var
|
|
tstring : string;
|
|
index : byte;
|
|
tooshort : integer;
|
|
|
|
begin
|
|
tstring := sstring;
|
|
tooshort := padlength - length(sstring);
|
|
if tooshort > 0 then
|
|
begin
|
|
for index := 1 to tooshort do tstring := tstring + ' ';
|
|
end;
|
|
PadWithSpaces := tstring;
|
|
end;
|
|
|
|
procedure StripLeadingBlanks(var st: string);
|
|
begin
|
|
while (((st[1] =' ') or (st[1] = chr(9))) and (length(st) >0)) do delete(st,1,1);
|
|
end { StripLeadingBlanks };
|
|
|
|
procedure StripLeadingChar(var st: string;achar :char);
|
|
begin
|
|
while ((st[1] = achar) and (length(st) >0)) do delete(st,1,1);
|
|
end { StripLeadingChar };
|
|
|
|
procedure StripTrailingBlanks(var st: string);
|
|
begin
|
|
while (copy(st,length(st),1)=' ') or (copy(st,length(st),1)=chr(9)) do delete(st,length(st),1);
|
|
end { StripTraiLingBlanks };
|
|
|
|
function ScanTillWhite(astr : string) : byte;
|
|
{ returns pos preceding first white space found, returns 0 for zero }
|
|
{ length string, or string length if no white space is found }
|
|
var index,len : byte;
|
|
begin
|
|
index := 0;
|
|
len := length(astr);
|
|
if len > 0 then
|
|
begin
|
|
while (astr[index +1] <> chr(32)) and (astr[index +1] <> chr(09)) and (index < len) do
|
|
begin
|
|
index := index +1;
|
|
end;
|
|
end;
|
|
ScanTillWhite := index;
|
|
end;
|
|
|
|
function ScanTillChar(astr : string; achar : char) : byte;
|
|
{ returns pos preceding first white space found, returns 0 for zero }
|
|
{ length string, or string length if no white space is found }
|
|
var index,len : byte;
|
|
begin
|
|
index := 0;
|
|
len := length(astr);
|
|
if len > 0 then
|
|
begin
|
|
while (astr[index +1] <> achar) and (index < len) do
|
|
begin
|
|
index := index +1;
|
|
end;
|
|
end;
|
|
ScanTillchar := index;
|
|
end;
|
|
|
|
function Strip(var rest: string): string;
|
|
var
|
|
first: string;
|
|
endst: integer;
|
|
begin
|
|
StripLeadingBlanks(rest);
|
|
endst := ScanTillWhite(rest); { find position of first white space }
|
|
first := copy(rest,1,endst); { copy until white space or end }
|
|
rest := copy(rest,endst+1,length(rest)); { delete stripped from rest }
|
|
Strip := first;
|
|
end { Strip };
|
|
|
|
function StripTillChar(var rest : string;achar : char): string;
|
|
var
|
|
first: string;
|
|
endst: integer;
|
|
begin
|
|
StripLeadingChar(rest,achar);
|
|
endst := ScanTillChar(rest,achar); { find position of first achar}
|
|
first := copy(rest,1,endst); { copy until next achar or end }
|
|
rest := copy(rest,endst+1,length(rest)); { delete stripped from rest }
|
|
StripTillChar := first;
|
|
end { StripTillChar };
|
|
|
|
function LowCase(c:char) : char;
|
|
var ourb : byte;
|
|
begin
|
|
ourb := byte(c);
|
|
if (ourb >64) and (ourb <= 90) then ourb := ourb + 32;
|
|
LowCase := char(ourb);
|
|
end;
|
|
|
|
function UpString(s:string) : string;
|
|
var
|
|
index : byte;
|
|
begin
|
|
for index := 1 to length(s) do
|
|
s[index] := upcase(s[index]);
|
|
UpString := s;
|
|
end;
|
|
|
|
function LowString(s:string) : string;
|
|
var
|
|
index : byte;
|
|
begin
|
|
for index := 1 to length(s) do
|
|
s[index] := LowCase(s[index]);
|
|
LowString := s;
|
|
end;
|
|
|
|
function StripNumber( var astring : string): integer;
|
|
var
|
|
index : byte;
|
|
returnvar : integer;
|
|
retcode : integer;
|
|
begin
|
|
index := 1;
|
|
while ((astring[index] >= '0') and (astring[index] <= '9')) do
|
|
begin
|
|
index := index + 1;
|
|
end;
|
|
val(copy(astring,1,index-1),returnvar,retcode);
|
|
astring := copy(astring,index,length(astring)-(index-1));
|
|
StripNumber := returnvar
|
|
end { StripNumber };
|
|
|
|
function StripLetter( var astring : string): string;
|
|
var
|
|
index : integer;
|
|
begin
|
|
index := 1;
|
|
while ((astring[index] < '0') or (astring[index] > '9')) do
|
|
begin
|
|
index := index + 1;
|
|
end;
|
|
StripLetter := copy(astring,1,index-1);
|
|
astring := copy(astring,index,length(astring)-(index-1));
|
|
end { StripLetter };
|