locked
Split em arquivo texto sem padronização RRS feed

  • Pergunta

  • Bom dia!

    Tenho um arquivo texto que não possui nenhuma formatação.

    Veja o arquivo abaixo:


    Nome do Funcionário Cartão 
    Entrega de Cartão
    Data:
    Hora:
    Página:
    08/09/2009
    9:54:37AM
    1
    Titular: A&C CENTRO DE CONTATOS S/A
    02.455.233/0001-04
    Ordenado por Funcionário
    CNPJ:
    Matrícula
    023632 02DEISY FERREIRA DOS SANTOS 06850000972651 Ass.:______________________________________________
    025971 02MARISA ITALA CAROLINO 06850000667877 Ass.:______________________________________________
    023250 2MONIQUE BELARMINO TAVARES 06850000972867 Ass.:______________________________________________
    027299 2REGINA RODRIGUES DE FREITAS 06850000949463 Ass.:______________________________________________
    023028 ABDOCIO FAGUNDES DOS SANTOS 06850000972508 Ass.:______________________________________________
    028053 ABELARDO MENDONCA NETTO 06850001150346 Ass.:______________________________________________
    016388 ABGAIL DIAS VIEIRA 06850000667806 Ass.:______________________________________________
    022175 ABNER CONTALDO FERREIRA MARTINS 06850000945244 Ass.:______________________________________________
    020501 ACLICIA DOS SANTOS PEREIRA 06850000984442 Ass.:______________________________________________
    014995 ADALBERTO CRSITIANO DE 06850000647386 Ass.:______________________________________________
    017563 ADALBERTO JOSE DA CUNHA JUNIOR 06850000471090 Ass.:______________________________________________
    022605 ADAYANE APARECIDA ALEXANDRE 06850000972766 Ass.:______________________________________________
    015488 ADELAINE NOGUEIRA ALVES 06850000533062 Ass.:______________________________________________
    020184 ADELINA CRISTINA LOPES DOS SANTOS 06850000972709 Ass.:______________________________________________
    007587 ADELINO DE OLIVEIRA BRITO NETO 06850000674996 Ass.:______________________________________________
    022824 ADELMO ANDRADE DIAS 06850000652436 Ass.:______________________________________________
    020917 ADENICE APARECIDA FARINHA 06850000790788 Ass.:______________________________________________
    024064 ADERSON SANTOS DA SILVA 06850000984446 Ass.:______________________________________________
    025321 ADINA LAIS MARQUES BORGES 06850000972616 Ass.:______________________________________________
    028292 ADRIANA ALVES RIBEIRO 06850000984503 Ass.:______________________________________________
    018270 ADRIANA ANDRADE BORGES 06850000533051 Ass.:______________________________________________
    026843 ADRIANA BALDI ENOQUE FREITAS LIMA 06850001081346 Ass.:______________________________________________
    019443 ADRIANA DA SILVA 06850000972611 Ass.:______________________________________________
    022206 ADRIANA DA SILVA CARMO 06850000353775 Ass.:______________________________________________
    025019 ADRIANA DE AZEVEDO SANCHES FERNANDES 06850001083136 Ass.:______________________________________________
    019916 ADRIANA DE JESUS FERREIRA 06850000919093 Ass.:______________________________________________

    Nome do Funcionário Cartão
    Entrega de Cartão
    Data:
    Hora:
    Página:
    08/09/2009
    9:54:37AM
    2
    Titular: A&C CENTRO DE CONTATOS S/A
    02.455.233/0001-04
    Ordenado por Funcionário
    CNPJ:
    Matrícula
    021102 ADRIANA DE OLIVEIRA SILVA 06850000741657 Ass.:______________________________________________
    023239 ADRIANA DIAS DE JESUS 06850001083152 Ass.:______________________________________________
    025031 ADRIANA DOS SANTOS PEREIRA 06850001091289 Ass.:______________________________________________
    023174 ADRIANA EVELIN CORDEIRO 06850000675074 Ass.:______________________________________________
    022693 ADRIANA FERREIRA DOS REIS 06850000972771 Ass.:______________________________________________
    025854 ADRIANA GONCALVES 06850001081371 Ass.:______________________________________________
    028532 ADRIANA MARIA DE SOUZA 06850000949619 Ass.:______________________________________________
    024601 ADRIANA MENDES 06850000970183 Ass.:______________________________________________
    024740 ADRIANA MICHALENE ARAUJO COURA 06850001083138 Ass.:______________________________________________
    003999 ADRIANA NUNES CARNEIRO 06850001061094 Ass.:______________________________________________
    014534 ADRIANA PEREIRA DA SILVA 06850000647607 Ass.:______________________________________________
    013601 ADRIANA PEREIRA DOS SANTOS 06850000470869 Ass.:______________________________________________
    022361 ADRIANA PIRES ANASTACIO 06850000977129 Ass.:______________________________________________
    013755 ADRIANA ROCHA 06850000647224 Ass.:______________________________________________
    007428 ADRIANA SANTOS COSTA 06850000652334 Ass.:______________________________________________
    014868 ADRIANA TAVARES MACHADO DA SILVA 06850000652461 Ass.:______________________________________________
    026049 ADRIANA THAIS DE SOUZA PERAZOLI 06850001042387 Ass.:______________________________________________
    010022 ADRIANE GISELLE DE ARAUJO 06850000982909 Ass.:______________________________________________
    018926 ADRIANE SANTOS DE ALMEIDA 06850000787287 Ass.:______________________________________________
    022002 ADRIANO APARECIDO DINIZ NASCIMENTO 06850001104127 Ass.:______________________________________________
    026403 ADRIANO MEIRA DE CARVALHO 06850000949625 Ass.:______________________________________________
    015297 ADRIANO RODRIGUES 06850000790975 Ass.:______________________________________________
    028335 ADRIANO STEFANO DA SILVA 06850000791852 Ass.:______________________________________________
    025982 ADRIELLY OLIVEIRA AMARAL 06850001150339 Ass.:______________________________________________
    022067 ADRIENE JUNIA DE ALMEIDA BRAGA 06850000984464 Ass.:______________________________________________
    015628 ADRIENE SOARES DE OLIVEIRA 06850000572718 Ass.:______________________________________________

    Nome do Funcionário Cartão
    Entrega de Cartão
    Data:
    Hora:
    Página:
    08/09/2009
    9:54:37AM
    3
    Titular: A&C CENTRO DE CONTATOS S/A
    02.455.233/0001-04
    Ordenado por Funcionário
    CNPJ:
    Matrícula
    015395 ADYZE JULIANA PEREIRA DE ASSIS 06850000788044 Ass.:______________________________________________
    021449 AGNA CAIRES DE SOUZA 06850000984462 Ass.:______________________________________________
    025795 AIEDA REZENDE LEAO 06850000972641 Ass.:______________________________________________
    022316 AKSA BRUNA AMORIM ANTUNES 06850000884250 Ass.:______________________________________________
    011349 ALAIDE SOUZA CARDOSO 06850000470990 Ass.:______________________________________________
    026834 ALAIR GERALDO DE OLIVEIRA 06850001081306 Ass.:______________________________________________
    009537 ALAN AUGUSTO RIBEIRO RESENDE 06850000648467 Ass.:______________________________________________
    023914 ALAN DE OLIVEIRA MATTOS 06850000984452 Ass.:______________________________________________
    016915 ALAN DUARTE DE MELO 06850000984526 Ass.:______________________________________________
    026801 ALAN FRANCIS MARTINS CONRADO 06850001083281 Ass.:______________________________________________
    018286 ALAN GONZAGA MARTINS 06850000819841 Ass.:______________________________________________
    023422 ALAN NUNES 06850001150333 Ass.:______________________________________________


    Meu objetivo é dividir este arquivo e pegar aenas os registros que tenha números nas 5 primeiras colunas, e esse número seja maior do que 999.

    O resultado deste Split deve ser:


    023632 02DEISY FERREIRA DOS SANTOS 06850000972651 Ass.:______________________________________________ 
    025971 02MARISA ITALA CAROLINO 06850000667877 Ass.:______________________________________________
    023250 2MONIQUE BELARMINO TAVARES 06850000972867 Ass.:______________________________________________
    027299 2REGINA RODRIGUES DE FREITAS 06850000949463 Ass.:______________________________________________
    023028 ABDOCIO FAGUNDES DOS SANTOS 06850000972508 Ass.:______________________________________________
    028053 ABELARDO MENDONCA NETTO 06850001150346 Ass.:______________________________________________
    016388 ABGAIL DIAS VIEIRA 06850000667806 Ass.:______________________________________________
    022175 ABNER CONTALDO FERREIRA MARTINS 06850000945244 Ass.:______________________________________________
    020501 ACLICIA DOS SANTOS PEREIRA 06850000984442 Ass.:______________________________________________
    014995 ADALBERTO CRSITIANO DE 06850000647386 Ass.:______________________________________________
    017563 ADALBERTO JOSE DA CUNHA JUNIOR 06850000471090 Ass.:______________________________________________
    022605 ADAYANE APARECIDA ALEXANDRE 06850000972766 Ass.:______________________________________________
    015488 ADELAINE NOGUEIRA ALVES 06850000533062 Ass.:______________________________________________
    020184 ADELINA CRISTINA LOPES DOS SANTOS 06850000972709 Ass.:______________________________________________
    007587 ADELINO DE OLIVEIRA BRITO NETO 06850000674996 Ass.:______________________________________________
    022824 ADELMO ANDRADE DIAS 06850000652436 Ass.:______________________________________________
    020917 ADENICE APARECIDA FARINHA 06850000790788 Ass.:______________________________________________
    024064 ADERSON SANTOS DA SILVA 06850000984446 Ass.:______________________________________________
    025321 ADINA LAIS MARQUES BORGES 06850000972616 Ass.:______________________________________________
    028292 ADRIANA ALVES RIBEIRO 06850000984503 Ass.:______________________________________________
    018270 ADRIANA ANDRADE BORGES 06850000533051 Ass.:______________________________________________
    026843 ADRIANA BALDI ENOQUE FREITAS LIMA 06850001081346 Ass.:______________________________________________
    019443 ADRIANA DA SILVA 06850000972611 Ass.:______________________________________________
    022206 ADRIANA DA SILVA CARMO 06850000353775 Ass.:______________________________________________
    025019 ADRIANA DE AZEVEDO SANCHES FERNANDES 06850001083136 Ass.:______________________________________________
    019916 ADRIANA DE JESUS FERREIRA 06850000919093 Ass.:______________________________________________
    021102 ADRIANA DE OLIVEIRA SILVA 06850000741657 Ass.:______________________________________________
    023239 ADRIANA DIAS DE JESUS 06850001083152 Ass.:______________________________________________
    025031 ADRIANA DOS SANTOS PEREIRA 06850001091289 Ass.:______________________________________________
    023174 ADRIANA EVELIN CORDEIRO 06850000675074 Ass.:______________________________________________
    022693 ADRIANA FERREIRA DOS REIS 06850000972771 Ass.:______________________________________________
    025854 ADRIANA GONCALVES 06850001081371 Ass.:______________________________________________
    028532 ADRIANA MARIA DE SOUZA 06850000949619 Ass.:______________________________________________
    024601 ADRIANA MENDES 06850000970183 Ass.:______________________________________________
    024740 ADRIANA MICHALENE ARAUJO COURA 06850001083138 Ass.:______________________________________________
    003999 ADRIANA NUNES CARNEIRO 06850001061094 Ass.:______________________________________________
    014534 ADRIANA PEREIRA DA SILVA 06850000647607 Ass.:______________________________________________
    013601 ADRIANA PEREIRA DOS SANTOS 06850000470869 Ass.:______________________________________________
    022361 ADRIANA PIRES ANASTACIO 06850000977129 Ass.:______________________________________________
    013755 ADRIANA ROCHA 06850000647224 Ass.:______________________________________________
    007428 ADRIANA SANTOS COSTA 06850000652334 Ass.:______________________________________________
    014868 ADRIANA TAVARES MACHADO DA SILVA 06850000652461 Ass.:______________________________________________
    026049 ADRIANA THAIS DE SOUZA PERAZOLI 06850001042387 Ass.:______________________________________________
    010022 ADRIANE GISELLE DE ARAUJO 06850000982909 Ass.:______________________________________________
    018926 ADRIANE SANTOS DE ALMEIDA 06850000787287 Ass.:______________________________________________
    022002 ADRIANO APARECIDO DINIZ NASCIMENTO 06850001104127 Ass.:______________________________________________
    026403 ADRIANO MEIRA DE CARVALHO 06850000949625 Ass.:______________________________________________
    015297 ADRIANO RODRIGUES 06850000790975 Ass.:______________________________________________
    028335 ADRIANO STEFANO DA SILVA 06850000791852 Ass.:______________________________________________
    025982 ADRIELLY OLIVEIRA AMARAL 06850001150339 Ass.:______________________________________________
    022067 ADRIENE JUNIA DE ALMEIDA BRAGA 06850000984464 Ass.:______________________________________________
    015628 ADRIENE SOARES DE OLIVEIRA 06850000572718 Ass.:______________________________________________
    015395 ADYZE JULIANA PEREIRA DE ASSIS 06850000788044 Ass.:______________________________________________
    021449 AGNA CAIRES DE SOUZA 06850000984462 Ass.:______________________________________________
    025795 AIEDA REZENDE LEAO 06850000972641 Ass.:______________________________________________
    022316 AKSA BRUNA AMORIM ANTUNES 06850000884250 Ass.:______________________________________________
    011349 ALAIDE SOUZA CARDOSO 06850000470990 Ass.:______________________________________________
    026834 ALAIR GERALDO DE OLIVEIRA 06850001081306 Ass.:______________________________________________
    009537 ALAN AUGUSTO RIBEIRO RESENDE 06850000648467 Ass.:______________________________________________
    023914 ALAN DE OLIVEIRA MATTOS 06850000984452 Ass.:______________________________________________
    016915 ALAN DUARTE DE MELO 06850000984526 Ass.:______________________________________________
    026801 ALAN FRANCIS MARTINS CONRADO 06850001083281 Ass.:______________________________________________
    018286 ALAN GONZAGA MARTINS 06850000819841 Ass.:______________________________________________
    023422 ALAN NUNES 06850001150333 Ass.:______________________________________________


    Riderman
    quarta-feira, 9 de setembro de 2009 12:34

Respostas

  • Olá,
    Sei que o tópico foi aberto a um longo tempo atrás, porém, como ele sempre mostra nos resultados de pesquisas e pra futuras dúvidas que possam ocorrer na mesma linha do raciocínio, segue a solução.

    Sub LimparArquivo()
    Dim Texto As String
    
    'DESENVOLVIMENTO    Sam Oliveia
    'E-mail             sam.oliveirabra@yahoo.com
    'Objeto             Tratamento de Arquivo
    'Data               24/03/2012
    'Solicitante        http://social.msdn.microsoft.com/Forums/pt-BR/integrationservicespt/thread/f8c0b66f-d519-4540-9e1d-2a0fe685b9e9/
    
    'FUNCAO-------------------------------------------------------
    Arquivo = "C:\Documents and Settings\Projetos\Desktop\Projetos\ArquivoTexto.txt"
    
    Lista = ""
    If Arquivo <> False Then
        Open Arquivo For Input As #1
            Do While Not EOF(1)
                Line Input #1, Texto
                    If IsNumeric(Mid(Texto, 1, 5)) Then
                        If Mid(Texto, 1, 5) > 999 Then
                            Lista = Lista & Texto & vbCrLf
                        End If
                    End If
            Loop
        Close #1
    End If
    
    Arquivo2 = Left(Arquivo, (Len(Arquivo)) - (Len(Split(Arquivo, "\")(UBound(Split(Arquivo, "\"))))))
    Arquivo2 = Arquivo2 & Mid(Split(Arquivo, "\")(UBound(Split(Arquivo, "\"))), 1, Len(Split(Arquivo, "\")(UBound(Split(Arquivo, "\")))) - 4) & "(Atualizado)" & Right((Split(Arquivo, "\")(UBound(Split(Arquivo, "\")))), 4)
    
    Open Arquivo2 For Output As #1
        Print #1, Lista
    Close #1
    
    End Sub

    Atenciosamente,

    Sam Oliveira


    sábado, 24 de março de 2012 18:35

Todas as Respostas

  • Olá Riderman,

    Uma solução para isto é vc utilizar expressão regular para que você possa conseguir garantir a regra que você mesmo colocou. Pelo que eu entendi é: Os 5 primeiros caracteres deverão ser número com 5 digitos e o número deve ser maior do que 999.

    Caso tenha sido util que tal votar nesta resposta :)

    Abraço espero que tenha ajudado!

    att

    Marcelo Lamouneir de Miranda
    quarta-feira, 9 de setembro de 2009 13:02
  • Ok, mas como usar Expressão regular dentro do pacote?

    e qual expressão usar para validar se os 5 primeiros é número?

    Riderman
    quarta-feira, 9 de setembro de 2009 14:21
  • Olá,
    Sei que o tópico foi aberto a um longo tempo atrás, porém, como ele sempre mostra nos resultados de pesquisas e pra futuras dúvidas que possam ocorrer na mesma linha do raciocínio, segue a solução.

    Sub LimparArquivo()
    Dim Texto As String
    
    'DESENVOLVIMENTO    Sam Oliveia
    'E-mail             sam.oliveirabra@yahoo.com
    'Objeto             Tratamento de Arquivo
    'Data               24/03/2012
    'Solicitante        http://social.msdn.microsoft.com/Forums/pt-BR/integrationservicespt/thread/f8c0b66f-d519-4540-9e1d-2a0fe685b9e9/
    
    'FUNCAO-------------------------------------------------------
    Arquivo = "C:\Documents and Settings\Projetos\Desktop\Projetos\ArquivoTexto.txt"
    
    Lista = ""
    If Arquivo <> False Then
        Open Arquivo For Input As #1
            Do While Not EOF(1)
                Line Input #1, Texto
                    If IsNumeric(Mid(Texto, 1, 5)) Then
                        If Mid(Texto, 1, 5) > 999 Then
                            Lista = Lista & Texto & vbCrLf
                        End If
                    End If
            Loop
        Close #1
    End If
    
    Arquivo2 = Left(Arquivo, (Len(Arquivo)) - (Len(Split(Arquivo, "\")(UBound(Split(Arquivo, "\"))))))
    Arquivo2 = Arquivo2 & Mid(Split(Arquivo, "\")(UBound(Split(Arquivo, "\"))), 1, Len(Split(Arquivo, "\")(UBound(Split(Arquivo, "\")))) - 4) & "(Atualizado)" & Right((Split(Arquivo, "\")(UBound(Split(Arquivo, "\")))), 4)
    
    Open Arquivo2 For Output As #1
        Print #1, Lista
    Close #1
    
    End Sub

    Atenciosamente,

    Sam Oliveira


    sábado, 24 de março de 2012 18:35