Pascal/Turbo Pascal - archivo binario apartir de archivo de texto

 
Vista:

archivo binario apartir de archivo de texto

Publicado por crear archivo binario. (17 intervenciones) el 02/05/2007 21:54:16
tengo un problema cuando trato de crear un archivo binario a partir de un archivo de texto: el problema es q no lo crea. si me pueden decir q error cometo se lo agradecere. estos son los dos modulos q utilizo para crear el archivo (el programa compila, pero no crea el archivo binario apartir de un archivo de texto.)
ya probe ingresando el nombre del archivo de texto con y sin la extencion del archivo ( .txt ).

precondicion:
·el archivo de texto ya esta creado con la fecha de nacimiento y nombre y apellido.
·En el archivo de texto debe haber una línea por persona, primero la fecha de nacimiento y, separado por un espacio, el apellido y nombres.
·las fechas se almacenan con formato aaaammdd ejemplo: 19860429
poscondicion:
·archivo binario creado con los datos de cada persona, fecha y nombre.

program practica1ejercicio5;
uses crt;
type registro=record
fecha:longint;
nombre:string[50];
end;

archivo=file of registro;
fichero=file of string;


procedure leer_persona(var txt:fichero;var fecha:longint;var nombre:string);
var num:longint;
s,t:string;
begin
read(txt,s);
t:=copy(s,1,4);
val(t,num);
fecha:=num;
nombre:=copy(s,10,49);
readkey;
end;

procedure crear_Archivo(var a :archivo); // creo un archivo binario apartir de una archivo de texto
var direccion:string;
txt:fichero;
fechas:longint;
nombres:string;
r:registro;

begin
write('nombre del nuevo archivo binario: ');
readln(direccion);
assign(a,direccion);
rewrite(a);
reset(a);

write('nombre del archivo de texto: ');
readln(direccion);
assign(txt,direccion);
reset(txt);

while not eof(txt)do begin

leer_persona(txt,fechas,nombres);
r.fecha:=fechas;
r.nombre:=nombres;
write(a,r);

end;

close(a);
close(txt);

writeln('presione una tecla para continuar.. ');
readkey;
clrscr;
end;
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:archivo binario apartir de archivo de texto

Publicado por Diego Romero (996 intervenciones) el 02/05/2007 23:11:51
Hola...

fichero=file of string;

no es un archivo de texto, es un archivo de strings. La diferencia está en el comportamiento a la hora de escribir y leer el archivo.

La solución, declarar:

fichero=text;

Aunque tampoco tiene mucho sentido declarar un tipo sencillo como text con otro identificador de tipo.

El tipo "text" declara un archivo de texto donde cada "registro" es una cadena terminada en CF+LR o #13#10, cada línea la puedes leer con una variable tipo string y usando ReadLn() (NO uses Read()).
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:archivo binario apartir de archivo de texto

Publicado por preludio (17 intervenciones) el 02/05/2007 23:30:14
gracias.
ya lo modifique
sos un maestro.
XD
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:archivo binario apartir de archivo de texto

Publicado por ayudante (1 intervención) el 04/05/2007 14:08:52
no seas fiaca, y anda a la falcultad y pregunta ahi...., ademas te adelanto que lo que haces esta muy mal, hay que leer un poquito, si??......
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:archivo binario apartir de archivo de texto

Publicado por Diego Romero (996 intervenciones) el 04/05/2007 14:11:52
Preguntar en la facultad y preguntar aquí no son actividades excluyente. Y decir que algo está mal sin señalar qué ni por qué no solo es inútil, es además, gorsero.
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:archivo binario apartir de archivo de texto

Publicado por rata (1 intervención) el 24/06/2007 02:16:59
ir siempre al final del archivo varon!!
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