Autore Topic: Leggere l'ultima riga di un file  (Letto 607 volte)

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 417
    • Mostra profilo
Leggere l'ultima riga di un file
« il: 23 Settembre 2012, 19:21:45 »
Ciao a tutti, il problema è il seguente: ho un file di testo con all'interno varie rige, io vorrei poter leggere soltanto l'ultima....
Ho trovato la funzione LOF() la quale, se ho ben capito, dovrebbe restituire la dimensione del file (quindi da quante riga è composto?)
Ho quindi assegnato ad una variabile long il risultato di LOF(), che è un numero tipo: 112546...
Ora, non sapendo come leggere solo l'ultima riga, ho impostato un ciclo while che legge il file fino all' EOF().
Ho impostato una variabile "c" come integer è gli ho detto di incrementare il valore di c ad ogni riga letta.
Gli ho poi detto che quando c = LOF() -1 scrivi la riga...ma non restituisce nulla...
Ecco il mio codice:
Codice: [Seleziona]
mypair = Open User.Home &/ "ChartArtist" &/ cross & ".csv" For Read
   While Not Eof(mypair)
     l = Lof(mypair)
     Line Input #mypair, pair
     
     If c < (l - 1) Then
        slice = Split(pair, ";")
        For Each spl In slice 
          GridView1[i, a].Text = spl
          If a < 7 Then
             a = a + 1
          Endif   
        Next
     Endif
La riga va spezzettata ed inserita in un gridview....

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.276
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Leggere l'ultima riga di un file
« Risposta #1 il: 23 Settembre 2012, 19:32:04 »
non sapendo come leggere solo l'ultima riga, ho impostato un ciclo while che legge il file fino all' EOF().
Io semplicemente farei così:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

 Dim a As File
 Dim b As String
 
   a = Open "percorso/del/file/di/testo" For Read

   While Not Eof(a)
      Line Input #a, b
' Se sono giunto alla fine del file, allora mostro la riga:
      If Eof(a) Then Print b
   Wend

End




La riga va spezzettata ed inserita in un gridview....
Se la vuoi spezzettare in ogni sua parola (o meglio: in ogni suo elemento leggibile), allora forse puoi prendere qualche spunto da 'ste cose che mi capitarono di scrivere nella WIKI:
http://www.gambas-it.org/wiki/index.php/Scomporre_una_stringa_e_caricare_ogni_parola_in_una_variabile_array
http://www.gambas-it.org/wiki/index.php/Input
« Ultima modifica: 25 Dicembre 2013, 19:21:39 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 417
    • Mostra profilo
Re: Leggere l'ultima riga di un file
« Risposta #2 il: 23 Settembre 2012, 21:18:17 »
é vero!!, come ho fatto a non pensarci?
Stavo quasi per dividere l'atomo quando invece la soluzione era semplice semplice!!
Grazie mille!
Ok, do uno sguardo al link che mi hai postato!!
Grazie!!! ;)