Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pamalagoli

Pegar dados de arquivo txt e passar para variáveis

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.