Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    [VB6] Lettura determinata riga di TXT

    Ciao ragazzi, ovviamente ho cercato ma gli esempi che ho trovato non mi funzionano così apro una discussione specifica per il mio caso.

    Ho un file TXT, e voglio che il programma legga solo la riga 2, dopodichè la salvi su una variabile.
    Come si fa?

    Grazie
    Asus M3A32-MVP Deluxe | AMD Athlon 64 X2 6400+ | ATI Radeon HD 5770 | 4x1GB DDR2-667 Kingston

  2. #2
    codice:
    Const numeroriga = 2 'eventualmente se ti serve un'altra riga modifica questa riga di conseguenza
    Dim riga As String, c As Integer
    Open "nomefile.ext" For Input As #1
    Do
    c=c+1
    Line Input #1, riga
    Loop Until EOF(1) Or c = numeroriga
    Si possono usare anche altri metodi (tramite la funzione split, ad esempio), ma sono più dispendiosi in termini di tempo di CPU e di memoria sprecata.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Mi da un errore di runtime 62, "Input past end of file", alla riga "Line Input #1, riga"...

    P.S. ti sei scordato di chiudere il file
    Asus M3A32-MVP Deluxe | AMD Athlon 64 X2 6400+ | ATI Radeon HD 5770 | 4x1GB DDR2-667 Kingston

  4. #4
    codice:
    Const numeroriga = 2 'eventualmente se ti serve un'altra riga modifica questa riga di conseguenza
    Dim riga As String, c As Integer
    Open "c:\SAUDIT.TXT" For Input As #1
    Do Until EOF(1) Or c = numeroriga
    c = c + 1
    Line Input #1, riga
    Loop
    If EOF(1) Then riga = "" 'la riga richiesta non esiste nel file
    Close #1
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Grazie mille MItaly, funziona!
    Lol, sei sempre te che mi aiuti
    Asus M3A32-MVP Deluxe | AMD Athlon 64 X2 6400+ | ATI Radeon HD 5770 | 4x1GB DDR2-667 Kingston

  6. #6
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Cavoli, purtroppo invece devo dire che non funziona se chiedo la riga 3!
    Asus M3A32-MVP Deluxe | AMD Athlon 64 X2 6400+ | ATI Radeon HD 5770 | 4x1GB DDR2-667 Kingston

  8. #8
    Mi pare molto strano... l'ho provato abbondantemente... che errore ti dà? Hai modificato il Const?
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Ho fatto come te però ripetuto 3 volte contemporaneamente... quindi 3 const eccetera...
    momentaneamente ho aggirato il problema mettendo gli ultimi due sulla seconda riga perchè sto costruendo un'agenda e gli faccio verificare la somma delle scritte, comunque era meglio separato
    Asus M3A32-MVP Deluxe | AMD Athlon 64 X2 6400+ | ATI Radeon HD 5770 | 4x1GB DDR2-667 Kingston

  10. #10
    A questo punto fai prima ad incapsulare tutto in una funzione...
    codice:
    Public Function GetFileLine(ByVal FileName As String, ByVal RowNumber As String) As String
        Dim c As Integer, fn As Integer
        fn=FreeFile
        Open FileName For Input As #fn
        Do Until EOF(1) Or c = numeroriga
            c = c + 1
            Line Input #fn, GetFileLine
        Loop
        If EOF(fn) Then GetFileLine=""
        Close #fn
    End Function
    Richiamala in questa maniera:
    codice:
    Dim riga As String
    riga=GetFileLine("c:\nomefile.ext", 3)
    Amaro C++, il gusto pieno dell'undefined behavior.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.