Pascal/Turbo Pascal - Busqueda ficheros binarios

 
Vista:

Busqueda ficheros binarios

Publicado por pepe287 (2 intervenciones) el 28/12/2006 09:26:13
Si tengo la siuguiente declaracion de datos,quiero hacer consultas de ambos ficheros :

Program Programa;
USES
crt,....;
BEGIN
Assign(Fichero1,'Fichero1.txt');
Assign(datos1,'datos1.dat');
Assign(Fichero2,'repes.dat');
Assign(datos2,'datos2.dat');

if not fileExists(Fichero1.dat') then
cargar_datos(Fichero1, datos1);
if not fileExists(Fichero2.dat') then
cargar_datos(Fichero2, datos2);

if fileExists ('datos1.dat') then
Close(datos1);
if fileExists ('datos2.dat') then
Close(datos2);
........
UNIT....;
....
Procedure Meter_datos1(var Fichero1: text;
var datos1: tipo_fich_datos);
VAR
registro: tipo_reg_logico;
BEGIN
reset(Fichero1);
rewrite(datos1);
seek(datos1,0);
WHILE not EOF(Fichero1) DO
BEGIN
WITH registro DO
BEGIN
Read(Fichero1,dni);
read(Fichero1,nombre);
.........
readln(Fichero1);
END;
Write(datos1, registro);
END;
close(Fichero1);
close(datos1);
END;

Procedure Meter_datos2(var Fichero2: text;
var datos2: tipo_fich_datos);
VAR
registro: tipo_reg_logico;
BEGIN
reset(Fichero2);
rewrite(datos2);
seek(datos2,0);
WHILE not EOF(Fichero2) DO
BEGIN
WITH registro DO
BEGIN
Read(Fichero2,dni);
read(Fichero2,nombre);
.........
readln(Fichero2);
END;
Write(datos2, registro);
END;
close(Fichero2);
close(datos2);
END;

****
Si yo ahora quiero consultar es decir hacer una busqueda por dni por ejemplo del fichero 1 me lo busca bien pero si hago una busqueda del fichero 2 no me encuentra nada y me da a mi que es que no se esta generando bien el fichero binario.No se si algo estoy haciendo mal
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:Busqueda ficheros binarios

Publicado por Diego Romero (996 intervenciones) el 28/12/2006 11:27:36
Me llama la atención que uses Read (y no ReadLn) para leer un archivo tipo text; no conozco la estructura del mismo así que no puedo decir si es correcto o no, pero deberías revisar si usando Read estás realmente leyendo lo que crees que está leyendo.
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:Busqueda ficheros binarios

Publicado por pepe287 (2 intervenciones) el 28/12/2006 11:38:18
que diferencia hay entre read y readln?
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:Busqueda ficheros binarios

Publicado por Diego Romero (996 intervenciones) el 29/12/2006 03:02:09
ReadLn lee una línea de texto hasta encontrar un retorno de carro/avance de línea (caracteres #13 y #10), Read lee tantos bytes como bytes tenga el tipo de variable que le pasas en el segundo parámetro.
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:Busqueda ficheros binarios

Publicado por micropais (209 intervenciones) el 29/12/2006 19:06:11
saludos pepe287.
no he probado Tu programa , pero creo que para ficheros binarios es necesario usar :
declarar el fichero solo como file y usar blockread y blockwrite

Saludos.
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