|
|
|
|
|
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!!
|
|
|
|
|