ayuda porfavor, es urgente
Publicado por Krystian (6 intervenciones) el 13/06/2007 16:56:58
olas tengo un programa que es el siguiente:
program loguear; {programa que crea usuarios con clave y su nombre}
uses crt;
type usuarios=record
username: string[10];
passwd: string[10];
nombre: string[20];
end;
arre=array[1..10]of usuarios;
var a: file of arre;
usuario:usuarios;
i,j:integer;
b:arre;
opcion:char;
e:integer;
cod:byte;
procedure bordes; {Se encarga de darle la tonalidad verde al fondo de la pantalla, ademas crea los bordes (margenes) para la pantalla de 80x24}
var x,y:integer;
begin
textmode(co80);
for x:=1 to 80 do
for y:=1 to 24 do
begin
gotoxy(x,y);
textbackground(2);
write(' ')
end;
y:=1;
for x:=2 to 79 do
begin
gotoxy(x,y);
write(chr(205));
end;
y:=24;
for x:=2 to 79 do
begin
gotoxy(x,y);
write(chr(205))
end;
x:=1;
for y:=2 to 23 do
begin
gotoxy(x,y);
write(chr(186))
end;
x:=80;
for y:=2 to 23 do
begin
gotoxy(x,y);
write(chr(186))
end;
gotoxy(1,1);
write(chr(201));
gotoxy(80,1);
write(chr(187));
gotoxy(1,24);
write(chr(200));
gotoxy(80,24);
write(chr(188));
end;
procedure agregar;
begin
repeat
clrscr;
bordes;
gotoxy(15,3);
write('AGREGAR USUSARIO');
gotoxy(10,5);
write('Nombre de Usuario: ');
readln(b[i].username);
gotoxy(10,6);
write('Contrasena: ');
readln(b[i].passwd);
gotoxy(10,7);
write('Nombre: ');
readln(b[i].nombre);
i:=i+1;
gotoxy(10,8);
write('desea ingresar otro usuario');
readln(opcion);
until opcion='n';
write(a,b);
end;
{procedure mostrar;}
Procedure menu;
var o:byte;
n:integer;
begin
bordes;
gotoxy(15,3);
write('ADMINISTRACION DE USUARIOS');
gotoxy(15,4);
write('--------------------------');
gotoxy(10,6);
write('1.- Agregar Usuario');
gotoxy(10,7);
write('2.- Mostrar Usuario');
gotoxy(10,8);
write('3.- Salir');
gotoxy(12,10);
write('Seleccione la opcion deseada: ');
readln(o);
val(o,cod,e);
If e<>0 then
writeln('error');
case o of
1: agregar;
2:
begin
clrscr;
bordes;
gotoxy(15,5);
write('Nombre: ',usuario.nombre);
gotoxy(15,6);
write('Usuario: ',usuario.username);
gotoxy(15,7);
write('Contrasena: ',usuario.passwd);
readln;
end;
3: i:=21;
end;
end;
Begin
i:=0;
Assign(a, 'users.dat');
rewrite(a);
repeat
menu;
until i=21;
close(a);
End.
Pero necesito que no se caiga cuando ingresen un valor no numerico y tampoco cuando no se encuentre un usuario, y que se pueda guardaar mas de un usuario, si me pueden ayudar se los agradesco chauu
program loguear; {programa que crea usuarios con clave y su nombre}
uses crt;
type usuarios=record
username: string[10];
passwd: string[10];
nombre: string[20];
end;
arre=array[1..10]of usuarios;
var a: file of arre;
usuario:usuarios;
i,j:integer;
b:arre;
opcion:char;
e:integer;
cod:byte;
procedure bordes; {Se encarga de darle la tonalidad verde al fondo de la pantalla, ademas crea los bordes (margenes) para la pantalla de 80x24}
var x,y:integer;
begin
textmode(co80);
for x:=1 to 80 do
for y:=1 to 24 do
begin
gotoxy(x,y);
textbackground(2);
write(' ')
end;
y:=1;
for x:=2 to 79 do
begin
gotoxy(x,y);
write(chr(205));
end;
y:=24;
for x:=2 to 79 do
begin
gotoxy(x,y);
write(chr(205))
end;
x:=1;
for y:=2 to 23 do
begin
gotoxy(x,y);
write(chr(186))
end;
x:=80;
for y:=2 to 23 do
begin
gotoxy(x,y);
write(chr(186))
end;
gotoxy(1,1);
write(chr(201));
gotoxy(80,1);
write(chr(187));
gotoxy(1,24);
write(chr(200));
gotoxy(80,24);
write(chr(188));
end;
procedure agregar;
begin
repeat
clrscr;
bordes;
gotoxy(15,3);
write('AGREGAR USUSARIO');
gotoxy(10,5);
write('Nombre de Usuario: ');
readln(b[i].username);
gotoxy(10,6);
write('Contrasena: ');
readln(b[i].passwd);
gotoxy(10,7);
write('Nombre: ');
readln(b[i].nombre);
i:=i+1;
gotoxy(10,8);
write('desea ingresar otro usuario');
readln(opcion);
until opcion='n';
write(a,b);
end;
{procedure mostrar;}
Procedure menu;
var o:byte;
n:integer;
begin
bordes;
gotoxy(15,3);
write('ADMINISTRACION DE USUARIOS');
gotoxy(15,4);
write('--------------------------');
gotoxy(10,6);
write('1.- Agregar Usuario');
gotoxy(10,7);
write('2.- Mostrar Usuario');
gotoxy(10,8);
write('3.- Salir');
gotoxy(12,10);
write('Seleccione la opcion deseada: ');
readln(o);
val(o,cod,e);
If e<>0 then
writeln('error');
case o of
1: agregar;
2:
begin
clrscr;
bordes;
gotoxy(15,5);
write('Nombre: ',usuario.nombre);
gotoxy(15,6);
write('Usuario: ',usuario.username);
gotoxy(15,7);
write('Contrasena: ',usuario.passwd);
readln;
end;
3: i:=21;
end;
end;
Begin
i:=0;
Assign(a, 'users.dat');
rewrite(a);
repeat
menu;
until i=21;
close(a);
End.
Pero necesito que no se caiga cuando ingresen un valor no numerico y tampoco cuando no se encuentre un usuario, y que se pueda guardaar mas de un usuario, si me pueden ayudar se los agradesco chauu
Valora esta pregunta


0