USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (Arquivos/Diretórios)

Título da Dica:  Abrindo arquivo texto somente 1 vez mostrando progresso
Postada em 22/1/2008 por ghost_jlp            
Em um novo projeto coloque uma progressbar, um botão de comando e uma label.
Dimensione a label de modo que caiba 3 linhas. A seguir cole o código no evento click do botão conforme exemplo abaixo:

Private Sub Command1_Click()
Dim x As Long
Dim total As Long

'OBS.: Troque | (pipe) por barra invertida.

Open "c:|teste.txt" For Input As #1
ProgressBar1.Value = 0
ProgressBar1.Min = 0
ProgressBar1.Max = 100
total = LOF(1)

Do While Not EOF(1)
    DoEvents
    Line Input #1, linha
    x = x + Len(linha & vbNewLine)
    ProgressBar1.Value = Format(x * 100 / total, "###.#0")
    Label1 = ProgressBar1.Value & "%" & vbNewLine & "Registros Lidos: " & _
    x & vbNewLine & "Total de Registros: " & total
Loop

Close #1
End Sub


SÓ ISSO!! :)

No exemplo acima estamos contando o nº de caracteres(bytes) contidos em uma linha. Pela função LOF (pode ser usado também a FileLen()) sabemos o tamanho do arquivo em bytes. Considerando que o "pulo de linha" contém 2 bytes (vbnewline) então eu conto a quantidade de caracteres na linha mais 2 bytes. Deste modo, conforme exemplo, sei qtos bytes tenho no arquivo o que nos dá a possibilidade de fazer a barra de progresso sem precisar contar a linhas, fechar o arquivo e abrir novamente.

Prático não?! :P

Até a próxima!!
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página