2 dudas
Publicado por Pablo (3 intervenciones) el 05/06/2008 17:02:05
Hola, tengo 2 dudas a ver si m la saben responder.Gracias de antemano.
Tengo que crear altas de receptores y extender un archivo con receptores existentes
1) Me dan un registro sin orden con nombreypellido, mail y pais. Me especifican que en el campo pais solo puede ir Argentina, Chile, Paraguay o Uruguay. Cuando quiero crear un alta cuando digo Ingrese Pais, como hago para que si me ponen Japon diga Pais no encontrado?
2) Cuando cree el alta al momento de pasarlo al archivo de personas como hago para que si ya exista el nombre y apellido me ponga 'Alta duplicada'?
Este es el programa que hice de crear altas y extenderlas a un archivo existente pero me falta agregarle estas 2 restricciones para que quede bien.
program Untitled;
type
Ts30 = string[30];
Ts9 = string[9];
Tvector = Array [1..3] of char;
TregReceptor = Record
ApellidoNombre: Ts30;
Mail: Ts30;
Pais: Ts9;
Acontecimiento: Tvector;
End;
TarchReceptores = file of TregReceptor;
Procedure ASIGNARABRIR (Var archout, archrec: TarchReceptores);
Begin
Assign (archout,'c: uevorec.dat');
Assign (archrec, 'c: eceptores.dat');
Rewrite (archout);
Reset (archrec);
End;
Procedure ALTAS (Var archout: TarchReceptores; Var rec: TregReceptor);
Begin
Writeln ('Ingrese Nombre y Apellido');
Readln (rec.apellidonombre);
while rec.apellidonombre<>'' do
begin
Writeln ('Mail');
Readln (rec.mail);
Writeln ('Pais de Residencia');
Readln (rec.pais);
Writeln ('Si desea tarjeta de Navidad sin animacion presione A, si desea con animacion presione D');
Readln (rec.acontecimiento[1]);
Writeln ('Si desea tarjeta de San Valentin sin animacion presione A, si desea con animacion D');
Readln (rec.acontecimiento[2]);
Writeln ('Si desea tarjeta de Año Nuevo sin animacion presione A, si desea con animacion D');
Readln (rec.acontecimiento[3]);
Write (archout, rec);
Writeln ('Ingrese Nombre y Apellido');
Readln (rec.apellidonombre);
end
end;
Procedure EXTENDERRECEPTORES (Var archout,archrec: TarchReceptores; Var rec: TregReceptor; Var n:longint);
Begin
seek (archout, 0);
while not eof (archout) do
begin
n:= filesize (archrec);
seek (archrec,n);
read (archout, rec);
write (archrec, rec);
end;
end;
Procedure CERRAR (Var archrec, archout: TarchReceptores);
Begin
Close (archrec);
Close (archout);
end;
Var
archout: Tarchreceptores;
archrec: TarchReceptores;
rec: TregReceptor;
n:longint;
Begin
ASIGNARABRIR (archout, archrec);
ALTAS (archout, rec);
EXTENDERRECEPTORES (archout, archrec, rec, n);
CERRAR (archrec, archout);
End.
Tengo que crear altas de receptores y extender un archivo con receptores existentes
1) Me dan un registro sin orden con nombreypellido, mail y pais. Me especifican que en el campo pais solo puede ir Argentina, Chile, Paraguay o Uruguay. Cuando quiero crear un alta cuando digo Ingrese Pais, como hago para que si me ponen Japon diga Pais no encontrado?
2) Cuando cree el alta al momento de pasarlo al archivo de personas como hago para que si ya exista el nombre y apellido me ponga 'Alta duplicada'?
Este es el programa que hice de crear altas y extenderlas a un archivo existente pero me falta agregarle estas 2 restricciones para que quede bien.
program Untitled;
type
Ts30 = string[30];
Ts9 = string[9];
Tvector = Array [1..3] of char;
TregReceptor = Record
ApellidoNombre: Ts30;
Mail: Ts30;
Pais: Ts9;
Acontecimiento: Tvector;
End;
TarchReceptores = file of TregReceptor;
Procedure ASIGNARABRIR (Var archout, archrec: TarchReceptores);
Begin
Assign (archout,'c: uevorec.dat');
Assign (archrec, 'c: eceptores.dat');
Rewrite (archout);
Reset (archrec);
End;
Procedure ALTAS (Var archout: TarchReceptores; Var rec: TregReceptor);
Begin
Writeln ('Ingrese Nombre y Apellido');
Readln (rec.apellidonombre);
while rec.apellidonombre<>'' do
begin
Writeln ('Mail');
Readln (rec.mail);
Writeln ('Pais de Residencia');
Readln (rec.pais);
Writeln ('Si desea tarjeta de Navidad sin animacion presione A, si desea con animacion presione D');
Readln (rec.acontecimiento[1]);
Writeln ('Si desea tarjeta de San Valentin sin animacion presione A, si desea con animacion D');
Readln (rec.acontecimiento[2]);
Writeln ('Si desea tarjeta de Año Nuevo sin animacion presione A, si desea con animacion D');
Readln (rec.acontecimiento[3]);
Write (archout, rec);
Writeln ('Ingrese Nombre y Apellido');
Readln (rec.apellidonombre);
end
end;
Procedure EXTENDERRECEPTORES (Var archout,archrec: TarchReceptores; Var rec: TregReceptor; Var n:longint);
Begin
seek (archout, 0);
while not eof (archout) do
begin
n:= filesize (archrec);
seek (archrec,n);
read (archout, rec);
write (archrec, rec);
end;
end;
Procedure CERRAR (Var archrec, archout: TarchReceptores);
Begin
Close (archrec);
Close (archout);
end;
Var
archout: Tarchreceptores;
archrec: TarchReceptores;
rec: TregReceptor;
n:longint;
Begin
ASIGNARABRIR (archout, archrec);
ALTAS (archout, rec);
EXTENDERRECEPTORES (archout, archrec, rec, n);
CERRAR (archrec, archout);
End.
Valora esta pregunta


0