Rank: Newbie
Iscritto dal : 7/27/2010 Posts: 5
|
Salve, sono giorni che sto uscendo pazzo per gestire un file con records a lunghezza variabile. Mi spiego meglio : Ad ogni esecuzione del programma il file da leggere può avere tutti i records con una lunghezza diversa dalle esecuzioni precedenti e/o successive. Per meglio dire : una volta posso avere TUTTI i record lunghi 50 bytes , mentre in una successiva elaborazione questi record possono essere di 60 bytes o 45 o 73 .... etc
Io ingenuamente pensavo di operare così :
Dim Archivio as string
archivio = "c:\archivio_dati\file1.txt" numfile1 = FreeFile Open archivio For Input As #numfile1
Private Type arch3 record() As String * 5 End Type Dim tab1 As arch3
dim tab2() as string
line input #numfile1, archivio arch3 = archivio
ma ho provato anche con : line input #numfile1 , arch3 (ma non cambia nulla)
A questo punto credevo (e speravo) che - sapendo già quanti elementi contiene il record letto - potessi avere in tab1.record(...) i campi del record letto. Cioè - ammettendo di sapere che nel record ci sono 13 campi di uguale lunghezza - si potesse fare :
redim tab1.record(13) redim tab2(13)
for ix = 1 to 13 tab2(ix) = tab1.record(ix) next ix
Questo perchè speravo che in tab1.record() mi ritrovassi i campi del record letto già pronti per essere tabellizzati. Invece .......... patate ! E' una settimana che cerco di risolvere il problema senza riuscirci. Devo forse usare l'oggetto Collection ? Ma se anche fosse così non ho capito come si usa . Oppure si deve fare in un altro modo ? Oppure è impossibile !
|