Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Lettura di una specifica linea da un file di testo TXT
Forum - Visual Basic 6 - Lettura di una specifica linea da un file di testo TXT

Avatar
dylan666 (Normal User)
Pro


Messaggi: 129
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 16:55
Lunedì, 07/06/2010
Salve a tutti,
ho ben presente il ciclo per la lettura di un TXT linea per linea in modo da leggere tutte le righe di un testo, ma nel caso io volessi solo (dico per dire) la riga numero 2?

Grazie della risposta

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 17:29
Lunedì, 07/06/2010

PM Quote
Avatar
dylan666 (Normal User)
Pro


Messaggi: 129
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 9:38
Martedì, 08/06/2010
Il codice postato nell'altra discussione è il seguente:

Codice sorgente - presumibilmente VB.NET

  1. Dim stringa As String, x As Integer, i As Integer
  2.  
  3. Open "lista.txt" For Input As #1
  4. For x = 0 To i = 2   ' i = numero della riga da leggere
  5. Line Input #1, stringa
  6. MsgBox (stringa)
  7. Next x
  8. Close #1



Mettiamo caso che io voglia fare un MsgBox(stringa) solo e unicamente della seconda riga
Io provo quel codice ma mi fa il MsgBox con dentro sempre la prima riga, come mai?

Grazie ancora della vostra preziosa collaborazione

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 10:14
Martedì, 08/06/2010
L'errore e quì:

For x = 0 To i = 2  

Se vuoi che i sia uguale a due devi dichiararlo prima del for

i = 2  
For x = 0 To i  

Così come è scritto viene preso in considerazione come valore i=2 dove i in vb6, essendo stato appena dichiarato, è uguale a 0, per cui quella uguaglianza dà come risultato falso, ovvero 0

Ultima modifica effettuata da Alfonso il 08/06/2010 alle 10:20
PM Quote
Avatar
dylan666 (Normal User)
Pro


Messaggi: 129
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 15:41
Martedì, 08/06/2010
Ho cambiato il codice così:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Command1_Click()
  2. Dim stringa As String, x As Integer, i As Integer
  3. i = 1
  4.  
  5. Open "lista.txt" For Input As #1
  6. For x = 0 To i    ' i = numero della riga da leggere
  7. Line Input #1, stringa
  8. MsgBox (stringa)
  9. Next x
  10. Close #1
  11. End Sub



Ma nemmeno così funziona... il ciclo passa tre volte sul MsgBox e mi legge tutti e tre le righe invece di una solamente...

Ho sbagliato io?

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 16:47
Martedì, 08/06/2010
Da come l'hai scritta direi che passa due volte su MsgBox, ovvero con x=0 e x=1.
Se vuoi vedere solo quando x=1
Codice sorgente - presumibilmente VB.NET

  1. For x = 0 To i    ' i = numero della riga da leggere
  2.   Line Input #1, stringa
  3.   If x=1 then
  4.     MsgBox (stringa)
  5.   end if
  6. Next x


PM Quote
Avatar
dylan666 (Normal User)
Pro


Messaggi: 129
Iscritto: 08/09/2009

Segnala al moderatore
Postato alle 7:51
Giovedì, 10/06/2010
Speravo si riuscisse a fare solo con il ciclo e senza usare un IF
Se così non è, grazie del prezioso suggerimento

PM Quote
Avatar
Alfonso (Ex-Member)
Guru


Messaggi: 688
Iscritto: 30/09/2009

Segnala al moderatore
Postato alle 11:26
Giovedì, 10/06/2010
Ma allora il MsgBox non lo metti dentro al ciclo.
effettui il ciclo e una volta finito guardi la stringa.
Codice sorgente - presumibilmente Visual Basic 6

  1. i = 1
  2. For x = 0 To i    ' i = numero della riga da leggere
  3.   Line Input #1, stringa
  4. Next x
  5. MsgBox (stringa)


PM Quote