Leggere da riga x a riga y di un file txt

di il
5 risposte

Leggere da riga x a riga y di un file txt

Salve a tutti, sono nuovo del forum.
Forum che ho trovato molto istruttivo.
Ora mi sono bloccato su un problema:
Ho un file txt, diciamo con vari paragrafi all'interno (es. da riga 1 a riga 10 c'è una parte di testo, da riga 12 a riga 21 c'è un altra parte di testo).
Io attraverso un Select Case su un combobox devo leggere una determinata parte di testo.

Questo è il codice che avevo elaborato:
*****
Dim riga As String
Dim num_parametro As Integer
List1.Clear

num_parametro = Combo1.ListIndex
Select Case num_parametro
Case 0
Open App.Path & "\carico.txt" For Input As #1
For i = 1 To 10
Line Input #1, riga
List1.AddItem riga
Next i
Case 1
i = 12
For i = 12 To 21
Line Input #1, riga
List1.AddItem riga
Next i
End Select
Close #1
End Sub
***
Nel case 0 parte dalla riga 1 alla riga 10 ma nel case 1 parte sempre dalla riga 1.
Cosa sbaglio?

5 Risposte

  • Re: Leggere da riga x a riga y di un file txt

    Ciao.
    Sono in vacanza ed ho solo il mio 'piccolino', un netbook...
    Senti, il tuo errore è dovuto probabilmente, per il poco approfondimento che hai dedicato allo studio dello sviluppo di base (cicli e variabili) e della gestione dei file sequenziali...
    Allora, per il codice che hai scritto, o 'case = 0 o = 1' è uguale, perchè il fatto che metti la variabile-contatore (I),a 12, è solo un incremento che inizia da 12 invece che da 1... NON influisce sul numero riga del file che leggi, quindi riparte dalla riga 1!.
    Per leggere il secondo blocco di righe, o crei un ciclo 'fittizio' fino ad 11 e dalla 12 'popoli' la listbox oppure, potresti 'precaricare' in un vettore di stringhe, es. di N righe e poi lavori su quel Vettore-testo scandendolo con opportuno Indice (I).
    Un'altra cosa da ricordare lavorando con l'OPEN di file testo, è che il 'CLOSE #NFile', riporta il puntatore del file testo aperto in lettura, all'inizio...
    Credo che mettere N righe del file su un vettore, es., Righe(22), e potrebbe andare bene anche per 300 righe e potresti leggere porzioni es. di 20 righe..., sia il metodo migliore, perchè sai che ponenedo l'indice di scansione del vettore (I) = 50, sarai posizionato alla 50.ma riga... e così via....
    Saluti, dall'Isola d'Elba...
  • Re: Leggere da riga x a riga y di un file txt

    Intanto grazie, però aspetta aspetta il select case lo uso in abbinamento con una combobox, e non centra niente con quali righe leggere. te fai finta che il select case non esiste
  • Re: Leggere da riga x a riga y di un file txt

    Il select case in abbinamento con il listindex della combobox lo uso solo per sapere quando andare a leggere la 1a parte o la 2a parte del testo.
    ora provo con dei cicli fittizi come da tuo suggerimento....

    Grazie

    Buone vacanze
  • Re: Leggere da riga x a riga y di un file txt

    Si, si, ti avevo capito...
    Ti dicevo solo, che in entrambi i casi del 'CASE' i cicli, al di la che dai dei valori diversi alla variabile 'I', re-inizia sempre a leggere il file dalla riga n. 1.
    Inoltre, ti consiglio di mettere un 'OPEN...' e relativo 'Close #N', in ogni sezione 'CASE' in modo di rendere indipendente la gestione del file...
    Poi, se vuoi leggere i primi 11 righi del file OK come avevi fatto.... per le righe dal 12 in poi, prima scandisci i primi 11 senza caricarli nella listBox poi dalla 12 li carichi...
    Dai che vedrai ci riuscirai...
    Grazie.
  • Re: Leggere da riga x a riga y di un file txt

    Infatti li ho fatti così, ho fatto dei cicli fittizi senza inserirli nella listbox, e ho inserito solo quelli che interessavano a me
Devi accedere o registrarti per scrivere nel forum
5 risposte