[VB6]ERRO OVERFLOW 6

GUARDE 05/01/2012 03:33:41
#392434
bom, estou tentando fazer um programa que liste os arquivos do diretorio, no qual o outro amigo me passou parte da souce.

bom a questao é, consigo listar perfeitamente, mas quando tentao por alem de listar ele criar o CRC do arquivo, quando tem uns 20 na pasta ele da erro de overflow,

se eu desativo a parte responsavel do CRC,[txt-color=#e80000] [Ô] & [Ô]|[Ô]; Hex(mCRC.CRC(LstArq.List(i)))[Ô][/txt-color], ele lista todos arquivos sem problemas.

Citação:

Option Explicit
Public fso As New Scripting.FileSystemObject
Dim i As Currency
Dim mCRC As New CRC
Private Sub cmdListar_Click()
LstArq.Clear
Localizar_Arquivos fso.GetFolder(txtDir.Text), LstArq
End Sub
Sub Localizar_Arquivos(Dir As Folder, lstBX As ListBox)
On Error GoTo Tratar:
Dim arquivo As File, SubDir As Folder

For Each arquivo In Dir.Files
DoEvents
lstBX.AddItem arquivo.Path
Next

For Each SubDir In Dir.SubFolders
DoEvents
Localizar_Arquivos SubDir, lstBX
Next
Exit Sub

Tratar:
MsgBox [Ô]Erro número : [Ô] & Err.Number & vbNewLine _
& [Ô]Descrição do erro : [Ô] & Err.Description

End Sub
Private Sub cmdSalvar_Click()

Open txtDir.Text & [Ô]teste.txt[Ô] For Output As #1 [ô]for output apagará todos os dados anteriormente gravados em teste.txt
For i = 0 To LstArq.ListCount - 1
Print #1, LstArq.List(i) & [Ô]|[Ô]; Hex(mCRC.CRC(LstArq.List(i)))
Next i
Close #1
MsgBox [Ô]Lista Criada[Ô], vbInformation, [Ô]Aviso[Ô]

End Sub
Private Sub Form_Load()
txtDir.Text = App.Path & [Ô]\[Ô]
End Sub

DANLEONHART 05/01/2012 07:42:20
#392435
Olá...

Não tenho certeza, mas tente trocar o tipo de Currency para Long:

Dim i As Currency
[ô] Substitua por :
Dim i As Long


Só sugestão
KERPLUNK 05/01/2012 08:41:14
#392437
Experimente fazer assim:
Print #1, LstArq.List(i) & [Ô]|[Ô] & Hex(mCRC.CRC(LstArq.List(i)))
GUARDE 05/01/2012 16:42:03
#392482
nenhuma das duas dicas funcionaram =/

to usando no projeto, 1 textbox, 1 listbox, 2 command, listar e salvar.

@offtopic qual a tag do codigo colorido?
GUARDE 05/01/2012 19:07:20
#392499
Citação:

:
Não entendi porque esse i é currency, e não integer ou long, currency é pata tipo moeda



eu tentei com currency pq aceita moeda, no caso maior valor, mas mesmo em integer ou long da erro =/
ASHKATCHUP 05/01/2012 19:29:31
#392503
Resposta escolhida
tenta depurar, encontre qual função da o erro.

Descubra se é a [Ô]HEX[Ô] ou se é esse teu [Ô]MCRC[Ô].
GUARDE 05/01/2012 20:10:28
#392507
Citação:

:
tenta depurar, encontre qual função da o erro.

Descubra se é a [Ô]HEX[Ô] ou se é esse teu [Ô]MCRC[Ô].



é o hex o.O cmo faz?
ASHKATCHUP 05/01/2012 20:15:44
#392508
Primeiro, pq tu ta usando a função HEX? Faz parte da tua lógica?

Segundo, o que a função [Ô]CRC[Ô] retorna?
GUARDE 05/01/2012 20:36:33
#392509
bom, ele retorna as CRC dos arquivos da pasta, porem em decimal, ai eu quero converter para retornar em hexadecimal, e retorna um valor menos, mas que seja em 32bits nao em 16bits
ASHKATCHUP 06/01/2012 09:19:06
#392532
Eu não sabia o que era CRC, então procurei no google. Pelo que entendi, é um [Ô]sumcheck[Ô] né? Verifica a integridade dos arquivos.

Bom... Se a função HEX é que esta gerando o erro, suponho que o parâmetro que tu ta passando pra ela está acima do limite de variável.

Se REALMENTE for a HEX que da erro, sugiro tu usar outra função ou fazer a conversão manualmente...
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas