Pascal/Turbo Pascal - Ayuda archivos y listas!

   
Vista:

Ayuda archivos y listas!

Publicado por Jesus (1 intervención) el 18/01/2011 22:44:54
Buenas a todos!!

Gracias por colaborar todos en lo que podamos, es un auténtico placer.

Os propongo una duda:

Tengo un archivo binario en Turbo Pascal, y quiero hacer un procedimiento para hacer modificaciones de los registros que tengo dentro de los archivos y volver a tener ese archivos con los cambios. A su vez quiero otro procedimiento que me ordene esos registros dentro del archivo binario y estos queden en el propio archivo.

Para el primero pensé en hacer un archivo binario auxiliar, pero para el segundo pensé en listas... ¿¿pero como pasos los registros de los archivos a las listas??

WHERE NOT EOF(ArchivoBinario) DO
Read(ArchivoBinario,RegistroAuxiliar) {ya lo tengo en el registro, como se crea la lista??) =S


Haber si alguien me puede ayudar, se lo agradecería.

Un saludo!
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:Ayuda archivos y listas!

Publicado por epayan (3 intervenciones) el 27/01/2011 08:43:14
he aqui un ejemplo, por aih lo depuras a tu necesidad

{aqui te pongo los tipos para que tengas una idea}
Type
TipoRegistro = Record
Numero : Longint;
Nombre : string[30];
Direccion: String[40];
Telefono : String[20];
Fecha_Nac: String[10];
End;

TipoArchivo = file of TipoRegistro;

ApuntadorRegistro = ^TipoApuntadorRegistro;

TipoApuntadorRegistro = Record
Agenda : TipoRegistro;
Anterior : ApuntadorRegistro;
Siguiente: ApuntadorRegistro;
End;

{aqui el procedimiento}

Procedure CargaArchivoAMemoria(var AArchivo:TipoArchivo; TIRegistro:TipoRegistro; var Inicio,Final,TIApuntadorRegistro:ApuntadorRegistro);
Var {Declaramos las variables locales}
TIApuntadorAuxiliar : ApuntadorRegistro;
Begin
textattr:=14+4*16; {atributos de pantalla}
gotoxy(5,24);Write('Cargando Archivo A Memoria..');
While not eof(AArchivo) do {hacemos el ciclo mientras no sea fin del archivo}
Begin
Read(AArchivo,TIRegistro); {Leemos el Registro segun posicion del puntero}
new(TIApuntadorAuxiliar); {creamos un nuevo direccion del apuntador}
TIApuntadorAuxiliar^.Agenda:=TIRegistro;{le pasamos los datos capturados del registro}
TIApuntadorAuxiliar^.Anterior:=Nil;{inicializamos la liga anterior a nil}
TIApuntadorAuxiliar^.Siguiente:=Nil;{Inicializamos la liga siguiente a nil}
If Inicio = Nil then {si es el primer nodo de la lista}
Begin
Inicio:=TIApuntadorAuxiliar;{inicio apunta a la misma direccion}
Final:=TIApuntadorAuxiliar; {final apunta a lamisma direccion}
End
Else
Begin
Final^.Siguiente:=TIApuntadorAuxiliar; {el registro actual apunta hacia la nueva direccion}
TIApuntadorAuxiliar^.Anterior:=Final; {el registro nuevo apunta hacia la direccion de memoria anterior}
Final:=TIApuntadorAuxiliar; {el el apuntado final apunta a si mismo}
TIApuntadorRegistro:=TiApuntadorAuxiliar;
End;
End;{while}
textattr:=0+2*16; {atributos de pantalla}
Gotoxy(4,24);Write(' ');
End;
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

RE:Ayuda archivos y listas!

Publicado por Jesus (3 intervenciones) el 18/02/2011 21:51:27
Gracias jefe!

Justo lo que buscaba!
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