Buenas, en mi desesperante búsqueda de respuestas por google he dado con estos foros y mi primer mensaje, como no, es para pedir ayuda xD. Estoy con un programa pero no consigo realizar ciertas cosas.
Este es el código que llevo:
-------------------------------------------------------------------------------------------------------------------------------
program menu11;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
max_participantes=50; max_vueltas=100; max_long_nombre=255;
type
t_participante=record
nombre:string[max_long_nombre];
apellido:string[max_long_nombre];
dorsal:integer;
equipo:string[max_long_nombre];
end;
datos=array [1..max_participantes] of t_participante;
var
lista_completa:datos;
opc,cantidad,c:integer;
res:string[1];
busqueda:integer;
begin
{inicializo las variables}
repeat
{imprimo el titulo del menu}
writeln;
writeln('------------------------');
writeln('Gestion de Participantes');
writeln('------------------------');
writeln;
writeln;
{imprimo el menu}
Writeln(' 1.-Agregar participante');
Writeln(' 2.-Lista de participantes');
Writeln(' 3.-Busqueda de participante');
Writeln(' 4.-Guardar Participantes en archivo');
Writeln(' 5.-Cargar Participantes desde archivo');
Writeln(' 6.-Borrar participante');
Writeln(' 7.-Salir');
{pido la opcion del menu}
writeln;
Write(' -> Introduce la opcion que desees: ');Readln(opc);
case opc of
1: //Agregar Participantes
begin
for cantidad:=(cantidad +1) to max_participantes do
begin
writeln;
writeln('----------------------');
writeln('Agregar Participantes');
writeln('----------------------');
writeln;
writeln;
write(' -Nombre ',cantidad,': ');
readln(lista_completa[cantidad].nombre);
write(' -Apellido: ');
readln(lista_completa[cantidad].apellido);
write(' -Dorsal: ');
readln(lista_completa[cantidad].dorsal);
write(' -Equipo: ');
readln(lista_completa[cantidad].equipo);
writeln;
Write('Desea introducir otro participante? s/n: ');
Readln(res);
{si no, saco del ciclo}
if (res='n') OR (res='N') then break;
end;
end;
2: //Listar Participantes
begin
writeln;
writeln('------------------------');
writeln('Lista de Participantes');
writeln('------------------------');
writeln;
writeln;
for c:=1 to cantidad do
begin
writeln('--------------------------------------');
writeln('Nombre',c,': ',lista_completa[c].nombre);
writeln('Apellido: ',lista_completa[c].apellido);
writeln('Dorsal: ',lista_completa[c].dorsal);
writeln('Equipo: ',lista_completa[c].equipo);
writeln('-------------------------------------');
writeln;
end;{ciclo de impresion}
end;{fin de opcion 2 reporte de productos}
3: //Buscar participantes por dorsal
begin
Writeln('Buscar participantes por dorsal y mostrar el resto de datos')
end;
4: //Guardar participantes en un archivo
begin
Writeln('Guardar participantes en archivo')
end;
5: //Cargar Participantes desde archivo
begin
Writeln('Cargar participantes desde archivo');
end;
6: //Borrar participante
begin
Writeln('Borrar participante');
end;
end;{case}
until opc=7;
end.
-----------------------------------------------------------------------------------------------------------------------------
El programa tiene que realizar las siguientes acciones:
1.-Agregar participante
2.-Lista de participantes
3.-Búsqueda de participante por dorsal
4.-Guardar Participantes en archivo
5.-Cargar Participantes desde archivo
6.-Borrar participante
He conseguido implementar bien las dos primeras opciones. El problema me ha venido con el resto.
En el punto 3 hay que hacer una búsqueda por dorsal y que se muestren los datos del participante, tengo la impresión de que no debe ser muy difícil pero ni idea oye...
El 4 y el 5 lo mismo, no sé como guardar toda la información del record en un archivo y, por lo tanto no sé como cargar un archivo externo que sobreescriba el record del programa.
Y para terminar, no sé como borrar un participante en concreto del récord, primero porque necesito saber como buscar uno (apartado 3) y luego no sé cómo borrarlo.
En fin, no pido que me digáis todos los puntos que me faltan, con uno me conformo xDDD
Gracia de antemano.