Pascal/Turbo Pascal - devolver lista

 
Vista:

devolver lista

Publicado por nacho_fdez (1 intervención) el 18/01/2007 17:34:07
Hola a todos.tengo una pequeña duda.He echo un procedimiento en el cual le paso un fichero con varios campos,ordeno este fichero por el campo nombre mediante una lista dinamica enlazada, pero al mostrar la lista me la muestra una sola vez.Cuando quiero que me la muestre otra vez no me muestra nada.No se que esta mal.

Procedure MostrarLista(P:PNodo);
BEGIN
WHILE P <> Nil DO
BEGIN
Writeln(P^.Registro.titulo);
Readln;
P:=P^.Sig;
END;
END;

Procedure ListarFichero(VAR Fich.......);
VAR
Nuevo,P,Anterior:PNodo;
fin:boolean;
Clave:integer;
BEGIN
PosicionC:=0;
WHILE NOT EOF (Fich) DO
BEGIN
Seek(Fich,PosicionC);
Read(Fich,bucketC);
New(Nuevo);
Nuevo^.Registro:=bucketC.lista_reg_C[j];
Nuevo^.Sig:=Nil;
Anterior:=Nil;
IF Primero = Nil THEN
BEGIN
Primero:=Nuevo;
END
ELSE
BEGIN
P:=Primero;
fin:=false;
WHILE (P <> Nil) AND (NOT fin) DO
BEGIN
IF P^.Clave < Nuevo^.Clave THEN
BEGIN
Anterior:=P;
P:=P^.Sig;
END
ELSE
BEGIN
IF (Anterior<>Nil) THEN
BEGIN
Anterior^.Sig:=Nuevo;
Nuevo^.Sig:=P;
fin:=true;
END
ELSE
BEGIN
Nuevo^.Sig:=P;
Primero:=Nuevo;
fin:=true;
END;
END;
END;
IF NOT fin THEN
BEGIN
Anterior^.Sig:=Nuevo;
Nuevo^.Sig:=Nil;
END;
END;
END;
PosicionC:=PosicionC+1;
END;
MostrarLista(Primero);
END;

.................

MENU:
......
3: BEGIN
Primero:=Nil;
fin:=false;
ListarFichero(THash_C,OV_C);
END;

Si alguien me puede ayudar por favor.Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:devolver lista

Publicado por nachete (1 intervención) el 18/01/2007 19:15:03
Solucionado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar