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!