Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite.
Tenho um arquivo .txt que contém oito dados por registro nesta forma: numero, data, dezena 1, dezena 2, dezena 3, dezena 4, dezena 5, dezena 6.
Tento acessá-lo para pegar somente os numeros que estão contidos nas dezenas, mas sempre dá uma msg de erro.
O código:
Existem vários comentários que fazem parte dos testes que fiz.
Erro que aparece:
Error '13' em tempo de execução
Type mismatch ( incompatibilidade de tipo)
Private Sub Command1_Click()
'Essa primeira parte é só para carregar os números primos contidos na variável Arq_numeros_primos. Funciona corretamente.
Dim Arq_numeros_primos As String
Dim numpri(1 To 25) As Integer
Arq_numeros_primos = "C:/Documents and Settings/PauloM/Desktop/Programa Megasena/numprim/numeros_primos.txt"
Open Arq_numeros_primos For Input As #1
Do While Not EOF(1)
For i = 1 To 25
Line Input #1, reg
numpri(i) = reg
Debug.Print reg, numpri(i)
Next
Loop
Close #1
'Dezenas = Split(Linha, ";")
'Aqui na segunda parte é que dá dando o erro.
Dim Arq_Resultado_da_mega_sena As String
Dim regi As Variant 'Já tentei como String, Integer mas dá a mesma msg de erro
'Dim valores As String
Dim cont As Integer
'Dim dez(7) As String 'Matriz com 8 elementos. Tmb tentei e dá mesma msg erro
'Dim dezenas As Integer
Dim tamanho As Integer
Dim linhas As Variant 'Já tentei como String, Integer mas dá a mesma msg de erro
Dim d1, d2, d3, d4, d5, d6 As Integer
Arq_Resultado_da_mega_sena = "C:/Documents and Settings/PauloM/Desktop/Programa Megasena/numprim/Resultado da Mega-sena.txt"
'cont = 0
Open Arq_Resultado_da_mega_sena For Input As #1
Do While Not EOF(1)
'For X = 1 To 3 '1653
'For Y = 3 To 8
'cont = cont + 1
For i = 1 To 3
Line Input #1, regi
'dez = Split(regi, ";")
linhas = Split(regi, ";") 'Na execução a varável linhas está vazia, regi contém o primeiro registro do arquivo. e i = 1
linhas = Trim(linhas) ' O erro tá aparecendo nesta linha
tamanho = Len(linhas)
d1 = Right(linhas, 2) 'd1 = dez(2)
d2 = Mid(linhas, tamanho - 5, tamanho - 3) 'd2 = dez(3)
d3 = Mid(linhas, tamanho - 7, tamanho - 5) 'd3 = dez(4)
d4 = Mid(linhas, tamanho - 9, tamanho - 7) 'd4 = dez(5)
d5 = Mid(linhas, tamanho - 11, tamanho - 9) 'd5 = dez(6)
d6 = Mid(linhas, tamanho - 13, tamanho - 11) 'd6 = dez(7)
Debug.Print regi, d1, d2, d3, d4, d5, d6 'dez,
If i = 3 Then 'cont = 3 Then 'São 1653 registros. Como estou testando, faço o programa parar após o terceiro registro.
Exit For
Exit Do
End If
Next
Loop
Close #1
End Sub
Obrigado por qualquer ajuda que puderem me dar!
Paulo
Carregando comentários...