procedure LeerTexto;
var
Archivo:text;
Letra:char;
palabra:string;
begin
palabra:='';
assign(Archivo,'_leeme.txt');
reset(Archivo);
repeat
begin
read(Archivo,Letra);
while (((ord(Letra)<=90) and (ord(Letra)>=65)) or ((ord(Letra)<=122) and (ord(Letra)>=97)) or ((ord(Letra)<=165) and (ord(Letra)>=129)) or ((ord(Letra)=181)) or ((ord(Letra)<=216) and (ord(Letra)>=211))
or ((ord(Letra)<=237) and (ord(Letra)>=224))) and ((not eof(Archivo))) do
begin
case Letra of
'a'..'z':Letra:=Upcase(Letra);
'A'..'Z':Letra:=Upcase(Letra);
'á','Á','ä','Ä':Letra:='A';
'é','É','ë','Ë':Letra:='E';
'í','Í','ï','Ï':Letra:='I';
'ó','Ó','ö','Ö':Letra:='O';
'ú','Ú','ü','Ü':Letra:='U';
'ñ','Ñ':Letra:='Ñ';
end;
palabra:=palabra+Letra;
if not (eof(Archivo)) then Read(Archivo,Letra);
end;
if (palabra<>'') then CrearDiccionario(palabra);
palabra:='';
end
until eof(Archivo);
close(Archivo)
end;
procedure CrearDiccionario(palabra:string);
var
Igual:boolean;
Diccio:file of char;
Compara:string;
Letrita:char;
i,j:byte;
begin
Igual:=False;
assign(Diccio,'Diccionario.dat');
rewrite(Diccio);
while not (eof(Diccio)) and (Igual=False) do
begin
Compara:='';
j:=0;
read(Diccio,Letrita);
repeat
if ((Letrita)<>',') then
begin
Compara:=Compara+Letrita;
read(Diccio,Letrita);
inc(j);
end
else if Compara=palabra then Igual:=True
until (eof(Diccio)) or (Igual=True) or (Letrita=',');
Compara:='';
end;
if eof(Diccio) and Igual=false then
begin
for i:=1 to j do
write(Diccio,palabra[i]);
end;
write(Diccio,',');
close(Diccio)
end;
function VerifDiccionario(palabra:String):boolean;
var
Diccio:file of char;
Igual:boolean;
Comparacion:string;
Caracter:char;
begin
assign(Diccio,'Diccionario.dat');
reset(Diccio);
Igual:=false;
while not (eof(Diccio)) and (Igual=False) do
begin
Comparacion:='';
read(Diccio,Caracter);
repeat
if ((Caracter)<>',') then
begin
Comparacion:=Comparacion+Caracter;
read(Diccio,Caracter);
end
else if Comparacion=palabra then Igual:=True
until (eof(Diccio)) or (Igual=True) or (Caracter=',');
Comparacion:='';
end;
if (Igual=True) then VerifDiccionario:=true
else VerifDiccionario:=false
end;
end.