Programación General > Pascal

 Creacion y Busqueda en archivo binario

(1/1)

CristhianUNSa:
Hola a todos!!

Hice un programa en Free Pascal, el cual debe hacer lo siguiente:

Escribir un programa en pascal, convenientemente modularizado que permita crear un archivo directo conteniendo datos de libros:

código, título, autor y año de edición.

Luego, dado un autor y un año de edición, mostrar todos los libros que dicho autor editó en ese año.

La verdad que todavia no encuentro el error...

Hice un watches, y el error me da cuando le doy el valor a "fin" de mi programa en el modulo "buscar".

Mando el archivo adjunto, y espero que me puedan ayudar, la verdad que ya estoy a punto de  :hitcomp:   :D :D  ...

Muchas gracias de antemano [attachment=0:32l8x1iy]error.txt[/attachment:32l8x1iy]

eternity:
tu codigo, lo compile en Dev Pascal 1.9.2, y cuando termino de cargar un libro se me sale!

dame hasta mañana y trato de debuguearlo!

suerte  :good:

CristhianUNSa:

--- Cita de: "eternity" ---tu codigo, lo compile en Dev Pascal 1.9.2, y cuando termino de cargar un libro se me sale!

dame hasta mañana y trato de debuguearlo!

suerte  :good:
--- Fin de la cita ---

GRACIAS eternity! La verdad que ya encontre 2 errores muy bruscos en mi programa, pero todavia no logro corregir todo el prog por completo:

En la parte que dice


--- Código: Text ---procedure nuevo_reg(reg:libros); 
deberia ir

--- Código: Text ---procedure nuevo_reg([b]var[/b] reg:libros); 
El otro error estaba aqui


--- Código: Text ---     seek(arch,filesize(arch));              nuevo_reg(reg);                                        if buscar(arch,reg.codigo)=-1 then                                                begin                                                write(arch,reg);                                                writeln;  
La funcion buscar abre el archivo y lo cierra, por lo tanto, creo ke seria:


--- Código: Text ---            seek(arch,filesize(arch));                     nuevo_reg(reg);                                        if buscar(arch,reg.codigo)=-1 then                                                begin                                                [b]reset(arch);[/b]                                                write(arch,reg);                                                [b]close(arch);[/b]                                                writeln;  
Pero igual sigue sin funcionar :D ... Ya no se que otro error tendra, y el free pascal se me sale hasta cuando estoy haciendo el watches jeje  :rolleyes: ..

Espero que me puedan ayudar...

Y de nuevo muchas gracias eternity!



EDITO :) :

Ya solucione todos los problemas

El modulo de busqueda estaba mal: debia hacer : ini:= med+1 ó fin:=med-1 , y yo lo que hacia era incrementarlo en 1 o disminuirlo en 1.

Ademas de los errores que mencione, Mi problema venia porque en los modulos de busqueda y de ordenamiento, no debia hacer reset, ni close del archivo, por lo tanto saque los reset y close de ambos modulos, y me funciono perfecto!

Muchas gracias igualmente eternity por tomarte el trabajo de responderme

eternity:
si ya lo solucionaste genial!

 :good:

Navegación

[0] Índice de Mensajes

Ir a la versión completa