Pregunta sobre programa en Pascal

Necesito que el programa que estoy haciendo (entre otras muchas cosas), guarde una serie de números desde fichero, pero que, estando en la misma linea los vaya guardando uno a uno en el array, no tendría problemas en meter una linea entera, pero número a número no lo tengo tan claro

while not eof(Fichero{con formato TEXT}) do
begin
while not eoln(Fichero) do
begin
read(Fichero,

****Esta es la parte que no me aclaro*****

end;
..... Aquí iría lo mismo de antes pero en otro array, básicamente tengo que hacer varios arrays diferenciados por un espacio en el fichero
end;{while not eof}
Close(Letras);


Me podeis ayudar?

Gracias, un saludo.
No he dado Pascal, pero sí pseudocódigo ( que en mi caso es como Pascal casi casi, pero en catalán) y C y yo diría que lo puedes hacer igualmente, otra es que luego necesites tratar los números como tales y no te sirva guardarlos como caracteres.
Hola,

Puedes pensarlo de otra manera, en vez de abrirlo como fichero de texto puedes abrirlo como binario y utilizar BlockRead() estableciendo un array de char como buffer, para detectar el salto de linea (o el caracter separador de cada grupo de numeros) puedes ir comparando los valores con el codigo ascii del susodicho caracter.

Otra solución es, si prefieres guardar una linea entera de numeros en un array, luego puedes dividirla en tantos chars como numeros haya en cada linea.

Todo esto lo digo suponiendo que los numeros que quieres guardar sean de 1 solo digito y esten juntos.

Luego, si quieres tratarlos como enteros y no como caracteres, puedes usar la función strtoint() para la conversión.

No se si te habré ayudado algo o no, pero bueno , ahí va eso :)
Para poder ayudarte bamos a necesitar algunos datos más sobre tu programa:

1- Cual es el numero maximo de lineas que tendra tu fichero, para saber cuantos arrays de 2 dimensines necesitaras ya que tu ejemplo serviria solo para 2 lineas en el fichero y en el caso de que tengas una sola linea(Sin una marca de fin de linea) en el fichero sera un bucle infinito el segundo while not eoln).

2- Necesitas un array por linea, o puedes utilizar un array de 3 dimensiones.

3- Los numeros que guardas en el fichero son de un número constante de digitos(ej: 1,2,9,4 o 1,25,152) ya que en el caso de tener diferentes longitudes deberias utilizar un caracter de separación entre los números.

4- Realmente necesitas cargar los números en una variable o puntero, podrias acerder al fichero cada vez que necesites un valor de este. Esto depende de la cantidad de veces que debas acceder a los valores, ya que el acceso a disco es mucho más lento que a una variable.
Básicamente tengo que meter dos matrices desde fichero,

algo así

547896
547896
248954

789
145
987
231
125
489

Eso sería para multiplicarlas entre sí
Se cargan directamente, no hace falta volver a tocar el fichero.

Básicamente tengo dos dudas, como hacer que diferencia entre una linea y la siguiente, y como decirle que se cambió de matriz con el espacio entre ellas.
4 respuestas