PDA

Visualizza la versione completa : lunghezza record di un file sequenziale


Navigatore
25-03-2002, 15:19
Salve a tutti,

mi sto scontrando in Visual Basic con un problema curioso che non riesco a risolvere.
Devo caricare un file in formato testo in una tabella Access.
Lo leggo in una struttura con la funzione get, e poi faccio una insert sul database.
Mi accorgo pero' che all'interno del file (che proviene dall'esterno) i records non hanno tutti la stessa lunghezza.
Alcuni hanno in fondo dei caratteri null e il cursore va a capo prima della fine del file, per altri ci sono dei blank e il cursore li percorre fino in fondo.
Ovviamente mi da problemi nel riempimento della struttura. Riesco a caricarlo correttamente solo usando strutture di lunghezza diversa.
Ora, al di la' del fatto che i files non si scrivono in questo modo, come posso rimediare al problema? C'e' un modo per copiare, o riscrivere o troncare il file per avere tutti i records uguali come lunghezza?
Inoltre, esiste qualche funzione per rilevare la lunghezza del record senza contarsi le posizioni una per una?
Spero di essermi spiegato.
Grazie a tutti quelli che mi risponderanno, ciao

vitren54
25-03-2002, 17:54
Non so come strutturato il file di testo comunque prova a leggerlo con questa routine:

max = 0
open "tuofile.txt" for input as #1
while non eof(1)
line input #1, rk$
if len(rk$) > max then max = len(rk$)

rem inserimento in access
wend
?"lunghezza massima caratteri " + str$(max)
close #1

che legge un record per volta (se questi sono separati da un CR) e lo inserisce in RK$, variabile che potrebbe essere usata per inserire il record in access.

Ciao

Navigatore
25-03-2002, 22:24
Grazie, il comando "line input" e' stato risolutivo:

Open nome_file For Input As 3
Open "c:\vb4\titoli.asc" For Random Access Write As 2 Len = Len(record)


Do While Not EOF(3)
Line Input #3, stringa_testo
If Len(stringa_testo) < 400 Then
stringa_testo = stringa_testo & String((400 - Len(stringa_testo)) - 1, "*") & Chr(10)
End If
Put #2, , stringa_testo
Loop
Close #2
Close #3

gianluca142
07-08-2002, 12:51
sapete per caso come si fa a determinare le righe di un file sequenziale ??

grazie

Loading