Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Ajuda txt file e vb6


NaM4

Pergunta

Olá pessoal, pesso encarecidamente ajuda de vocês, pois estou a tempo já procurando como fazer...

bom tenho um programa de carga, onde pega linhas do txt e joga no banco de dados sqlserver...

está funcionando perfeitamente, porém encontrei uma exception... ela é a seguinte:

caso no txt tenha ENTERS, ou seja linhas em branco a carga não é feita corretamente, pois meu txt é delimitado por PIPE ("|")

exemplos:

TXT FUNCIONANDO:

007|21.07.01.068|2,53|2010
007|21.07.01.069|1,94|2010
007|21.07.01.070|3,56|2010
007|21.07.01.071|3,55|2010
007|21.12.01.004|3,07|2010
007|21.12.01.011|3,37|2010
TXT não FUNCIONANDO:
007|21.07.01.068|2,53|2010
007|21.07.01.069|1,94|2010
007|21.07.01.070|3,56|2010
007|21.07.01.071|3,55|2010
007|21.12.01.004|3,07|2010
007|21.12.01.011|3,37|2010



_
OBS: ignorem o underline, só coloquei para simular os espaços em branco no arquivo! note que no segundo bloco de codigo tem espaços (ENTERS PRESSIONADOS) após a ultima linha do txt que tem conteudo... e a carga não funciona... minha dúvida é como fazer para que meu programa ignore estas linhas em branco, ou simplesmente faça um replace nelas para 3 pipes, exemplo:
007|21.07.01.068|2,53|2010
007|21.07.01.069|1,94|2010
007|21.07.01.070|3,56|2010
007|21.07.01.071|3,55|2010
007|21.12.01.004|3,07|2010
007|21.12.01.011|3,37|2010
|||
|||
|||
|||

obrigado desde já..

abraços

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

olá kuroi, primeiramente obrigado pela resposta...

bom, não creio q tenha q utilizar o trim pois não há espaço nas linhas, apenas os ENTERS...

voltando, eu tenho que por o IF na hora de colocar os valores do txt na variavel correto?

seria algo + - assim?:

Do While fsStream.AtEndOfStream = False
        
       
        
        line = Split(fsStream.ReadLine, "|")
              If line(0) <> vbCrLf Then
        
        NovoValor00 = Replace(line(0), "'", " ")
        NovoValor01 = Replace(line(1), "'", " ")
        NovoValor02 = Replace(line(2), "'", " ")
        NovoValor03 = Replace(line(3), "'", " ")
       
        
        
            con.Execute "INSERT INTO tabela(Col001, Col002, Col003, Col004)  VALUES ('" & NovoValor00 & "','" & NovoValor01 & "','" & NovoValor02 & "','" & NovoValor03 & "')"
            sCodigo_cliente = oRsNome
        
            iContador = iContador + 1
            Form1.progressBar.Caption = iContador & " PDB's de " & Format$(num_lines)
            Form1.statusBar.Caption = "Importando PDB's"
            DoEvents
end if        
Loop

se for isso, não funcionou, ao chegar na ultima linha de conteudo, da erro run-time '9' - subscription out of range

abraços e estou no aguardo!

Link para o comentário
Compartilhar em outros sites

  • 0

não é isso não, o crlf não vem junto com a linha. quando não tiver nd na linha, ele vai vir uma variavel vazia. ai você não pode usar Split(), porque não vai haver retorno. seria assim:

Dim lx As String
Do While fsStream.AtEndOfStream = False
        
       lx = fsStream.ReadLine
        
       If lx <> "" Then

        line = Split(lx, "|")
        
        NovoValor00 = Replace(line(0), "'", " ")
        NovoValor01 = Replace(line(1), "'", " ")
        NovoValor02 = Replace(line(2), "'", " ")
        NovoValor03 = Replace(line(3), "'", " ")
      
        
        
            con.Execute "INSERT INTO tabela(Col001, Col002, Col003, Col004)  VALUES ('" & NovoValor00 & "','" & NovoValor01 & "','" & NovoValor02 & "','" & NovoValor03 & "')"
            sCodigo_cliente = oRsNome
        
            iContador = iContador + 1
            Form1.progressBar.Caption = iContador & " PDB's de " & Format$(num_lines)
            Form1.statusBar.Caption = "Importando PDB's"
            DoEvents
end if        
Loop[/code]

Link para o comentário
Compartilhar em outros sites

  • 0

kuroi, sem palavra pra você...

funcionou meu caro

eu deveria ter vindo aqui a mais tempo... fiquei mexendo em outros foruns especificos e não obtive resultado...estou nisso a 4 dias e nada...

agora com 2 simples respostas sua

eu cosegui

muito obrigado kuroi e scriptbrasil

abraços!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...