Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/05/2009, 03:03
Avatar de klmnt
klmnt
 
Fecha de Ingreso: diciembre-2007
Mensajes: 34
Antigüedad: 17 años, 3 meses
Puntos: 1
Pregunta Error puntero Pascal

Buenas!

Llevo probando de todas las maneras y me sigue dando error en el mismo sitio. Seguro que es una tontería pero ya me estaba desesperando xDD

Lo que intento es quedarme (que se salga del while) cuando encuentre el nombre (info.nombre: string[20]) que tiene la variable dep1 (string[20]) o cuando llegue al final de la lista.

listaDep es un RECORD con info (tipo con nombre y descripcion) y siguiente que es un puntero que apunta al siguiente nodo. Con la parte de NIL lo recorre sin problemas pero en cuanto le meto la segunda condición el programa se va. Aquí dejo el código:

Código:
PROCEDURE imprimeDepartamentos (lista: tListaDepartamentos);

BEGIN
  CLRSCR;
  WHILE ((lista<>NIL) OR (lista^.info.nombre='dep1')) DO
    BEGIN
      WRITELN('Nombre del Departamento: ', lista^.info.nombre);
      WRITELN('Descipcion: ', lista^.info.descripcion);
      WRITELN('Costes: ', lista^.info.costes:1:1);
      WRITELN;
      WRITELN('------------------------------------------------');
      WRITELN;
      lista:=lista^.siguiente;
    END;
  READLN;
END;
Este que pongo a continuación lo hace perfectamente, muestra todos:

Código:
PROCEDURE imprimeDepartamentos (lista: tListaDepartamentos);

BEGIN
  CLRSCR;
  WHILE lista<>NIL DO
    BEGIN
      WRITELN('Nombre del Departamento: ', lista^.info.nombre);
      WRITELN('Descipcion: ', lista^.info.descripcion);
      WRITELN('Costes: ', lista^.info.costes:1:1);
      WRITELN;
      WRITELN('------------------------------------------------');
      WRITELN;
      lista:=lista^.siguiente;
    END;
  READLN;
END;
Un saludo y gracias!