Pascal/Turbo Pascal - ayuda con error en fichero

 
Vista:

ayuda con error en fichero

Publicado por agustin (4 intervenciones) el 13/01/2008 18:32:01
Tengo un problema en este programa de fichero de texto.En el fichero salida.txt tengo una matriz de numeros, y lo que quiero es leerla y que la imprima por pantalla en el programa principal.
El codigo fuente es este:

program leoimagen;
type
tmatriz=array[1..10,1..10] of char;
var
f:text;
v:tmatriz;
i,j:integer;
numero:char;
begin
i:=1;
j:=1;

assign(f,'salida.txt');
reset(f);
while not eof (f) do
begin
while not eoln (f) do
begin
read(f,v[i][j]);//YO creo que me da error este read
j:=j+1;
end;
j:=1;
i:=i+1;
end;
close(f);
for j:=1 to 10 do
writeln('',v[1][j],'');
readln;
END.

Creo que el error es en el read, porque si pongo readln funciona el prgrama pero logicamente solo me imprime por pantalla la primera fila porque lee 1 dato y hace el salto de linea.
Lo que quiero es que la lea entera en una matriz v.
Gracias por la ayuda.
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:ayuda con error en fichero

Publicado por M@rceloL (25 intervenciones) el 14/01/2008 23:48:16
Sin probar (formateé la máquina y no tengo nada instalado) te diría que sí, que el problema es el read.

Verás, no hay nada que le diga al Read que tiene que leer un char. Creo que ahí está el problema.

Quizás te iría mejor leyendo con ReadLn un string, y después recorrer vos ese string asignando los caracteres a la matriz.

var Linea:string;
      y,ind:byte;
  
begin
  while not eof (archivo) do
    begin
    Readln(archivo,Linea);
    for Ind:=1 to length(Linea) do
      Matriz[Ind][y]:=Linea[Ind];
    Inc(y);
    end;
end;

No sé si me explico.

OJO: no digo que el Read no anda, es que no tengo cómo probar y me suena sospechoso ese read.

Saludetes.
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