Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Importare array da file
Forum - Pascal - Importare array da file

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Ciao a tutti :) dato un file contenente il seguente testo:

Codice sorgente - presumibilmente Plain Text

  1. 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?

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 12:03
Sabato, 06/03/2010
Devi impostare un ciclo che legga tutti i numeri fino alla fine del file:
es:

Codice sorgente - presumibilmente Delphi

  1. i:=0;
  2. while not eof(file) do
  3. begin
  4.   read(file, Varibile[i]);
  5.   i:=i+1;
  6. 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.

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 16:19
Sabato, 06/03/2010
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??

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 17:59
Sabato, 06/03/2010
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 il 06/03/2010 alle 18:28
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 18:24
Sabato, 06/03/2010
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 :)

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 18:28
Sabato, 06/03/2010
Di nulla!

PM Quote