Pascal/Turbo Pascal - falla codigo??

   
Vista:

falla codigo??

Publicado por Pablo (3 intervenciones) el 03/06/2008 18:32:32
Hola a todos!! Estoy haciendo un programita de envio de postales. Tengo que dar el alta a los nuevos receptores y ahi extender el archivo receptores.dat con las nuevas altas. Hice el codigo y cuando compilo logro crear el archivo de altas pero cuadno quiero pasarlas a receptores.dat no las pasa sino que pasa en blanco (el archivo receptores.dat aumenta su tamaño pero solo se agregan lineas en blanco). Si alguien me puede dar una mano y decirme en q parte del codigo falla se los agradeceria.

CODIGO:

program Untitled;

type
Ts30 = string[30];
Ts9 = string[9];
Tvector = Array [1..3] of char;

TregReceptor = Record
ApellidoNombre: Ts30;
Mail: Ts30;
Pais: Ts9;
Acontecimiento: Tvector;
End;

TarchReceptores = file of TregReceptor;

Procedure CREARARCHALTAS (Var archout: TarchReceptores);
Begin
Assign (archout,"c:Dev-Pas uevorec.dat");
Rewrite (archout);
End;

Procedure ALTAS (Var archout: TarchReceptores; Var recout: TregReceptor);
Begin
Writeln ("Ingrese Nombre y Apellido");
Readln (recout.apellidonombre);
while recout.apellidonombre<>"" do
begin
Writeln ("Mail");
Readln (recout.mail);
Writeln ("Pais de Residencia");
Readln (recout.pais);
Writeln ("Si desea tarjeta de Navidad sin animacion presione A, si desea con animacion presione D");
Readln (recout.acontecimiento[1]);
Writeln ("Si desea tarjeta de San Valentin sin animacion presione A, si desea con animacion D");
Readln (recout.acontecimiento[2]);
Writeln ("Si desea tarjeta de Año Nuevo sin animacion presione A, si desea con animacion D");
Readln (recout.acontecimiento[3]);
Write (archout, recout);
Writeln ("Ingrese Nombre y Apellido");
Readln (recout.apellidonombre);
end;
end;

Procedure ABRIRECEPTORES (Var archrec: Tarchreceptores);
Begin
Assign (archrec, "c:Dev-Pas eceptores.dat");
Reset (archrec);
End;

Procedure EXTENDERRECEPTORES (Var archout, archrec: TarchReceptores; Var rec, recout: TregReceptor; Var n:longint);
Begin
seek (archout, 0);
n:= filesize (archrec);
seek (archrec,n);
read (archout,recout);
write (archrec, rec);
end;

Procedure LISTARRECEPTORES (Var archrec: TarchReceptores; Var rec: TregReceptor; Var n:longint);
Begin
seek (archrec, 0);
while not eof (archrec) do
Begin
read (archrec, rec);
Writeln (rec.apellidonombre:30);
Writeln (rec.mail:30);
Writeln (rec.pais:9);
Writeln (rec.acontecimiento[1]);
Writeln (rec.acontecimiento[2]);
Writeln (rec.acontecimiento[3]);
End;
End;

Procedure CERRAR (Var archrec, archout: TarchReceptores);
Begin
Close (archrec);
Close (archout);
end;

Var
archout: Tarchreceptores;
archrec: TarchReceptores;
rec: TregReceptor;
recout: TregReceptor;
n:longint;

Begin
CREARARCHALTAS (archout);
ALTAS (archout, recout);
ABRIRECEPTORES (archrec);
EXTENDERRECEPTORES (archout, archrec, rec, recout, n);
LISTARRECEPTORES (archrec, rec, n);
CERRAR (archrec, archout);
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:falla codigo??

Publicado por Dani (159 intervenciones) el 03/06/2008 18:56:36
Las cadenas se escriben entre comillas simples, no dobles

'Esto es una cadena'

"Esto no"
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:falla codigo??

Publicado por Pablo (3 intervenciones) el 03/06/2008 19:36:11
Hola Dani, ya se lo de la cadena pasa que cuando copie el codigo y lo pase aca aparecio todo con " cuando yo tengo puesto ' en el compilador.
Estoy usando Dev Pascal y sigo sin darme cuenta porque me escribe lineas en blanco en vez de un registro. Supongo que el problema lo tengo en el procedimiento EXTENDER pero no m doy cuenta.
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:falla codigo??

Publicado por Dani (159 intervenciones) el 03/06/2008 20:59:56
Procedimiento extenderReceptores, última línea antes del END; estás escribiendo rec en el archivo, pero mucho me temo que rec ni siquiera está inicializada?

;) Un saludo
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