Programación General > Pascal

 Ayuda Con Archivos, Nada Dificil

(1/1)

KidD:
Bueno mi problema es que me tira:
error 100: Disk read Error en la linea read(db_socios,socio); que está casi al final.
y otra cosa, como hago para que me guarde los registros en forma de renglones?
porque haciendo wirteln(db_socios,socio) me tira "invalid filetype"

Gracias por todo y espero que me puedan ayudar
Saludos
Pablo

--- Código: Text --- program prueba; uses    crt,strings,dos; type    socios = record    id_socio : word;    nombre : string[50];    apellido : string[50];    direccion : string [50];    telefono : string [14];    pedidos : word;    estado : boolean;end; type    libros = record    id_libro : word;    nombre : string[80];    autor_nom : string[50];    autor_ape : string[50];    peticiones : word;    catidad : byte;    disponibles : byte;end; type    prestamos = record    id_prestamo : word;    id_libro : word;    id_socio : word;    fecha_ret : datetime;    fecha_dev : datetime;end; var   db_socios : file of socios;   socio,socio2 : socios; begin     clrscr;     assign(db_socios,'c:\db_socios.txt');     rewrite(db_socios);     socio.id_socio := 1;     socio.nombre := 'Pedro';     socio.apellido := 'Caracciolo';     socio.direccion := 'Amenabar 881';     socio.telefono := '(011) 4784-0236';     socio.pedidos := 100;     socio.estado := FALSE;     write(db_socios,socio);     writeln;      socio.id_socio := 2;     socio.nombre := 'PePona';     socio.apellido := 'Caracciolo';     socio.direccion := 'Amenabar 881';     socio.telefono := '(011) 4784-0236';     socio.pedidos := 100;     socio.estado := FALSE;     write(db_socios,socio);     {writeln(db_socios,socio);}          read(db_socios,socio2);     writeln(socio2.id_socio);     writeln(socio2.nombre);     writeln(socio2.apellido);     writeln(socio2.direccion);     writeln(socio2.telefono);     writeln(socio2.pedidos);     writeln(socio2.estado);     close(db_socios);end.  

KidD:
el tema del read lo arregle  me habia olvidado de poner reset(db_socios);
pero el tema del writeln, no lo logre sacar

deldar:
El tema del writeln esta en que la forma demarcar fin de registro en un txt es con los caracteres "#10"+"#13"  (quizas sean al contrario: #13 #10). Pero por lo que veo tu fichero no es txt, al menos en formato
--- Citar ---db_socios : file of socios
--- Fin de la cita ---
que biene a ser lo importante, lo que tienes ahora mismo es un fichero de datos (.dat). En estos fichero no puedes guardar como renglones, dado que guardas registros enteros y estos no tienen porque organizarse omo renglones.

KidD:
Muchas gracias, igualemten ya me habia dado cuetna  :P lo que pasa que no habi postaeado la solucion porque no tuve tiempo. mi problme era en ese momento era como pasr de registro
 y lo solucione con el seek
 lo que pasa es que tengo un quiombo de funciones y lenguajes en la cabeza y bu e pascal no lo tocaba hacia tres años se me mezclaron un poco las ideas
hasta que me acorde eso que dijiste que existian los archivos text  :P

Gracias de todos modos
Saludo.
pablo

Navegación

[0] Índice de Mensajes

Ir a la versión completa