LER ARQUIVO DE TEXTO
Boa tarde,
Galera, estou com uma dúvida URGENTE =/
Estou tendo que importar um aquivo texto com n linhas porém ao inportar o sistemas esta lendo tudo como se estivesse na mesma linha ignorando o enter...ao abrir o arquivo com bloco de notas no local do enter tem uma especie d eum "quadradinho"...
Alguem sabe alguma forma de ler este quadradinho ou então de ler o arquivo delimitando a quantidade de colunas de uma linha, por exemplo eu sei que o arquivo tem fixado 400 colunas por linha, ou seja se tivesse alguma forma de eu ler de 400 em 400 colunas...fazendo um loop pra ler todas as linhas ou algo assim....
qualquer ajuda é muito bem vinda.
Obrigado galera que sempre tem me dado uma força ae =)
Abraço,
Diego
Galera, estou com uma dúvida URGENTE =/
Estou tendo que importar um aquivo texto com n linhas porém ao inportar o sistemas esta lendo tudo como se estivesse na mesma linha ignorando o enter...ao abrir o arquivo com bloco de notas no local do enter tem uma especie d eum "quadradinho"...
Alguem sabe alguma forma de ler este quadradinho ou então de ler o arquivo delimitando a quantidade de colunas de uma linha, por exemplo eu sei que o arquivo tem fixado 400 colunas por linha, ou seja se tivesse alguma forma de eu ler de 400 em 400 colunas...fazendo um loop pra ler todas as linhas ou algo assim....
qualquer ajuda é muito bem vinda.
Obrigado galera que sempre tem me dado uma força ae =)
Abraço,
Diego
tem como vc postar aqui um pedaço do arquivo texto com esse quadradinho?
Precisa ser em ANEXO no post, e não copiar e colar a linha
Precisa ser em ANEXO no post, e não copiar e colar a linha
O arquivo encontra-se em anexo.......e a função que estou usando para ler o mesmo é a seguinte:
------------------------
Agradeço desde já pela atenção, sempre que precisei o pessoal do forum me ajudou. obrigado
Private Sub cmd_Importar_Click()
Dim Arquivo As String
'verifica se existe algum arquivo selecionado
If Trim(File1.Path) = "" Or Trim(File1.FileName) = "" Then Exit Sub
Arquivo = File1.Path & "\" & File1.FileName
prc_MsgBarra "Iniciando Importação"
' *** Importando dados do Bradesco
Open Arquivo For Input As #2
prc_MsgBarra "Importando Dados..."
Do While Not EOF(2)
'captura a proxima linha
Line Input #2, wrk_StrImport
If Mid(Trim(wrk_StrImport), 1, 1) = 1 Then 'Registro tipo 1 (somente este tipo interessa)
If Mid(Trim(wrk_StrImport), 109, 2) = "06" Or Mid(Trim(wrk_StrImport), 109, 2) = "17" Or Mid(Trim(wrk_StrImport), 109, 2) = "10" Then ' Liquidição tÃtulo
wrk_NumDoc = Val(Mid(Trim(wrk_StrImport), 117, 10))
SQL = "Update tab_GastosCredito set vfd_FlagBaixa = 1 where vfd_NumDocumento = " & wrk_NumDoc
Cn.Execute (SQL)
End If
End If
Loop
Close #2
MsgBox "Importação realizada com sucesso!", vbInformation
prc_MsgBarra "Importação realizada!"
End Sub
------------------------
Agradeço desde já pela atenção, sempre que precisei o pessoal do forum me ajudou. obrigado
Tente ao abrir no NotePad abra no RichTextBox
Inclua no projeto um richtextbox depois para carregar algum arquivo use assim:
RICHTEXTBOX1.LoadFile(CAMINHO)
veja se agora os | são subtituÃdos pelo Enter !!
Abraços !!
Inclua no projeto um richtextbox depois para carregar algum arquivo use assim:
RICHTEXTBOX1.LoadFile(CAMINHO)
veja se agora os | são subtituÃdos pelo Enter !!
Abraços !!
desculpe é que na verdade estas informações irão alimentar um banco de dados diretamente.....creio que no exemplo do richtextbox não resolveria...=/
esse quadradinho equivale ao caractere CarrierReturn (código ASCII 10)
o que vc pode fazer é ler assim:
Open sCaminho For Input As iArquivo
sTexto = Input(LOF(iArquivo), iArquivo)
Close iArquivo
vLinhas = Split(sTexto, chr(10))
e trabalhar com as linhas:
vLinhas(0) = linha 1
vLinhas(1) = linha 2
...
vLinhas(n) = linha n-1
pra cada indice do array vc vai ter uma linha do seu texto.
AÃ vc trabalha com o texto.
OU
vc le o arquivo, faz um replace (texto, asc(10), vbCrLf)
e mantem a rotina.
o que vc pode fazer é ler assim:
Open sCaminho For Input As iArquivo
sTexto = Input(LOF(iArquivo), iArquivo)
Close iArquivo
vLinhas = Split(sTexto, chr(10))
e trabalhar com as linhas:
vLinhas(0) = linha 1
vLinhas(1) = linha 2
...
vLinhas(n) = linha n-1
pra cada indice do array vc vai ter uma linha do seu texto.
AÃ vc trabalha com o texto.
OU
vc le o arquivo, faz um replace (texto, asc(10), vbCrLf)
e mantem a rotina.
Para utilizar o replace como foi indicado pelo angelo acima eu sibstituiria qual parte na minha rotina, (minha rotina esta acima), desculpa estar perguntando isso é que ja fundi todos os meus DOIS neuronios com esse caso, to meio perdidão...=/
Obrigado pela atenção galera =)
Obrigado pela atenção galera =)
Colega, abri o arquivo e de fato só tinha uma linha, mas tb não tinha quadrado algum...
Se quiser ler de 400 em 400 vc pode usar assim:
Se quiser ler de 400 em 400 vc pode usar assim:
Private Sub cmd_Importar_Click()
Dim Arquivo As String
Dim Dado As String
Dim i As Integer
'verifica se existe algum arquivo selecionado
If Trim(File1.Path) = "" Or Trim(File1.FileName) = "" Then Exit Sub
Arquivo = File1.Path & "\" & File1.FileName
prc_MsgBarra "Iniciando Importação"
' *** Importando dados do Bradesco
Open Arquivo For Input As #2
prc_MsgBarra "Importando Dados..."
Dado = Input(LOF(2), 2)
Close #2
For i = 1 To Len(Dado) Step 400
'captura a proxima linha
wrk_StrImport = Mid(Dado, i, 400)
If Mid(Trim(wrk_StrImport), 1, 1) = 1 Then 'Registro tipo 1 (somente este tipo interessa)
If Mid(Trim(wrk_StrImport), 109, 2) = "06" Or Mid(Trim(wrk_StrImport), 109, 2) = "17" Or Mid(Trim(wrk_StrImport), 109, 2) = "10" Then ' Liquidição tÃtulo
wrk_NumDoc = Val(Mid(Trim(wrk_StrImport), 117, 10))
SQL = "Update tab_GastosCredito set vfd_FlagBaixa = 1 where vfd_NumDocumento = " & wrk_NumDoc
Cn.Execute (SQL)
End If
End If
Next i
MsgBox "Importação realizada com sucesso!", vbInformation
prc_MsgBarra "Importação realizada!"
End Sub
Obrigado pela atenção.
Resolveu o problema!
Resolveu o problema!
Tópico encerrado , respostas não são mais permitidas