PDA

View Full Version : [VB] Tipo di dato custom


Spike79
28-11-2007, 14:27
Ciao, ho la necessità di aprire un grosso file, e leggere vari valori lungo le sue righe; avevo pensato ad un tipo di dati utente così:

Public Type Tipo_Riga_Letta
Quota_01 As String * 8
Descr_01 As String * 24
Valore_01 As String * 12
Spazio As String * 24
Quota_02 As String * 8
Descr_02 As String * 24
Valore_02 As String * 12
End Type

Pensando che, leggendo una riga e mettendola in una variabile di questo tipo, potessi poi leggere comodamente le sue varie parti, ma quando faccio:

Line Input #fnum_in, riga_letta

(Dove "riga_letta" è di tipo "Tipo_Riga_Letta" )

Mi dà errore.
Anche se uso una variabile String 'intermedia' mi dà errore.

Come posso ovviare a questa situazione ?

Grazie

Spike79
04-12-2007, 07:46
UP ?

Ramac
04-12-2007, 14:36
In che senso "stringa 'intermedia'"?

Spike79
04-12-2007, 14:37
Nel senso che avevo anche provato a muovere la riga letta in una stringa, e poi quest'ultima nella variabile 'custom', ma non cambia rispetto ad usare line input direttamente con la custom (ovviamente, era solo un tentativo).

Ramac
04-12-2007, 14:41
Nel senso che avevo anche provato a muovere la riga letta in una stringa, e poi quest'ultima nella variabile 'custom', ma non cambia rispetto ad usare line input direttamente con la custom (ovviamente, era solo un tentativo).

Nel senso che avevi assegnato la stringa direttamente alla variabile riga_letta oppure ti dava un errore con l'istruzioni line input?

Perché nel primo caso immagino ci sia un problema di compatibilità tra i tipi di dato, nell'altro il problema sta nella lettura del file

Spike79
04-12-2007, 15:41
Nel senso che avevi assegnato la stringa direttamente alla variabile riga_letta oppure ti dava un errore con l'istruzioni line input?

Perché nel primo caso immagino ci sia un problema di compatibilità tra i tipi di dato, nell'altro il problema sta nella lettura del file

Dava proprio un errore nella compatibilità.

Io avrei voluto poter leggere con Line Input una riga intera e valorizzare direttamente la mia variabile, praticamente così mi sarei trovato valorizzati i miei campi (visto la loro lunghezza, i primi n caratteri sarebbero andati nel campo 1 con lunghezza n, i successivi m caratteri nel successivo campo lungo m, ecc...)
, ma non ci son riuscito...

Ramac
05-12-2007, 14:12
purtroppo non è possibile fare così.... l'unica è assegnare manualmente a ciascun campo della variabile riga_letta una porzione della stringa tramite per esempio la funzione $mid

Spike79
05-12-2007, 14:43
purtroppo non è possibile fare così.... l'unica è assegnare manualmente a ciascun campo della variabile riga_letta una porzione della stringa tramite per esempio la funzione $mid

E' esattamente quel che ho fatto....peccato, sarebbe stato comodo.