Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    lunghezza record di un file sequenziale

    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
    Navigatore
    C'è gente che pensa che avere la testa dura sia una virtù....

  2. #2
    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

  3. #3
    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
    Navigatore
    C'è gente che pensa che avere la testa dura sia una virtù....

  4. #4

    lunghezza file

    sapete per caso come si fa a determinare le righe di un file sequenziale ??

    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.