Oppure

Loading
06/03/10 1:27
Ciao a tutti :) dato un file contenente il seguente testo:

1 - 2323 - 23 - 4212 - 49 - 8 - 0 - 2232


come fare ad importare tali valore in un array? non credo esiste una funzione specifica dato che la funzione read (a quel che ho potuto capire) si ferma a leggere solo il primo valore contenuto nel file..brancolo nel buio..qualcuno mi può aiutare?
06/03/10 11:03
Poggi Marco
Devi impostare un ciclo che legga tutti i numeri fino alla fine del file:
es:

i:=0;
while not eof(file) do
begin
  read(file, Varibile[i]);
  i:=i+1;
end;


In questo modo leggerai tutti i valori contenuti nel file.

Ho notato, che nel file, vi sono dei simboli (-) che delimitano i numeri, e questo ti darà sicuramente dei problemi.

In questi casi ti consiglio di usare dei file tipicizzati.
aaa
06/03/10 15:19
eof a che serve?

la i indica il valore da acquisire? non sapevo che read si potesse anche utlizzare in questo modo, grazie :D

i trattini si possono levare..ma gli spazi li posso lasciare??
06/03/10 16:59
Poggi Marco
L' istruzione "read( file, varibile[ i ] ) ;" legge un numero nel file, lo salva in variabile[ i ], - ovviamente variabile è un' array -, e sposta l'indice del file sul dato successivo. Quindi per separare i numeri servono gli spazi o gli invii (posizionamento del numero successivo su una nuova riga).

La funzione "eof( <NomeLogicoDelFile> )" serve per sapere quando si raggiunge la fine del file: infatti restituisce true (vero) quando l' indice del file è al termine, folse (falso) altrimenti.

Purtroppo, per i file di testo, la lettura può avvenire in modo sequenziale.
E' possibile raggiungere direttamente solo l' inizio del file con la funzione
rest( <NomeLogicoDelFile> ) e la fine con append( <NomeLogicoDelFile> ).
Ultima modifica effettuata da Poggi Marco 06/03/10 17:28
aaa
06/03/10 17:24
La lettura quindi avviene in maniera sequenziale? credevo si fermasse al primo dato e non andasse più avanti..comunque ora è tutto molto più chiaro, grazie :)
06/03/10 17:28
Poggi Marco
Di nulla!
aaa