IMPORTACAO DE ARQUIVO TXT PARA BD
Estou tentando importar um arquivo txt, mas quando chega em um certo ponto que tem uma virgula dá erro porque ela para na virgula e depois continua depois da virgula e não na proxima linha, estou tentando assim:
Dim vai As String
Dim LOGTXT As String
Caminhofile = "C:\ARQUIVO.txt"
Dim MyNumber
Open Caminhofile For Input As #1 ' Open file for input.
Do While Not EOF(1) ' Loop until end of file.
Input #1, LOGTXT ' Read data into two variables.
If LOGTXT "" Then
camp1 = Mid$(LOGTXT, 1, 6)
camp2 = Mid$(LOGTXT, 7, 10)
camp3 = Mid$(LOGTXT, 17, 6)
camp4 = Mid$(LOGTXT, 23, 60)
camp5 = Mid$(LOGTXT, 83, 100)
TBCadastro.AddNew
TBCadastro!CODEMPRESA = camp1
TBCadastro!Data = camp2
TBCadastro!CODCONTA = camp3
TBCadastro!HISTORICO = camp4
TBCadastro!VALOR = camp5
TBCadastro.Update
End If
Loop
Close #1
Se essa virgula estiver no "camp5" voce tera de trocar a virgula para ponto antes de inserir no banco !
Tente assim:
Dim vai As String
Dim LOGTXT As String
Caminhofile = "C:\ARQUIVO.txt"
Dim MyNumber
Open Caminhofile For Input As #1 ' Open file for input.
Do While Not EOF(1) ' Loop until end of file.
Input #1, LOGTXT ' Read data into two variables.
If LOGTXT "" Then
camp1 = Mid$(LOGTXT, 1, 6)
camp2 = Mid$(LOGTXT, 7, 10)
camp3 = Mid$(LOGTXT, 17, 6)
camp4 = Mid$(LOGTXT, 23, 60)
camp5 = Mid$(LOGTXT, 83, 100)
camp5 = Replace(camp5 , ".","") 'Remove pontos
camp5 = Replace(camp5 , ",",".") 'Troca virgula por ponto
TBCadastro.AddNew
TBCadastro!CODEMPRESA = camp1
TBCadastro!Data = camp2
TBCadastro!CODCONTA = camp3
TBCadastro!HISTORICO = camp4
TBCadastro!VALOR = camp5
TBCadastro.Update
End If
Loop
Close #1
Edite esse arquivo no EDIT ou no WORDPAD e faça uma verficação visual nesse arquivo... deve haver algum caracter estranho entre o 100 e o 89 para que isso ocorra !
Se puder me mande esse arquivo para eu dar uma olhada num editor em formato hexadecimal !
Qual editor de textos você usou para visualizar o arquivo ?
Eu havia pensado que o problema estava no formato do seu arquivo, mais não é isso não !
Além de trocar as virgulas por ponto conforme meu primeiro post troque a função "Input" por "Line Input"...
A função "Line Input" le a linha toda até os caracteres CRLF (exclusive) e armazena numa variável, já a função "Input" le uma linha e joga em lista de variaves sendo a virgula é tratada como um delimitar de campo.
Tópico encerrado , respostas não são mais permitidas