Newsgroup: it.comp.lang.visual-basic
Titolo: GET e PUT as Random. Come si usano?

Scusate se insisto con i files random, però vorrei almeno capire un punto di 
gestione dei files prima di addentrarmi negli altri (binary, ad esempio...)
Come faccio a leggere con l'istruzione GET i dati salvati con l'istruzione 
PUT?
.....
k=k+1
Open "c:\assegnati" For Random As #1 Len = 51
LSet RecAssegnati.a1 = Check1.Value
LSet RecAssegnati.a2 = nominativo
Put #1, k, RecAssegnati
Close #1
Come faccio a leggere questi dati usando l'istruzione GET?
Il McGraw Hill dice solo "Put FileNum, 37, EsempioDiLibro".
Grazie ancora.
(G)

 Come faccio a leggere questi dati usando l'istruzione GET?
In modo molto diverso :)
Dim fileAssegnati As long
fileAssegnati = FreeFile
Open "c:\assegnati" For Random As fileAssegnati
Get fileAssegnati, k, RecAssegnati
Close fileAssegnati
Devi però stare attento se usi i file binari come file random: questi non
hanno il concetto di record, quindi sei tu che devi sapere dove inizia un
record se devi andare a colpo sicuro al record n!
Per tua fortuna se devi solo scorrerli quando VB legge la struttura si
posiziona già al record successivo, basta tralasciare il secondo parametro
della Get (o anche della Put) per leggere dalla posizione corrente.
Ciao
--
- Reporting tool
http://www.neodatatype.net

 Close fileAssegnati
Ti ringrazio moltissimo, come sempre sei prezioso, però io non riesco a far 
funzionare il tuo esempio!
Quando provo a visualizzare RecAssegnati mi viene fuoi un "errore di 
compilazione. Tipo non corrispondente"
Come posso risolverlo?
Grazie.
(G)
P.S. la variabile K è pari al valore LOF del file in oggetto "c:\assegnati" 
ed ho integrato il tuo GET fileAssegnati,k,RecAssegnati in una istruzione 
for f=1 to k  ........ next f
Ho sbagliato tutto?
Dim k As Integer
Dim f As Integer
Dim fileAssegnati As Long
Open "c::\assegnati" For Random As #1 Len = 51
k = LOF(1) / 51
Close #1
fileAssegnati = FreeFile
Open "c:\assegnati" For Random As fileAssegnati
For f = 1 To k
Get fileAssegnati, k, RecAssegnati
elenco = RecAssegnati
Text1.Text = elenco  ---> QUI mi riporta l'errore, ho anche provato a fare 
un banale Print elenco ma il risultato non cambia: ERRORE!
Next f
Close fileAssegnati
End Sub
A me serve, infatti, di leggere e visualizzare questo file in modo 
"sequenziale" dall'inizio alla fine e - in seconda battuta - di modificare, 
quando richiesto, il solo campo "Check1.Value".
Per questo motivo non ho usato una struttura Appena, altrimenti mi sarei 
trovato in grossa difficoltà a modificare il "Check1.Value" dell'elemento X 
a meno di non creare contestualmente un file temporaneo ove ricopiare i dati 
correggendo di volta in volta i necessari, così come facevo con il Gw-Basic.

 Close fileAssegnati
Ti ringrazio moltissimo, come sempre sei prezioso, però io non riesco a far
funzionare il tuo esempio!
Quando provo a visualizzare RecAssegnati mi viene fuoi un "errore di
compilazione. Tipo non corrispondente"
Come posso risolverlo?
Grazie.
(G)
P.S. la variabile K è pari al valore LOF del file in oggetto "c:\assegnati"
ed ho integrato il tuo GET fileAssegnati,k,RecAssegnati in una istruzione
for f=1 to k  ........ next f
Ho sbagliato tutto?
Dim k As Integer
Dim f As Integer
Dim Elenco as String
Dim fileAssegnati As Long
Open "c::\assegnati" For Random As #1 Len = 51
k = LOF(1) / 51
Close #1
fileAssegnati = FreeFile
Open "c:\assegnati" For Random As fileAssegnati
For f = 1 To k
Get fileAssegnati, k, RecAssegnati
elenco = RecAssegnati
Text1.Text = elenco  ---> QUI mi riporta l'errore, ho anche provato a fare
un banale Print elenco ma il risultato non cambia: ERRORE!
Next f
Close fileAssegnati
End Sub
A me serve, infatti, di leggere e visualizzare questo file in modo
"sequenziale" dall'inizio alla fine e - in seconda battuta - di modificare,
quando richiesto, il solo campo "Check1.Value".
Per questo motivo non ho usato una struttura Append, altrimenti mi sarei


 CUT
Se aggiungo Dim recassegnati As String
l'errore non c'è più ma non mi mostra nulla!


 l'errore non c'č piů ma non mi mostra nulla!
lungi da me l' idea di scatenare flames, ma da questa pioggia di messaggi
sto ricavando una sensazione di disordine ed improvvisazione :-(
-- 
ciao, hal

 sto ricavando una sensazione di disordine ed improvvisazione :-(
Verissimo! Ma il testo che ho sottomano (McGrawHill) dedica 2 paginette 
scarspe e piene di puntini omiss... alla gestione dei file in modo random!
:-(((
Hai qualche soluzione fattibile?
Grazie.
(G)

 Hai qualche soluzione fattibile?
si`: studia!
le domande che fai non dipendono dalla conoscenza piu` o meno
approfondita circa la manipolazione dei files random.
-- 
ciao, hal

 sto ricavando una sensazione di disordine ed improvvisazione :-(
Assolutamente sě ;)
Ciao

 l'errore non c'è più ma non mi mostra nulla!
Allora... vediamo di usare quel brufolo che spunta in mezzo alle spalle.
Le cose bisogna capirle, non tentare a caso e poi stupirsi che non fanno
quello che si vuole.
E anche un po' di capacità analitica e di intuizione non guastano.
Se recassegnati è una struttura (Type), un Text1.Text = recassegnati cosa
cavolo ti aspetti che faccia vedere?
Come fa VB a sapere cosa vorresti visualizzare?
RecAssegnati contiene più di un'informazione!
E potrebbero essere dati di tipo disomogeneo, sicuramente non formattati.
Text1.Text si aspetta una stringa... tu che faresti al suo posto se non
ricordare al programmatore che non può mettere i chiodi nei buchi delle
viti?
Ciao
--
Reporting tool: 
http://www.neodatatype.net

 Allora... vediamo di usare quel brufolo che spunta in mezzo alle spalle.
Quale??? ;-)
Hai ragione tu, infatti mi sono reso conto della assuridtà che ho scritto ed 
ho subito cancellato i messaggi! Infatti damio OE6 non vedo più il mio 
ultimo pallosissimo tread.
Non avevo detto a VB6 quale campo doveva visualizzare all'interno della 
struttura "generale".
(G)

 ultimo pallosissimo tread.
Non puoi cancellare i messaggi delle news dal server!
Li stai cancellando solo su OE.
Ciao

 Li stai cancellando solo su OE.
Veramente si puo' :)
Per farlo con OE: Seleziona un tuo messaggio -> Menù Messaggio -> 
Annulla Messaggio.
Lokar
-- 
Sito Comune: 
http://www.it-lang-vb.net/
Manifesto: 
http://www.it-lang-vb.net/docs/Manifesto.txt
Statuto: 
http://www.it-lang-vb.net/docs/Statuto.txt
 

 ha scritto nel messaggio 
news:436e20a4$0$6016$4faf...@reader4.news.tin.it...

Ufffff..................... :-)
lasciamo stare, è meglio.... torno al mio vero lavoro... a ciascuno il suo!
Grazie di tutto, mi avete istruito molto e speriamo che i prossimi 
interventi siamo un po' più interessanti per voi!
Scusate ancora se ho abusato della vostra pazienza.
(G)

 Annulla Messaggio.
Beh, buono a sapersi :)
Però se uno ormai il messaggio l'ha scaricato se lo tiene.
Poi mi pare un po' pericolosa la cosa: su cosa si basa per sapere che il
messaggio è mio? L'email?


scarspe e piene di puntini omiss... alla gestione dei file in modo random!
  La gestione e' uguale a com'era in GW-Basic: non farti ingannare dal
fatto che come variabili si utilizzano tipi definiti dall'utente,
studia le istruzioni in GW-Basic e utilizzale allo stesso modo in VB.
-- 
  Ciao :-)
  Massimo
Nell'indirizzo, sostituire "micio" con "mc"