Pascal/Turbo Pascal - Intentar leer fichero

 
Vista:

Intentar leer fichero

Publicado por Pascalito (12 intervenciones) el 11/04/2007 21:12:41
Hola necesito leer un fichero con los siguientes datos y no puedo, me da error, ¿me podeis decir que tengo mal en el codigo de lectura?

Me compila bien pero luego me da este error:

Runtime error 106 at $0804817C
$0804817C
$08048291
$08048421
$08048445Gracias a todos.

_____________

El fichero sería de este tipo:

1 // lo llamo dato1 en el codigo
2354 //dato2
3
5789453
2
45648
9
14545656

______________

Y mi código es el siguiente:

while not eof(fichero) do
begin
while not eoln(fichero) do
begin
read(fichero, datos);
sec[i].dato1 := datos;
end;

readln();

while not eoln(fichero) do
begin
j := j + 1;
read(fichero, datos);
sec[j].dato2 := datos;
end;

if not eof(fichero) then
readln(fichero);

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:Intentar leer fichero

Publicado por Carlos Guimaraenz (265 intervenciones) el 12/04/2007 02:54:44
Hola Pascalito! El problema es, seguramente, que intentas leer de un archivo de tipo TEXT a variables de tipo integer.
Debes leerlas a variables de tipo string y luego convertirlas con val();

Un abrazo!
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:Intentar leer fichero

Publicado por Nacho (4 intervenciones) el 13/04/2007 15:32:20
Sin ver las declaraciones de variables no tengo claro qué pretendes, no entiendo para qué usas "sec[i]" y "sec[j]"pero... ¿no sería más sencillo hacerlo así: ?

var
dato1, dato2: integer;

readln(fichero, dato1);
readln(fichero, dato2);

(sin necesidad de ningún "while": sabes que tiene esos dos datos).
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:Intentar leer fichero

Publicado por Diego Romero (996 intervenciones) el 14/04/2007 11:58:20
Nacho: sucede que como está el archivo de muestra éste es de texto, no de integers.

Por lo de "sec[i]" deduzco que se trata de un array de registros... pero vamos a ver qué dice Pascalito :S.
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:Intentar leer fichero

Publicado por Nacho (5 intervenciones) el 15/04/2007 12:49:38
Eso debería dar igual. De un fichero de texto, debería poder leer integers con

readln(fichero, dato);

Si fuera un fichero binario, no debería usar "read", sino "blockread".

Pero el algoritmo que está implementando es tan rebuscado que no sé qué pretende.
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