Programación General => Pascal => Mensaje iniciado por: CristhianUNSa en Jueves 23 de Octubre de 2008, 17:39
Título: Creacion y Busqueda en archivo binario
Publicado por: CristhianUNSa en Jueves 23 de Octubre de 2008, 17:39
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]
Título: Re: Creacion y Busqueda en archivo binario
Publicado por: eternity en Jueves 23 de Octubre de 2008, 21:15
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:
Título: Re: Creacion y Busqueda en archivo binario
Publicado por: CristhianUNSa en Jueves 23 de Octubre de 2008, 21:55
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:
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
Título: Re: Creacion y Busqueda en archivo binario
Publicado por: eternity en Viernes 24 de Octubre de 2008, 04:39