• Miércoles 16 de Octubre de 2019, 06:56

Autor Tema:  Problema Con Record Y Files  (Leído 580 veces)

zelinkavo

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Problema Con Record Y Files
« en: Viernes 25 de Enero de 2008, 02:45 »
0
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:

-------------------------------------------------------------------------------------------------------------------------------
Código: Text
  1. program menu11;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. SysUtils;
  7.  
  8. const
  9. max_participantes=50; max_vueltas=100; max_long_nombre=255;
  10. type
  11. t_participante=record
  12. nombre:string[max_long_nombre];
  13. apellido:string[max_long_nombre];
  14. dorsal:integer;
  15. equipo:string[max_long_nombre];
  16. end;
  17. datos=array [1..max_participantes] of t_participante;
  18. var
  19. lista_completa:datos;
  20. opc,cantidad,c:integer;
  21. res:string[1];
  22. busqueda:integer;
  23. begin
  24. {inicializo las variables}
  25. repeat
  26. {imprimo el titulo del menu}
  27. writeln;
  28. writeln('------------------------');
  29. writeln('Gestion de Participantes');
  30. writeln('------------------------');
  31. writeln;
  32. writeln;
  33. {imprimo el menu}
  34. Writeln(' 1.-Agregar participante');
  35. Writeln(' 2.-Lista de participantes');
  36. Writeln(' 3.-Busqueda de participante');
  37. Writeln(' 4.-Guardar Participantes en archivo');
  38. Writeln(' 5.-Cargar Participantes desde archivo');
  39. Writeln(' 6.-Borrar participante');
  40. Writeln(' 7.-Salir');
  41. {pido la opcion del menu}
  42. writeln;
  43. Write(' -> Introduce la opcion que desees: ');Readln(opc);
  44. case opc of
  45. 1: //Agregar Participantes
  46. begin
  47. for cantidad:=(cantidad +1) to max_participantes do
  48. begin
  49. writeln;
  50. writeln('----------------------');
  51. writeln('Agregar Participantes');
  52. writeln('----------------------');
  53. writeln;
  54. writeln;
  55. write(' -Nombre ',cantidad,': ');
  56. readln(lista_completa[cantidad].nombre);
  57. write(' -Apellido: ');
  58. readln(lista_completa[cantidad].apellido);
  59. write(' -Dorsal: ');
  60. readln(lista_completa[cantidad].dorsal);
  61. write(' -Equipo: ');
  62. readln(lista_completa[cantidad].equipo);
  63. writeln;
  64. Write('Desea introducir otro participante? s/n: ');
  65. Readln(res);
  66. {si no, saco del ciclo}
  67. if (res='n') OR (res='N') then break;
  68. end;
  69. end;
  70. 2: //Listar Participantes
  71. begin
  72. writeln;
  73. writeln('------------------------');
  74. writeln('Lista de Participantes');
  75. writeln('------------------------');
  76. writeln;
  77. writeln;
  78. for c:=1 to cantidad do
  79. begin
  80. writeln('--------------------------------------');
  81. writeln('Nombre',c,': ',lista_completa[c].nombre);
  82. writeln('Apellido: ',lista_completa[c].apellido);
  83. writeln('Dorsal: ',lista_completa[c].dorsal);
  84. writeln('Equipo: ',lista_completa[c].equipo);
  85. writeln('-------------------------------------');
  86. writeln;
  87. end;{ciclo de impresion}
  88. end;{fin de opcion 2 reporte de productos}
  89. 3: //Buscar participantes por dorsal
  90. begin
  91. Writeln('Buscar participantes por dorsal y mostrar el resto de datos')
  92. end;
  93. 4: //Guardar participantes en un archivo
  94. begin
  95. Writeln('Guardar participantes en archivo')
  96. end;
  97. 5: //Cargar Participantes desde archivo
  98. begin
  99. Writeln('Cargar participantes desde archivo');
  100. end;
  101. 6: //Borrar participante
  102. begin
  103. Writeln('Borrar participante');
  104. end;
  105. end;{case}
  106.  
  107. until opc=7;
  108. end.
  109.  
  110.  
-----------------------------------------------------------------------------------------------------------------------------

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.