You are on page 1of 4

MENU PASCAL INGLES/ESPAÑOL

program espaing;
uses
crt;
type
espanol = record {como sifuera el diccionario}
letra : char;
esp : string[40]; {base de datos}
ing : string[40];
end;
var
f : file of espanol; {para guardar los datos del diccionario}
tecla : char; {para tomar decisiones}
texto : string[40]; {para entrar la pregunta}
dato : espanol; {para entrada de datos}
t : integer; {contador entradas}
pru : array[1..2] of espanol; {para ordenar}
salir : boolean; {finaliza busqueda}

procedure entrardatos; {creamos el diccionario}


begin
writeln('entre frase en Espa¤ol : ');
readln(dato.esp);
writeln('entre frase en Ingles : ');
readln(dato.ing);
dato.letra := dato.esp[1];
clrscr;
writeln('La Letra Es = ',dato.letra);
writeln('La Frase en Espa¤ol Es = ',dato.esp);
writeln('La Respuesta en Ingles Es = ',dato.ing);
writeln;
writeln('Esta Correcto [S/N]');
repeat
tecla := readkey;
until tecla in['s','S','n','N'];
if tecla in['s','S'] then
begin
assign(f,'Dicciona.dat'); {guardamos los datos}
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
rewrite(f);
seek(f,0); {primera entrada}
write(f,dato);
close(f);
end
else
begin
seek(f,filesize(f));
write(f,dato); {nuevas entradas}
close(f);
end;
end;
end;

procedure ordenaesping;
var
hl, il, len : longint;
tempo : espanol;
begin
assign(f,'Dicciona.dat');
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
writeln('Archivo < Dicciona.dat > no Encontrado');
halt(1);
end
else
begin
len := filesize(f) - 1;
for il := 0 to len do
begin
seek(f,il);
read(f,pru[1]);
for hl := len downto il do
begin
seek(f,hl);
read(f,pru[2]);
if pru[1].letra > pru[2].letra then
begin
tempo.letra := pru[1].letra;
tempo.esp := pru[1].esp;
tempo.ing := pru[1].ing;
pru[1].letra := pru[2].letra;
pru[1].esp := pru[2].esp;
pru[1].ing := pru[2].ing;
pru[2].letra := tempo.letra;
pru[2].esp := tempo.esp;
pru[2].ing := tempo.ing;
seek(f,il);
write(f,pru[1]);
seek(f,hl);
write(f,pru[2]);
end;
end;
end;
close(f);
end;
end;

procedure leediccionario;
var
led : array[0..29] of espanol; {datos leidos}
long : longint; {longitud archivo}
palabra : string[40];
begin
ordenaesping;
assign(f,'Dicciona.dat'); {guardamos los datos}
{$I-} reset(f); {$I+}
if ioresult <> 0 then
begin
writeln('No Existe Archivo = Dicciona.dat Pulse [Enter]');
readln;
end
else
begin
long := filesize(f) - 1; {tomamos el tama¤o del archivo}
for t := 0 to long do
begin
seek(f,t);
read(f,led[t]);
gotoxy(65,t + 2);write(led[t].esp);
end;
close(f);
salir := false;
t := 0;
gotoxy(2,2);write('Entre Palabra a Buscar Traduccion : ');
gotoxy(38,2);readln(palabra);
repeat
if led[t].esp = palabra then
salir := true
else
t := t + 1;
until (salir = true) or (t > long);
if salir = true then
begin
gotoxy(26,3);write('Traducion : ',led[t].ing);
end
else
begin
gotoxy(2,3);write('Palabra no encontrada');
end;
writeln;
writeln(' Pulse [Enter]');
readln;
end;
end;

procedure menu;
var
tec : char; {tecla menu}
fin : boolean; {final menu}
begin
fin := false;
repeat
clrscr;
gotoxy(10,1);write('*** Menu Principal ***');
gotoxy(10,3);write(' 1 = Entrada Datos');
gotoxy(10,4);write(' 2 = Buscar Traduccion');
gotoxy(10,5);write(' 3 = Salir');
gotoxy(10,7);write('Elija Opcion');
tec := readkey;
clrscr;
case tec of
#49 : entrardatos;
#50 : leediccionario;
#51 : fin := true;
end;
until fin = true;
end;
begin
clrscr;
menu;
end.

You might also like