Newsgroup: it.comp.lang.visual-basic
Titolo: Istruzioni write ed input

Se io salvo dei dati usando l'istruzione write in modo append e poi voglio
rileggerli con l'istruzione input devo per forza rileggere tutto quello che
ho scritto oppure posso dirgli di andare solo  alla riga  che mi interessa?
E se si come?
Grazie a chiunque vorrą aiutarmi.
Gianluca

 Grazie a chiunque vorrà aiutarmi.

 E se si come?
Il problema, come lo esponi, fa pensare a *dati* o
*informazioni* prive di una qualche organizzazione, come
tipicamente un file di testo. E appunto ad un testo, questa
volta nel senso proprio che si da` comunemente alla parola,
ovvero un testo cartaceo, conviene pensare per tentare di
trovare una soluzione: come faresti a trovare o ritrovare un
brano in un libro? O metti un segnalibro, o consulti l'indice
(sommario) o un indice analitico.
La stessa cosa con un file di testo (esempio.txt), che potrai
dotare di un indice, un altro file di testo (esempio.idx)
organizzato in base alle tue esigenze di ricerca delle
informazioni. Tipicamente questo file indice potra` essere
costituito come minimo da una tabella di una colonna,
"posizione", in cui memorizzerai appunto la posizione iniziale
di scrittura di ogni singola riga. All'apertura del file
carichi in un vettore le informazioni dal file esempio.idx in
modo da avere accesso diretto ad ogni riga di esempio.txt. E
ogni volta che aggiungi una riga aggiungi un elemento al
vettore con la posizione iniziale di tale riga nel file
esempio.txt, ricordandoti di salvare anche il vettore in
esempio.idx.
E ora torniamo alla tua domanda: "andare solo  alla riga che
mi interessa". Cosa vuol dire? "Andare alla riga numero n"?
Allora quello che ho scritto risponde al quesito e, per
tornare all'analogia col testo cartaceo, abbiamo piu` o meno
riprodotto la situazione seguente:
Capitolo 1 pag.  1
Capitolo 2 pag.  5
Capitolo 3 pag. 13
...
che, nel caso dei file diventa (ovviamente le righe con i
numeri mi sono servite unicamente per contare i caratteri,
mentre i due puntini alla fine di ogni riga stanno per i byte
occupati da vbCrLf):
idx txt
    0        1         2    2
    1234567890123456789012345
  1 Questa e` la prima riga..
    2   3         4         5 5
    678901234567890123456789012
 26 Questa e` la seconda riga..
    5      6         7      7
    3456789012345678901234567
 53 Questa e` la terza riga..
    7
    8
EOF EOF
Se, invece, vuol dire "andare alla riga in cui si tratta
l'argomento x", o "andare alla riga avente codice y"
l'analogia sara` con un testo scritto con un sommario del
tipo:
Prefazione ........................... pag.  1
Reddito medio ........................ pag.  3
Valore corrente di un buono del tesoro pag. 13
Calcolo dell'interesse di obbligazioni pag. 15
...
... e il nostro file indice non conterra` piu` una tabella
composta da una sola colonna ma da due: oltre alla colonna con
la posizione della riga nel file di testo avremo la colonna
con la "chiave"
idx        txt
pos chiave
nnn kkkkk  Questa e` la prima riga..
EOF        EOF
E ora il caso un po' piu` complicato: se la tua domanda vuol
dire "andare alla riga che contiene la stringa xyz" l'analogia
e` con l'indice analitico. Chiaro cosa intendo, vero? Immagini
le implicazioni?
Un caso particolare, per finire, e` quello del "segnalibro".
Puoi scrivere l'informazione che ti interessa, in forma
libera, non strutturata, in un file ini, nel registry, in un
altro file...
--
Ciao.
Maurizio
--------
?SPQR(C)
 X

Mille grazie per l'aiuto
Adesso cerchero di mettere in pratica i vostri consigli e poi vi faro'
sapere
Ciao
Gianluca