Newsgroup: it.comp.lang.visual-basic
Titolo: [?] numero EFFETTIVO linee in un file

Come posso, attraverso un loop contare le linee in un file di qualsiasi
tipo?
Grazie
Filer

 wrote in message
aG5q6.39661$Xj7.2...@news.infostrada.it...


tipo?
Hm... e' un po' che non faccio niente con i files ma solo con DB, pero' non
e' difficile.
Ammettendo che NON ci sia gia' una funzione che lo fa, e supponendo che tu
stia lavorando con files sequenziali, bisogna leggere tutto il file (Che NON
e' molto efficiente)
Public Function FileLength(FileName As String) As Long
    On Error GoTo LocalFileError
    nFile = FreeFile
    FileLength = 0
    Open FileName For Input As nFile
    While Not EOF(1)
        Line Input #1, RString
        FileLength = FileLength + 1
    Wend
    Close nFile
    Exit Function
LocalFileError:
    On Error GoTo 0
End Function
Piero "Giops" Giorgi
---
gi...@glidersusa.net
http://www.geocities.com/pgiorgi
-- 
Posted from [131.243.167.71] by way of 
oe68.law12.hotmail.com
 [64.4.18.203] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 (se è troppo complicato lasciate stare, mi arrangerò in un altro modo)
Option Explicit
Sub Main()
  Dim intNFile        As Integer
  Dim strFullFileName As String
  Dim lngRows         As Long
  strFullFileName = "c:\test.txt"
  intNFile = FreeFile(0)
  Open strFullFileName For Input As intNFile
  lngRows _
    = 1 _
    + UBound(Split(Input$(LOF(intNFile), intNFile), vbCrLf))
  Close
  Debug.Print "Righe: "; Format$(lngRows, "#,##0")
End Sub
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

OOOOPSSS!!!!
    While Not EOF(nFile)
        Line Input #nFile, RString
        FileLength = FileLength + 1
    Wend
 
Bello.
Prima cerco il file libero e poi forzo il file#1!!!
Furbo!
Piero "Giops" Giorgi
---
gi...@glidersusa.net
http://www.geocities.com/pgiorgi
-- 
Posted from [131.243.167.71] by way of 
oe20.law12.hotmail.com
 [64.4.18.124] 


     + UBound(Split(Input$(LOF(intNFile), intNFile), vbCrLf))
Per la miseria, è una delle più ingegnose righe di codice in VB che abbia
mai visto!
Eleganza a parte, temo però si mangi risorse peggio di un branco di capre su
di un campo di calcio: Mi leggo tutto il file in memoria, lo passo alla
split (che chiama implicitamente e iterativamente la instr), creo un array
di variant solo per contarne gli elementi con la ubound e poi distruggo
tutto. Certo che se il file è per caso lungo una decina di mega, fai in
tempo a farti le ferie prima di avere il risultato.
Ciao
*Roby*

Come file intendo file binary o testo o random.
Grazie a tutti delle risposte. Ora le provo poi risponderò.

 mai visto!
concordo su tutta la linea!
però vedi, io volevo contare le linee di un file come te le trovi se lo apri
con il blocco note di papà windows.
queste funzioni fungono solo su file di testo.
io avevo pensato di trasferire interamente il file su un textbox o un
listbox... anzi no, è una caxxata. bho!
comunque, fa niente se non è veloce, basta che le conti precisamente

 queste funzioni fungono solo su file di testo.
Non ho capito bene. Contare le linee di un file binario non ha molto senso,
no? In un file binario, la lunghezza del record (o linea, se preferisci) la
dovresti decidere tu, mica il file.
Solo in un file di testo sono contenuti i CrLf con lo scopo di cambiare
linea, in un file binario se ci trovi un CrLf è probabilmente un caso.
Magari spiega meglio cosa vuoi fare.
Ciao
*Roby*

 concordo su tutta la linea!
Ovviamente anche io!... ;-)
A mia parziale discolpa, ammesso ve ne sia bisogno, faccio presente la mia
volonta` di stimolare la fantasia e l'approfondimento...
--
Ciao :-)


 volonta` di stimolare la fantasia e l'approfondimento...
Guarda che comunque la mia voleva essere più un complimento che una critica.
Vedere del codice scritto così fa scattare un piacevole click nel cervello.
8-)
Ciao
*Roby*