module mcharcad; {archivo: mcharcad.pas}
export charcad = (CAMin,SAMin,CAMay,SAMay,Espacios,LTrim,LRTrim,ATrim,tLinea,tC255,
EsMin,EsMay,EsDig,EsSigno,EsLetra,EsPunt,EsRel,EsOper,EsParen,EsCtrl);
type
tLinea = string(80);
tC255 = string(255);
{---------------------------------------------------------------------- }
{Devuelve el argumento en minuscula}
function CAMin (c: char): char;
{devuelve la cadena s con sus mayusculas convertidas en minusculas}
function SAMin(s: string): tC255;
{Devuelve el argumento en mayuscula}
function CAMay(c: char): char;
{devuelve la cadena s con sus minusculas convertidas en mayusculas}
function SAMay(s: string): tC255;
{Devuelve una cadena formada por n espacios}
function Espacios (n: integer): tC255;
{Elimina de una cadena los espacios de cabecera}
function LTrim (s: string): tC255;
{Elimina de una cadena los espacios de cabecera y cola}
function LRTrim (s: string): tC255;
{Elimina de una cadena TODOS los espacios}
function ATrim (s: string): tC255;
{Es minúscula}
function EsMin (c: char): boolean;
{Es mayúscula}
function EsMay (c: char): boolean;
{Es dígito '0' ..'9'}
function EsDig (c: char): boolean;
{Es letra}
function EsLetra (c: char): boolean;
{Es signo ['+', '-']}
function EsSigno (c: char): boolean;
{Es signo de puntuacion ['.',,',', ':', ';']}
function EsPunt (c: char): boolean;
{Es operador relacional ['<','>','=']}
function EsRel (c: char): boolean;
{Es operador aritmético ['+', '-', '*', '/', '%']}
function EsOper (c: char): boolean;
{Es paréntesis ['(', ')', '[', ']']}
function EsParen (c: char): boolean;
{Es carácter de control (ordinal(c) < 32)}
function EsCtrl (c: char): boolean;
end;
function CAMin {(c: char): char};
begin
case c of
'A'..'Z' : CAMin := chr(ord(c) - ord('A') + ord('a'));
chr(193) : CAMin := chr(225);
chr(201) : CAMin := chr(233);
chr(205) : CAMin := chr(237);
chr(211) : CAMin := chr(243);
chr(218) : CAMin := chr(250);
chr(209) : CAMin := chr(241);
otherwise
CAMin := c;
end;
end;
function SAMin {(s: string):tC255};
var i:integer;largo:integer value length(s);
c:tC255 value '';
begin
for i := 1 to largo do
c := c + CAMin(s[i]);
SAMin:=c;
end;
function CAMay {(c: char): char};
begin
case c of
'a'..'z' : CAMay := chr(ord(c) + ord('A') - ord('a'));
chr(225) : CAMay := chr(193);
chr(233) : CAMay := chr(201);
chr(237) : CAMay := chr(205);
chr(243) : CAMay := chr(211);
chr(250) : CAMay := chr(218);
chr(241) : CAMay := chr(209);
otherwise
CAMay := c;
end;
end;
function SAMay {(s: string): tC255};
var i:integer;largo:integer value length(s);
c:tC255 value '';
begin
for i := 1 to largo do
c := c + CAMay (s[i]);
SAMay := c;
end;
function Espacios {(n: integer): tC255};
var i:integer;ESPACIO:char;CadEsp:string(255);
begin
i:=0;
ESPACIO:= 'a';
repeat
CadEsp:= ESPACIO + CadEsp;
i:= (i + 1);
until (i = n);
Espacios:=CadEsp;
end;
function LTrim {(s: string): tC255};
var
ESPACIO,cad2:string(255);
i:integer;
CIERTO:boolean;
begin
i:=1;
ESPACIO:=' ';
repeat
CIERTO:= False;
if (s[i] = ESPACIO) then
begin
cad2:= (SubStr (s, i+1));
i:=i+1;
end
else
begin
CIERTO:= True;
end
until (CIERTO = True);
LTrim:=(cad2);
end;
function LRTrim {(s: string): tC255};
var
ESPACIO,s2,s3:string(255);
i:integer value 1;
CIERTO:boolean;
begin
ESPACIO:=' ';
repeat
CIERTO:= False;
if (s[i] = ESPACIO) then
begin
s2:= (SubStr (s, i+1));
i:=i+1;
end
else
begin
CIERTO:= True;
end
until (CIERTO = True);
i:=1;
repeat
CIERTO:= False;
if (s2[i] = ESPACIO) then
begin
s3:= (SubStr (s2,1,i-1));
CIERTO:= True;
end
else
begin
CIERTO:= False;
i:=i+1;
end
until (CIERTO = True);
LRTrim:=(s3);
end;
function ATrim {(s: string): tC255};
var
sR,ESPACIO:string(255);
i:integer;
begin
ESPACIO:=' ';
sR:='';
for i:= 1 to (length(s)) do
if s[i] <> ESPACIO then
sR:=sR + s[i];
ATrim:=(sR);
end;
function EsMin {(c: char): boolean};
begin
case c of
'a'..'z' : EsMin := True;
otherwise
EsMin := False;
end;
end;
function EsMay {(c: char): boolean};
begin
case c of
'A'..'Z' : EsMay := True;
otherwise
EsMay := False;
end;
end;
function EsDig {(c: char): boolean};
begin
case c of
'0'..'9' : EsDig := True;
otherwise
EsDig := False;
end;
end;
function EsLetra {(c: char): boolean};
begin
case c of
'a'..'z' : EsLetra := True;
'A'..'Z' : EsLetra := True;
otherwise
EsLetra := False;
end;
end;
function EsSigno {(c: char): boolean};
begin
case c of
'+','-' : EsSigno := True;
otherwise
EsSigno := False;
end;
end;
function EsPunt {(c: char): boolean};
begin
case c of
'.',',',':',';' : EsPunt := True;
otherwise
EsPunt := False;
end;
end;
function EsRel {(c: char): boolean};
begin
case c of
'<','>','=' : EsRel := True;
otherwise
EsRel := False;
end;
end;
function EsOper {(c: char): boolean};
begin
case c of
'+', '-', '*', '/', '%' : EsOper := True;
otherwise
EsOper := False;
end;
end;
function EsParen {(c: char): boolean};
begin
case c of
'(', ')', '[', ']' : EsParen := True;
otherwise
EsParen := False;
end;
end;
function EsCtrl {(c: char): boolean};
begin
if (ord(c) < 32) then
begin
EsCtrl:= True;
end
else
EsCtrl:= False;
end;
end.
Modulo con funciones varias...
Un modulo que programé, con diversas funciones...
0 comentarios:
Publicar un comentario en la entrada