Pascal/Turbo Pascal - problema con los read

 
Vista:

problema con los read

Publicado por Diego (11 intervenciones) el 13/07/2007 13:19:54
hola amigos muchisimas gracias x tantas ayudas en este nuevo problemita q tengo es q cuando quiero modificar unos datos ingresados llamo al procedimientos de modificaciones la primera ves q eligo el dato a modificar la primera ves q lo lo elijo me tengo que eleirlo 2 veces para q recien me lea el read o sino tengo q salir d modificaciones volver a inresar y recien lo tomas o sino la otra es q en el codigo fuente ponga 2 y asi funciona bien pero hay veces q me lee 2 veces el read aca les dejo el codigo fuente del procedimiento

Procedure modifecha6(cod:integer);
var
lfechai6:string[8];
lfechas6:string[8];
lcome11:string[20];
lcome12:string[20];
te:char;
opcion: Integer;
teG:char;
posG:integer;
teTG:char;
posTG:integer;
teTGE:char;
teTGf:char;
posTGE:integer;
postgf:integer;
salida:boolean;
begin
gotoxy(9,46);readln(lfechai6);read(lfechai6);
gotoxy(19,46);readln(lcome11);readln(lcome11); {aqui vendria a ser el problema}
gotoxy(48,46);readln(lfechas6);
gotoxy(58,46);readln(lcome12);
reg_exp.fechai6:=lfechai6;
reg_exp.fechas6:=lfechas6;
reg_exp.come11:=lcome11;
reg_exp.come12:=lcome12;
seek (arc_exp,cod);
write (arc_exp,reg_exp);
end;
muchas racias
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:problema con los read

Publicado por Diego Romero (996 intervenciones) el 13/07/2007 16:51:34
Para ponerlo corto: tu problma no es un problema :).
Es la consecuencia del comportamiento del procedimiento Read(). No hay nada malo en tu programa, simplemente actua de una forma que no esperas. La explicación es larga y ya la hice en otra parte en este foro, aquí:

http://lawebdelprogramador.com/news/mostrar_new.php?id=69&texto=Pascal/Turbo+Pascal&n1=401243&n2=2&n3=2&n4=0&n5=0&n6=0&n7=0&n8=0&n9=0&n0=0
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:problema con los read

Publicado por diego (15 intervenciones) el 13/07/2007 19:30:47
hola diego muchas gracias por la explicacion pero igual sigue sin funcionar eso q en las variables q uso todas son readln ya me e cansado de probar no c q sera tal ves q es la llamada al procedimiento q es un integer en el menu d seleccion pero no creo q despues me salte los 4 readln q le ingreso. xfavor ayuda no se q hacer........................
gracias
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:problema con los read

Publicado por Diego Romero (996 intervenciones) el 13/07/2007 22:25:57
Le he prestado más atención a tu código y hay cosas que no comprendo.
Yo lo hice funcionar, es decir me pide 6 ingresos, modificando de esta forma:

uses crt;

var
cod: integer;

Procedure modifecha6(cod:integer);
var
lfechai6:string[8];
lfechas6:string[8];
lcome11:string[20];
lcome12:string[20];
te:char;
opcion: Integer;
teG:char;
posG:integer;
teTG:char;
posTG:integer;
teTGE:char;
teTGf:char;
posTGE:integer;
postgf:integer;
salida:boolean;
begin
gotoxy(9,10);
write('Ingreso lfechai6 (1): ');
readln(lfechai6);
write('Ingreso lfechai6 (2): ');
readln(lfechai6);
gotoxy(19,10);
write('Ingreso lcome11 (1): ');
readln(lcome11);
write('Ingreso lcome11 (2): ');
readln(lcome11);
gotoxy(48,10);
write('Ingreso lfechas6: ');
readln(lfechas6);
gotoxy(58,10);
write('Ingreso lcome12: ');
readln(lcome12);
end;
begin
modifecha6(cod);
end.

Quitando los Write(); también funciona. Nota además que siempre uso ReadLn(); y no Read(); Por último cambié las coordenadas de la pantalla porque no existe la fila 46 en modo CO80.
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