NUMERO DE LINHAS DE UM TXT

USUARIO.EXCLUIDOS 30/11/2006 15:54:18
#187251
Preciso mostrar a progressão da importação de um arquivo txt, mas não sei como obter o numero de linhas sem ter que percorrer ele todo

Como faço para saber o número de linhas do arquivo ?

faço o seguinte pra abrir um arquivo .txt
Dim F As Long
F = FreeFile
Open ArquivoEscolhido For Input As F

Obrigado!

USUARIO.EXCLUIDOS 30/11/2006 16:05:52
#187254
Colega, infelizmente, a única forma de saber o número de linhas, é lendo o arquivo, claro que existem maneiras mais rápidas de ler, a que acho melhor seria assim:

Neste exemplo simulo uma barra de progresso de nome pbrTXT:

Dim F As Long, i As Integer
Dim Linha() As String
F = FreeFile
Open ArquivoEscolhido For Input As #F
'Carrega os dados do arquivo
Linha = Split(Input(LOF(F), F), vbCrLf)
Close #F
pbrTXT.Max = UBound(Linha) 'Número de linhas
For i = 0 To UBound(Linha)
'Aqui vc usa seus códigos, sendo que Linha(i) será
'o conteúdo da linha atual:
MsgBox Linha(i), vbInformation, "Conteúdo da linha " & (i + 1)
Next i


é isso, qualquer dúvida poste...flw
LIONHEART 01/12/2006 07:51:14
#187312
Resposta escolhida
Citação:

MATIOLI escreveu:
Colega, infelizmente, a única forma de saber o número de linhas, é lendo o arquivo, claro que existem maneiras mais rápidas de ler, a que acho melhor seria assim:

Neste exemplo simulo uma barra de progresso de nome pbrTXT:

Dim F As Long, i As Integer
Dim Linha() As String
F = FreeFile
Open ArquivoEscolhido For Input As #F
[à']Carrega os dados do arquivo
Linha = Split(Input(LOF(F), F), vbCrLf)
Close #F
pbrTXT.Max = UBound(Linha) [à']Número de linhas
For i = 0 To UBound(Linha)
[à']Aqui vc usa seus códigos, sendo que Linha(i) será
[à']o conteúdo da linha atual:
MsgBox Linha(i), vbInformation, [Ô]Conteúdo da linha [Ô] & (i + 1)
Next i


é isso, qualquer dúvida poste...flw




Matioli, eu tenho uma sugestão muito mais simplezinha que já postei aqui 200x rsrsrs :-)

Open "C:\arquivo.txt" For Input As iArquivo
vLinhas = Split(Input(LOF(iArquivo), iArquivo), vbCrLf)
Close iArquivo

[txt-color=#3333ff]qtdeLinhas[/txt-color]= UBound(vLinhas) - LBound(vLinhas) + 1



Hehehehehehe, de um tempo pra cá ARRAY é a minha resposta pra tudo rsrsrs

Mas uma observação sua é FATO.

Ele realmente vai precisar ler o arquivo pra saber o tamanho dele.
Tópico encerrado , respostas não são mais permitidas