Newsgroup: it.comp.lang.visual-basic
Titolo: *Importante: Open Random mode, Record e Tipi...

Salve,
Per creare un file ad accesso casuale, memorizzo dei record nel file
impostando con Type delle stringhe di lunghezza predefinita. Ma il comando
GET riconosce i vari campi solo dalla lunghezza? E' possibile creare, in un
file, dei record di lunghezza non predefinita? Mi spiego meglio...
Per esempio, devo memorizzare 3 stringhe: CAP, PrefissTelefonico e Nome del
Comune, il campo c.a.p e' sicuro una stringa composta da 5 elementi; Ma il
prefisso telefonico e il nome del comune no! Quindi imposto una lunghezza
standard, ma se leggo per esempio dal file il nome del comune:
AVEZZANO e lo memorizzo in una stringa, il risultato sara': "AVEZZANO
", perche' il campo aveva una lunghezza preimpostata!
Insomma, per evitare di eliminare gli spazi vuoti dalla stringa per
eventuali operazioni successive, e' possibile in un file ad accesso casuale,
impostare dei record di lunghezza differente? Cioe' con la lunghezza
effettiva delle stringhe memorizzate nei campi?
Grazie 1000

 wrote in message
news:DSHH5.50597$Nz.14...@news.infostrada.it...

Si', ma la lettura del file diventa un po' piu' complicata.
Va aperto Binary ed occorre usare array di Byte a gogo'.
Inoltre serve una struttura che contenga oltre ai campi relativi ai dati,
anche dei campi in piu' che dicano quanto quanto sono lunghi i campi a
lunghezza variabile.
Quando leggi, invece di caricare record per record, devi navigare fra i
byte.
Ciao
Aldo

Potresti banalmente scrivere un record per riga aprendo il file in modalità
output e poi leggere riga per riga con line input (aprendo il file in
modalità input, ovviamente); mettendo dei separatori per i vari campi (ad
es. ";") te la caveresti facilmente
Sante Caserio ha scritto nel messaggio ...


 wrote in message
news:8sosn7$rrn$1...@newsserver.cilea.it...



Ma per scrivere il record in un file sequenziale si procede allo spesso modo
di un file random???
In pratica devo devo dichiarare con type un tipo dati contanente per esempio
3 variabili e poi scriverle nel file con write #???
Es:
type TipoVariabile
    primodato as integer
    secondodato as string
    terzodato as string
End Type
Dim Variabile as TipoVariabile
Open "cappario.txt" for output as #1
write #1, Variabile
Close etc...etc...
Cosi' si puo' fare??? Oppure bisogna che mi faccia a mano i record... nel
senso che inserisca su una riga i dati uno per volta separati da "," o ";"
.... ma in questo caso, non c'e' un modo per automatizzare il tutto?? oppure
devo proprio scrivere a mano sul file anche i separatori???
Ps:
Che differenza c'e' tra Print # e Write #
e tra Line input e input#???
Grazie 1000

 e tra Line input e input#???
... (cut) ...
Copiato paro paro dall' help:
Print # Statement Example
This example uses the Print # statement to write data to a file.
Open "TESTFILE" For Output As #1   ' Open file for output.
Print #1, "This is a test"   ' Print text to file.
Print #1,   ' Print blank line to file.
Print #1, "Zone 1"; Tab ; "Zone 2"   ' Print in two print zones.
Print #1, "Hello" ; " " ; "World"   ' Separate strings with space.
Print #1, Spc(5) ; "5 leading spaces "   ' Print five leading spaces.
Print #1, Tab(10) ; "Hello"   ' Print word at column 10.
' Assign Boolean, Date, Null and Error values.
Dim MyBool, MyDate, MyNull, MyError
MyBool = False : MyDate = #February 12, 1969# : MyNull = Null
MyError = CVErr(32767)
' True, False, Null, and Error are translated using locale settings of
' your system. Date literals are written using standard short date
' format.
Print #1, MyBool ; " is a Boolean value"
Print #1, MyDate ; " is a date"
Print #1, MyNull ; " is a null value"
Print #1, MyError ; " is an error value"
Close #1   ' Close file.
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Ciao
Aldo