[ Foro de Pascal ]

Programa para control de una pieza

28-Dec-2011 22:06
Lucas Matias Guardón
3 Respuestas

Estimado; necesito ayuda con un programita que hice para mi lugar de trabajo para llevar el control de una pieza, un ADM, no se si sabes lo que es, pero esta compuesto por varias piezas individuales como podran ver en el programa, es con archivos pero tengo el problema que no me mustra las variables de los registros, osea el contenido, lo que yo cargo, lo recorri de arriba a bajo y no se que es, me podran ayudar=? dejo el programa...estoy usando free pascal.


PROGRAM STOCKADM3 (INPUT,OUTPUT);

USES CRT;

TYPE
 MATERIAL=RECORD  {Registro que va a guarad el modelo del ADM; una breve descripcion y la cantidad en stock}
           MODELO:INTEGER;
           DESC:STRING[10];
           NRO:INTEGER;
           CAMISA:INTEGER;
           MAZA:INTEGER;
           ARO:INTEGER;
          END;
 MATE= FILE OF MATERIAL;

VAR
 ARCHI:MATE;
 MAT:MATERIAL;
 RTA,RTA1,RTA2,RES:CHAR;
 OP,N:INTEGER;


PROCEDURE NILSO (); {Es para indentificar la empresa en todo momento del uso del programa}
 BEGIN
  gotoxy(33,1);textcolor(8);write('~~~~~~~~~~~~~~~~~~~~');
  gotoxy(33,2);textcolor(8);write('~');
  gotoxy(33,3);textcolor(8);write('~');
  gotoxy(33,4);textcolor(8);write('~');
  gotoxy(33,5);textcolor(8);write('~');
  gotoxy(33,5);textcolor(8);write('~~~~~~~~~~~~~~~~~~~');
  gotoxy(52,2);textcolor(8);write('~');
  gotoxy(52,3);textcolor(8);write('~');
  gotoxy(52,4);textcolor(8);write('~');
  gotoxy(52,5);textcolor(8);write('~');
  gotoxy(35,3);textcolor(9);
  WRITELN('NILSO TORRE S.A.');
  gotoxy(29,7);textcolor(10);write('+++++++++++++++++++++++++++');
  gotoxy(29,9);textcolor(10);write('+++++++++++++++++++++++++++');
  gotoxy(29,8);textcolor(10);write('+');
  gotoxy(55,8);textcolor(10);write('+');
  gotoxy(30,8);textcolor(13);
  WRITELN('CONTROL DE STOCK DE ADMïS');
 END;


PROCEDURE ENTRADA (VAR RTA1:CHAR; VAR MAT:MATERIAL;VAR N:INTEGER); {Realiza la carga de stock, cantidad de material comprado}
  VAR
   OPC,POS,CANTI,F,C:INTEGER;
   RET:CHAR;
  BEGIN
   CLRSCR;
   NILSO();
   RTA1:='S'; RET:=' ';
   ASSIGN(ARCHI,'C:\NilsoTorre\STOCKadm.DAT');
   RESET(ARCHI); GOTOXY(29,11); TEXTCOLOR(14);
   WRITE('MODELO');
   F:=11; C:=39;
   GOTOXY(C,F);
   TEXTCOLOR(4);
   WHILE NOT EOF(ARCHI) DO
    BEGIN
     READ(ARCHI,MAT);
     WRITE(MAT.MODELO);
     C:=C+5; GOTOXY(C,F);
    END;
   F:=F+2;
   GOTOXY(29,F);TEXTCOLOR(14);
   WRITE('CAMISA');
   GOTOXY(39,F);C:=39;
   TEXTCOLOR(4);
   WHILE NOT EOF(ARCHI) DO
    BEGIN
     READ(ARCHI,MAT);
     WRITE(MAT.CAMISA);
     C:=C+3; GOTOXY(C,F);
    END;
   F:=F+2;
   GOTOXY(29,F);TEXTCOLOR(14);
   WRITE('MAZA');
   GOTOXY(39,F);C:=39;
   TEXTCOLOR(4);
   WHILE NOT EOF(ARCHI) DO
    BEGIN
     READ(ARCHI,MAT);
     WRITE(MAT.MAZA);
     C:=C+3; GOTOXY(C,F);
    END;
   F:=F+2;
   GOTOXY(29,F);TEXTCOLOR(14);
   WRITE('ARO');
   GOTOXY(39,F);C:=39;
   TEXTCOLOR(4);
   WHILE NOT EOF(ARCHI) DO
    BEGIN
     READ(ARCHI,MAT);
     WRITE(MAT.ARO);
     C:=C+3; GOTOXY(C,F);
    END;
   F:=F+2;
   GOTOXY(29,F);TEXTCOLOR(14);
   WRITE('NRO');
   GOTOXY(39,F);C:=39;
   TEXTCOLOR(4);
   WHILE NOT EOF(ARCHI) DO
    BEGIN
     READ(ARCHI,MAT);
     WRITE(MAT.NRO:2);
     C:=C+3; GOTOXY(C,F);
    END;
   GOTOXY(4,F+3);TEXTCOLOR(15);
   WRITE('PARA VOLVER AL MENé ANTERIOR PRECIONE "R"; CUALQUIER TECLA CONTINUA ');READLN(RET);
   IF (RET<>'R') AND (RET<>'r') THEN BEGIN
  WHILE (RTA1='S') or (RTA1='s') DO
    BEGIN
     CLRSCR; NILSO();
     RESET(ARCHI); GOTOXY(29,11); TEXTCOLOR(14);
     WRITE('MODELO');
     F:=11; C:=37;
     GOTOXY(C,F);
     TEXTCOLOR(4);
     WHILE NOT EOF(ARCHI) DO
      BEGIN
       READ(ARCHI,MAT);
       WRITE(MAT.MODELO);
       C:=C+5; GOTOXY(C,F);
      END;
     F:=F+2;
     GOTOXY(29,F);TEXTCOLOR(14);
     WRITE('CAMISA');
     GOTOXY(37,F);C:=37;
     TEXTCOLOR(4);
     WHILE NOT EOF(ARCHI) DO
      BEGIN
       READ(ARCHI,MAT);
       WRITE(MAT.CAMISA);
       C:=C+3; GOTOXY(C,F);
      END;
     F:=F+2;
     GOTOXY(29,F);TEXTCOLOR(14);
     WRITE('MAZA');
     GOTOXY(37,F);C:=37;
     TEXTCOLOR(4);
     WHILE NOT EOF(ARCHI) DO
      BEGIN
       READ(ARCHI,MAT);
       WRITE(MAT.MAZA);
       C:=C+8; GOTOXY(C,F);
      END;
     F:=F+2;
     GOTOXY(29,F);TEXTCOLOR(14);
     WRITE('ARO');
     GOTOXY(37,F);C:=37;
     TEXTCOLOR(4);
     WHILE NOT EOF(ARCHI) DO
      BEGIN
       READ(ARCHI,MAT);
       WRITE(MAT.ARO);
       C:=C+8; GOTOXY(C,F);
      END;
     F:=F+2;
    GOTOXY(29,F);TEXTCOLOR(14);
    WRITE('NRO');
    GOTOXY(37,F);C:=37;
    TEXTCOLOR(4);
    WHILE NOT EOF(ARCHI) DO
     BEGIN
      READ(ARCHI,MAT);
      WRITE(MAT.NRO:2);
      C:=C+8; GOTOXY(C,F);
     END;
     CLOSE(ARCHI);
     GOTOXY(4,F+3);TEXTCOLOR(2);
     WRITE('ELIJA EL MODELO DE ADM A CARGAR STOCK (segun el nro interno): ');
     READLN(POS);
     CLRSCR; NILSO();
     POS:=POS-1; RESET(ARCHI);
     SEEK(ARCHI,POS); READ(ARCHI,MAT);
     GOTOXY(4,12);TEXTCOLOR(9);
     WRITELN('VA A CARGAR STOCK DEL SIGUIENTE MATERIAL: ');
     GOTOXY(28,14); TEXTCOLOR(14);
     WRITELN('NRO MODELO DESCRIPCION');
     GOTOXY(28,15);
     WRITELN('--- ------ -----------');
     GOTOXY(28,16); TEXTCOLOR(4);
     WRITELN(MAT.NRO:3,MAT.MODELO:6,'  ',MAT.DESC);
     CLOSE(ARCHI);
     GOTOXY(4,18);TEXTCOLOR(9);
     WRITE('INGRESE LA CANTIDAD A CARGAR DE CAMISAS: '); READLN(CANTI);
     RESET(ARCHI);
     SEEK(ARCHI,POS); READ(ARCHI,MAT);
     MAT.CAMISA:=MAT.CAMISA+CANTI;
     SEEK(ARCHI,POS); WRITE(ARCHI,MAT);
     CLOSE(ARCHI);
     GOTOXY(4,20);
     WRITE('INGRESE LA CANTIDAD A CARGAR DE MAZA DENTRALES: '); READLN(CANTI);
     RESET(ARCHI);
     SEEK(ARCHI,POS); READ(ARCHI,MAT);
     MAT.MAZA:=MAT.MAZA+CANTI;
     SEEK(ARCHI,POS); WRITE(ARCHI,MAT);
     CLOSE(ARCHI);
     GOTOXY(4,22);
     WRITE('INGRESE LA CANTIDAD A CARGAR DE AROS PORTA ORRINGïS: '); READLN(CANTI);
     RESET(ARCHI);
     SEEK(ARCHI,POS); READ(ARCHI,MAT);
     MAT.ARO:=MAT.ARO+CANTI;
     SEEK(ARCHI,POS); WRITE(ARCHI,MAT);
     CLOSE(ARCHI);
     CLRSCR; NILSO();
     GOTOXY(24,14); TEXTCOLOR(3);
     WRITE('DESEA CARGAR STOCK DE OTRO MATERIAL?'); READLN(RTA1);
    END;
   END;
    CLRSCR;
   END;


PROCEDURE SALIDA (VAR RTA2:CHAR; VAR MAT:MATERIAL;VAR N:INTEGER); {Modifica el stock con la entrega de los materiales}
 VAR
   OPC,POS,CANTI,F,C:INTEGER;
   RET:CHAR;
  BEGIN
   CLRSCR;
   NILSO();
   RTA1:='S'; RET:=' ';
   ASSIGN(ARCHI,'C:\NilsoTorre\STOCKadm.DAT');
   RESET(ARCHI); GOTOXY(29,11); TEXTCOLOR(14);
   WRITE('MODELO');
   F:=11; C:=37;
   GOTOXY(C,F);
   TEXTCOLOR(4);
   WHILE NOT EOF(ARCHI) DO
    BEGIN
     READ(ARCHI,MAT);
     WRITE(MAT.MODELO);
     C:=C+3; GOTOXY(C,F);
    END;
   F:=F+2;
   GOTOXY(29,F);TEXTCOLOR(14);
   WRITE('CAMISA');
   GOTOXY(37,F);C:=37;
   TEXTCOLOR(4);
   WHILE NOT EOF(ARCHI) DO
    BEGIN
     READ(ARCHI,MAT);
     WRITE(MAT.CAMISA);
     C:=C+3; GOTOXY(C,F);
    END;
   F:=F+2;
   GOTOXY(29,F);TEXTCOLOR(14);
   WRITE('MAZA');
   GOTOXY(37,F);C:=37;
   TEXTCOLOR(4);
   WHILE NOT EOF(ARCHI) DO
    BEGIN
     READ(ARCHI,MAT);
     WRITE(MAT.MAZA);
     C:=C+5; GOTOXY(C,F);
    END;
   F:=F+2;
   GOTOXY(29,F);TEXTCOLOR(14);
   WRITE('ARO');
   GOTOXY(37,F);C:=37;
   TEXTCOLOR(4);
   WHILE NOT EOF(ARCHI) DO
    BEGIN
     READ(ARCHI,MAT);
     WRITE(MAT.ARO);
     C:=C+8; GOTOXY(C,F);
    END;
   F:=F+2;
   GOTOXY(29,F);TEXTCOLOR(14);
   WRITE('NRO');
   GOTOXY(37,F);C:=37;
   TEXTCOLOR(4);
   WHILE NOT EOF(ARCHI) DO
    BEGIN
     READ(ARCHI,MAT);
     WRITE(MAT.NRO:2);
     C:=C+8; GOTOXY(C,F);
    END;
   GOTOXY(4,F+3);TEXTCOLOR(15);
   WRITE('PARA VOLVER AL MENé ANTERIOR PRECIONE "R"; CUALQUIER TECLA CONTINUA ');READLN(RET);
   IF (RET<>'R') AND (RET<>'r') THEN BEGIN
  WHILE (RTA1='S') or (RTA1='s') DO
    BEGIN
     CLRSCR; NILSO();
     RESET(ARCHI); GOTOXY(29,11); TEXTCOLOR(14);
     WRITE('MODELO');
     F:=11; C:=37;
     GOTOXY(C,F);
     TEXTCOLOR(4);
     WHILE NOT EOF(ARCHI) DO
      BEGIN
       READ(ARCHI,MAT);
       WRITE(MAT.MODELO);
       C:=C+5; GOTOXY(C,F);
      END;
     F:=F+2;
     GOTOXY(29,F);TEXTCOLOR(14);
     WRITE('CAMISA');
     GOTOXY(37,F);C:=37;
     TEXTCOLOR(4);
     WHILE NOT EOF(ARCHI) DO
      BEGIN
       READ(ARCHI,MAT);
       WRITE(MAT.CAMISA);
       C:=C+3; GOTOXY(C,F);
      END;
     F:=F+2;
     GOTOXY(29,F);TEXTCOLOR(14);
     WRITE('MAZA');
     GOTOXY(37,F);C:=37;
     TEXTCOLOR(4);
     WHILE NOT EOF(ARCHI) DO
      BEGIN
       READ(ARCHI,MAT);
       WRITE(MAT.MAZA);
       C:=C+8; GOTOXY(C,F);
      END;
     F:=F+2;
     GOTOXY(29,F);TEXTCOLOR(14);
     WRITE('ARO');
     GOTOXY(37,F);C:=37;
     TEXTCOLOR(4);
     WHILE NOT EOF(ARCHI) DO
      BEGIN
       READ(ARCHI,MAT);
       WRITE(MAT.ARO);
       C:=C+8; GOTOXY(C,F);
      END;
     F:=F+2;
     GOTOXY(29,F);TEXTCOLOR(14);
     WRITE('NRO');
     GOTOXY(37,F);C:=37;
     TEXTCOLOR(4);
     WHILE NOT EOF(ARCHI) DO
      BEGIN
       READ(ARCHI,MAT);
       WRITE(MAT.NRO:2);
       C:=C+8; GOTOXY(C,F);
      END;
     CLOSE(ARCHI);
     GOTOXY(4,F+3);TEXTCOLOR(2);
     WRITE('ELIJA EL MODELO DE ADM A ENTREGAR (segun el nro interno): ');
     READLN(POS);
     CLRSCR; NILSO();
     POS:=POS-1; RESET(ARCHI);
     SEEK(ARCHI,POS); READ(ARCHI,MAT);
     GOTOXY(4,12);TEXTCOLOR(9);
     WRITELN('VA A ENTREGAR STOCK DEL SIGUIENTE MATERIAL: ');
     GOTOXY(28,14); TEXTCOLOR(14);
     WRITELN('NRO MODELO DESCRIPCION');
     GOTOXY(28,15);
     WRITELN('--- ------ -----------');
     GOTOXY(28,16); TEXTCOLOR(4);
     WRITELN(MAT.NRO:3,MAT.MODELO:6,'  ',MAT.DESC);
     CLOSE(ARCHI);
     GOTOXY(4,18);TEXTCOLOR(9);
     WRITE('INGRESE LA CANTIDAD A ENTREGAR DE CAMISAS: '); READLN(CANTI);
     RESET(ARCHI);
     SEEK(ARCHI,POS); READ(ARCHI,MAT);
     MAT.CAMISA:=MAT.CAMISA-CANTI;
     SEEK(ARCHI,POS); WRITE(ARCHI,MAT);
     CLOSE(ARCHI);
     GOTOXY(4,20);
     WRITE('INGRESE LA CANTIDAD A ENTREGAR DE MAZA CENTRALES: '); READLN(CANTI);
     RESET(ARCHI);
     SEEK(ARCHI,POS); READ(ARCHI,MAT);
     MAT.MAZA:=MAT.MAZA-CANTI;
     SEEK(ARCHI,POS); WRITE(ARCHI,MAT);
     CLOSE(ARCHI);
     GOTOXY(4,22);
     WRITE('INGRESE LA CANTIDAD A ENTREGAR DE AROS PORTA ORRINGïS: '); READLN(CANTI);
     RESET(ARCHI);
     SEEK(ARCHI,POS); READ(ARCHI,MAT);
     MAT.ARO:=MAT.ARO-CANTI;
     SEEK(ARCHI,POS); WRITE(ARCHI,MAT);
     CLOSE(ARCHI);
     CLRSCR; NILSO();
     GOTOXY(24,14); TEXTCOLOR(3);
     WRITE('DESEA CARGAR STOCK DE OTRO MATERIAL?'); READLN(RTA1);
    END;
   END;
    CLRSCR;
   END;


PROCEDURE INICIO (VAR N:INTEGER;VAR RES:CHAR);
 VAR
  RET:CHAR;
 BEGIN
  CLRSCR;
  NILSO();
  N:=0; RES:='S'; RET:=' ';
  ASSIGN(ARCHI,'C:\NilsoTorre\STOCKadm.DAT'); {Asingno la variable al archivo Fisico, creado manualmente en el S.O.}
  REWRITE(ARCHI);
  GOTOXY(4,11);TEXTCOLOR(15);
  WRITE('PARA VOLVER AL MENé ANTERIOR PRECIONE "R"; CUALQUIER TECLA CONTINUA ');READLN(RET);
  IF (RET<>'R') AND (RET<>'r') THEN BEGIN
 WHILE (RES='S') or (RES='s') DO
   BEGIN
    CLRSCR; NILSO();
    GOTOXY(4,11);TEXTCOLOR(9);
    WRITE('INGRESE EL MODELO DE ADM, COMENZANDO CON EL MODELO MAS CHICO: ');
    N:=N+1;
    MAT.NRO:=N;
    READLN(MAT.MODELO);
    GOTOXY(4,13);
    WRITE('INGRESE UNA BREVE DESCRIPCION PARA EL MODELO: ');
    READLN(MAT.DESC);
    MAT.CAMISA:=0;
    MAT.MAZA:=0;
    MAT.ARO:=0;
    WRITE(ARCHI,MAT);
    CLRSCR; NILSO();
    GOTOXY(20,14);TEXTCOLOR(3);
    WRITE('DESEA CONTINUAR CON LA CARGA DE OTRO MATERIAL?'); READLN(RES);
   END;
  END;
  CLOSE(ARCHI);
 END;

PROCEDURE CARGAMAT(VAR N:INTEGER;MAT:MATERIAL);
 VAR
  POS,C:INTEGER;
  RES,RET:CHAR;
 BEGIN
  ASSIGN(ARCHI,'C:\NilsoTorre\STOCKadm.DAT');
  RESET(ARCHI);
  C:=FILESIZE(ARCHI);
  N:=C;
  RES:='S'; RET:=' ';
  POS:=C;
  GOTOXY(4,11);TEXTCOLOR(15);
  WRITE('PARA VOLVER AL MENé ANTERIOR PRECIONE "R"; CUALQUIER TECLA CONTINUA ');READLN(RET);
  IF (RET<>'R') AND (RET<>'r') THEN BEGIN
 WHILE (RES='S') or (RES='s') DO
   BEGIN
    CLRSCR; NILSO();
    GOTOXY(4,11);TEXTCOLOR(9);
    SEEK(ARCHI,POS);
    WRITE('INGRESE EL MODELO DE ADM, COMENZANDO CON EL MODELO MAS CHICO: ');
    N:=N+1;
    MAT.NRO:=N;
    READLN(MAT.MODELO);
    GOTOXY(4,13);
    WRITE('INGRESE UNA BREVE DESCRIPCION PARA EL MODELO: ');
    READLN(MAT.DESC);
    MAT.CAMISA:=0;
    MAT.MAZA:=0;
    MAT.ARO:=0;
    WRITE(ARCHI,MAT);
    CLRSCR; NILSO();
    GOTOXY(20,14);TEXTCOLOR(3);
    POS:=POS+1;
    WRITE('DESEA CONTINUAR CON LA CARGA DE OTRO MATERIAL?'); READLN(RES);
   END;
 END;
  CLOSE(ARCHI);
 END;

PROCEDURE SALUDO(); {Saludo inicial al abrir el programa}
 BEGIN
  CLRSCR;NILSO();
  GOTOXY(10,11);TEXTCOLOR(9);
  WRITELN('BIENVENIDOS AL CONTROL DE STOCK DE ADMïS DE NILSO TORRE S.A.');
  GOTOXY(24,13);TEXTCOLOR(15);
  WRITELN('PRECIONE UN TECLA PARA CONTINUAR');
  GOTOXY(1,14);DELLINE();GOTOXY(40,15);
  READLN();
 END;


PROCEDURE MENUPPAL (VAR OP:INTEGER); {Menu principal, elijo entre cargar el stock o entregar el mismo}
 VAR
  F,C:INTEGER;
 BEGIN
  CLRSCR;
  NILSO();
  ASSIGN(ARCHI,'C:\NilsoTorre\STOCKadm.DAT');
  GOTOXY(3,11);TEXTCOLOR(9);
  WRITELN('ELIJA UNA OPCIàN DEL MENé: ');
  GOTOXY(3,12);WRITE('----- --- ------ -- -----');
  GOTOXY(20,14);
  WRITELN('1_ENTRADA DE MATERIA        2_SALIDA DE MATERIAL');
  GOTOXY(20,16);
  WRITELN('3_CARGA NUEVO MATERIAL      4_INICIALIZA(reset programa)');
  REPEAT
   READLN(OP)
  UNTIL (OP=1) OR (OP=2) OR (OP=3) OR (OP=4);
  CLRSCR;
  NILSO();
  IF OP=1 THEN
   BEGIN
    ENTRADA (RTA1,MAT,N);
   END
  ELSE
   BEGIN
    IF OP=2 THEN
     BEGIN
      SALIDA (RTA2,MAT,N);
     END
    ELSE
     IF OP=3 THEN
      BEGIN
       CARGAMAT(N,MAT);
      END
     ELSE
      IF OP=4 THEN
       BEGIN
        INICIO(N,RES);
       END
   END;
  CLRSCR; NILSO();
  GOTOXY(4,11); TEXTCOLOR(9);
  WRITELN('LISTADO DE STOCK, HASTA EL MOMENTO: ');
  GOTOXY(4,12); WRITELN('******* ** *****  ***** ** ********');
  GOTOXY(29,14); TEXTCOLOR(14);
  RESET(ARCHI);
  WRITE('MODELO');
  F:=14; C:=37;
  GOTOXY(C,F);
  TEXTCOLOR(4);
  WHILE NOT EOF(ARCHI) DO
   BEGIN
    READ(ARCHI,MAT);
    WRITE(MAT.MODELO);
    C:=C+5; GOTOXY(C,F);
   END;
  F:=F+2;
  GOTOXY(29,F);TEXTCOLOR(14);
  WRITE('CAMISA');
  GOTOXY(37,F);C:=37;
  TEXTCOLOR(4);
  WHILE NOT EOF(ARCHI) DO
   BEGIN
    READ(ARCHI,MAT);
    WRITE(MAT.CAMISA);
    C:=C+3; GOTOXY(C,F);
   END;
  F:=F+2;
  GOTOXY(29,F);TEXTCOLOR(14);
  WRITE('MAZA');
  GOTOXY(37,F);C:=37;
  TEXTCOLOR(4);
  WHILE NOT EOF(ARCHI) DO
   BEGIN
    READ(ARCHI,MAT);
    WRITE(MAT.MAZA);
    C:=C+8; GOTOXY(C,F);
   END;
  F:=F+2;
  GOTOXY(29,F);TEXTCOLOR(14);
  WRITE('ARO');
  GOTOXY(37,F);C:=37;
  TEXTCOLOR(4);
  WHILE NOT EOF(ARCHI) DO
   BEGIN
    READ(ARCHI,MAT);
    WRITE(MAT.ARO);
    C:=C+8; GOTOXY(C,F);
   END;
  F:=F+2;
  GOTOXY(29,F);TEXTCOLOR(14);
  WRITE('NRO');
  GOTOXY(37,F);C:=37;
  TEXTCOLOR(4);
  WHILE NOT EOF(ARCHI) DO
   BEGIN
   READ(ARCHI,MAT);
   WRITE(MAT.NRO:2);
   C:=C+8; GOTOXY(C,F);
  END;
 CLOSE(ARCHI);READLN();
END;

PROCEDURE LISTA(MAT:MATERIAL); {Al terminar todas las tareas me muestra el stock actualizado al cerrar el programa}
 VAR
  F,C:INTEGER;
 BEGIN
  CLRSCR; NILSO();
  GOTOXY(15,11);TEXTCOLOR(9);
  WRITELN('LISTA DE STOCK: ');
  GOTOXY(15,12);WRITELN('~~~~~ ~~ ~~~~~~');
  RESET(ARCHI);
  GOTOXY(29,13);TEXTCOLOR(14);
  WRITE('MODELO');
  F:=13; C:=37;
  GOTOXY(C,F);
  TEXTCOLOR(4);
  WHILE NOT EOF(ARCHI) DO
   BEGIN
    READ(ARCHI,MAT);
    WRITE(MAT.MODELO);
    C:=C+5; GOTOXY(C,F);
   END;
  F:=F+2;
  GOTOXY(29,F);TEXTCOLOR(14);
  WRITE('CAMISA');
  GOTOXY(37,F);C:=37;
  TEXTCOLOR(4);
  WHILE NOT EOF(ARCHI) DO
   BEGIN
    READ(ARCHI,MAT);
    WRITE(MAT.CAMISA);
    C:=C+3; GOTOXY(C,F);
   END;
  F:=F+2;
  GOTOXY(29,F);TEXTCOLOR(14);
  WRITE('MAZA');
  GOTOXY(37,F);C:=37;
  TEXTCOLOR(4);
  WHILE NOT EOF(ARCHI) DO
   BEGIN
    READ(ARCHI,MAT);
    WRITE(MAT.MAZA);
    C:=C+8; GOTOXY(C,F);
   END;
  F:=F+2;
  GOTOXY(29,F);TEXTCOLOR(14);
  WRITE('ARO');
  GOTOXY(37,F);C:=37;
  TEXTCOLOR(4);
  WHILE NOT EOF(ARCHI) DO
   BEGIN
    READ(ARCHI,MAT);
    WRITE(MAT.ARO);
    C:=C+8; GOTOXY(C,F);
   END;
  F:=F+2;
  GOTOXY(29,F);TEXTCOLOR(14);
  WRITE('NRO');
  GOTOXY(37,F);C:=37;
  TEXTCOLOR(4);
  WHILE NOT EOF(ARCHI) DO
   BEGIN
    READ(ARCHI,MAT);
    WRITE(MAT.NRO:2);
    C:=C+8; GOTOXY(C,F);
   END;
  CLOSE(ARCHI); READLN();
  CLRSCR; NILSO();
  GOTOXY(15,13); TEXTCOLOR(3);
  WRITELN('PARA CONTINUAR CON EL CIERRE DEL PROGRAMA OPRIMA UNA TECLA');
  READLN();
 END;
BEGIN {Cuerpo del programa principla}
  SALUDO();
  RTA:='N';
  WHILE (RTA='N') or (RTA='n') DO
   BEGIN
    CLRSCR;
    MENUPPAL(OP);
    CLRSCR; NILSO();
    GOTOXY(30,14);TEXTCOLOR(3);
    WRITELN('DESEA SALIR DEL PROGRAMA?');
    READLN(RTA);
   END;
   LISTA(MAT);
 END.


28-Dec-2011 22:16
Nacho Cabanes (+83)

¿Has visto los ejemplos del hilo que se llama "Ejemplo básico de agenda con array y record"?  ¿Los entiendes?  ¿Qué dudas tienes con ellos?

Ese programa tiene 660 líneas y no sigue ninguna de las recomendaciones que te he dicho en otros hilos del foro. Empieza por algo sencillo, asegúrate de que funcione, y vas probando poco a poco y ampliando cuando te asegures de que un bloque funciona correctamente.

Depurar un programa monolítico de 660 líneas, repetitivo, sin apenaas comentarios y lleno de variables globales, es algo MUY tedioso. Así que en general sólo podremos ayudarte con dudas concretas (del estilo de "¿por qué no compila la línea 36?") o con ideas de cómo afrontar un proyecto. No creo que nadie del foro tenga el tiempo libre suficiente para rehacer un programa de 660 líneas que no funciona y que no sabemos qué pretende hacer en cada bloque.

Si escuchas (lees) lo que te decimos, aprenderás de tus errores anteriores. Si filtras los errores hasta zonas pequeñas de código, conseguirás que sea fácil ayudarte. Si no haces ninguna de esas dos cosas, inevitablemente te atascarás.


29-Dec-2011 00:25
Luis Torres (+18)

¿Y qué pasó con el programa que estaba en el otro post?, ¿lo revisaste?, ¿te funcionó?, cuéntame.


05-Jan-2012 15:31
Lucas Matias Guardón

Si luis, lo pude terminar, funciona de 10...muchas gracias por todo los consejos... ya estoy trabajando en otro, ni bien surga una duda no voy en dudar en consultar....gracias...






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)