LER ARQUIVO TXT E SALVAR EM CSV

 Tópico anterior Próximo tópico Novo tópico

LER ARQUIVO TXT E SALVAR EM CSV

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#490855 - 20/10/2019 20:09:42

GTSDIGITAL
SAO PAULO
Cadast. em:Janeiro/2015


Última edição em 21/10/2019 10:44:37 por GTSDIGITAL

 Anexos estao visíveis somente para usuários registrados

Amigos

Vocs que so expert me ajudem por favor, tenho um arquivo TXT com milhares de clientes similar a este anexo acima, como fao para deixa-lo em um excel (CSV) separado por coluna ?
Quando tiver 2 ou mais sub-registros abaixo de um cliente como o caso do JOAO CINTRA DA SOLEDADE ALONSO, teria que repetir o nome cliente na prxima linha como fiz abaixo e incluir os dados do sub-registro:


ARQUIVO ORIGINAL (ANEXO ACIMA)





DESEJADO CSV
CODIGO DO ACIONISTA |  NOME   |  CPF/CNPJ   |  DATA   |  DESCRICAO   |  ACOES
00000289249   |  MARIA DA PIEDADE TEIXEIRA                   |  000.000.000-00   |  11/10/18   |  Desdobramento                 |  585 (+)
00000289272   |  JOAO CINTRA DA SOLEDADE ALONSO   |  000.000.000-00   |  12/10/18   |  Desdobramento                 |  487 (+)
00000289272   |  JOAO CINTRA DA SOLEDADE ALONSO   |  000.000.000-00   |  13/10/18   |  Desdobramento singular   |  58 (-)
00000289272   |  JOAO CINTRA DA SOLEDADE ALONSO   |  000.000.000-00   |  14/10/18   |  Desdobramento                 |  178 (+)
.......


DESEJADO EXCEL





Resposta escolhida #490856 - 20/10/2019 20:45:01

NICKOSOFT
SANTO ANDRE
Cadast. em:Maio/2009


por acaso os campos tem tamanho fixo? pq caracter separador nao vi

Cada dia vejo surgirem novos []programadores[] de cdigo pronto aqui



#490857 - 20/10/2019 20:50:37

GTSDIGITAL
SAO PAULO
Cadast. em:Janeiro/2015


Última edição em 21/10/2019 10:04:26 por GTSDIGITAL

Citação:
:
por acaso os campos tem tamanho fixo? pq caracter separador nao vi

Nick, no tem tamanho fixo devido algumas pessoas terem um nome maior que o outro, teria que ter uma forma de ler as palavras constantes que sempre se repete como:



Estava com a ideia de ler todo arquivo e joga-lo em uma matriz separando por espao (SPLIT [] []) e ir tratando cada palavra coringa que se repete como
  • CODIGO DO ACIONISTA,
  • NOME,
  • CPF/CNPJ.....


    Dim filePath As String = TxtPathArquivo.Text
    Dim streamReader As New IO.StreamReader(filePath)
    Dim MontarBlocoDeDados As String
    Dim VarArrayAux As String()


    []LAO PARA LER O ARQUIVO TXT AT O FIM
    While Not streamReader.EndOfStream
        []LEITURA DA LINHA
        streamText = streamReader.ReadLine()
        MontarBlocoDeDados = MontarBlocoDeDados & [] [] & streamText
    End While



    If Not String.IsNullOrEmpty(MontarBlocoDeDados) Then

        []SEPARAR PALAVRA POR PALAVRA ONDE TIVER ESPAOS E JOGAR EM UMA MATRIZ
        VarArrayAux = MontarBlocoDeDados.Split([] [])

    End if

    []==================================================
    []TRATAR CADA PALAVRA E IR MONTANDO O CSV
    For i = 0 To UBound(VarArrayAux)
         ....
    Next






  • #490860 - 21/10/2019 01:04:36

    KERPLUNK
    RIO GRANDE DO SUL
    Cadast. em:Junho/2009


    Membro da equipe
    Importe, faa a separao pelo caracter que os separa, ordene por nome, simples.

    _______________________________________________________________________
    Virei Orculo!
    The end is nigh, be ready for the nukes!


    #490863 - 21/10/2019 10:02:12

    GTSDIGITAL
    SAO PAULO
    Cadast. em:Janeiro/2015


    Última edição em 21/10/2019 10:03:04 por GTSDIGITAL

    Citação:
    :
    Importe, faa a separao pelo caracter que os separa, ordene por nome, simples.

    Mas eu empaquei como tratar a palavra our palavra e recortar o que interessa como nome completo, CPF, e assim por diante.




    #490864 - 21/10/2019 10:38:17

    KERPLUNK
    RIO GRANDE DO SUL
    Cadast. em:Junho/2009


    Membro da equipe
    Aqui tem um tutorial sobre isso

    _______________________________________________________________________
    Virei Orculo!
    The end is nigh, be ready for the nukes!


    #490865 - 21/10/2019 10:52:55

    OMAR2007
    MONTES CLAROS
    Cadast. em:Maio/2019


    Última edição em 21/10/2019 10:53:44 por OMAR2007

    Famigerado KERPLUNK,porque seu horrio est diferente?
    No tem o vero.
    Editado.O meu tambm.




    #490867 - 21/10/2019 11:25:30

    KERPLUNK
    RIO GRANDE DO SUL
    Cadast. em:Junho/2009


    Membro da equipe
    Citação:
    :
    Famigerado KERPLUNK,porque seu horrio est diferente?
    No tem o vero.
    Editado.O meu tambm.

    Pois , esse horrio do server... essa coisa confundiu todo mundo.

    _______________________________________________________________________
    Virei Orculo!
    The end is nigh, be ready for the nukes!


    #490869 - 21/10/2019 12:15:23

    NICKOSOFT
    SANTO ANDRE
    Cadast. em:Maio/2009


    tenta assim....
      
    dim s as string = []you have a <funny> thing <funny> going on[]
      dim a() as string = Regex.Split(s,[]<funny>[])
      for each b as string in a
         Response.Write( b & []<br>[])
      next


    Cada dia vejo surgirem novos []programadores[] de cdigo pronto aqui



    #490872 - 21/10/2019 13:14:13

    GTSDIGITAL
    SAO PAULO
    Cadast. em:Janeiro/2015


    Última edição em 21/10/2019 13:17:28 por GTSDIGITAL

    Citação:
    :
    tenta assim....
      
    dim s as string = []you have a <funny> thing <funny> going on[]
      dim a() as string = Regex.Split(s,[]<funny>[])
      for each b as string in a
         Response.Write( b & []<br>[])
      next

    NICKOSOFT

    Estou usando sua logica, mas com SPLIT [] [] com os espaos e separou palacra por palavra, ma como fao para unir somente os nomes usando como curinga estas repeties abaixo ?
    Existe uma lgica para pegar a posio INICIAL []NOME[] e final []------[] para ele recortar e jogar o que estiver no meio desta string para a variavel ?







    #490875 - 21/10/2019 16:51:41

    ELUCIMAR
    GOIANIA
    Cadast. em:Dezembro/2003


    Última edição em 21/10/2019 16:56:16 por ELUCIMAR

     Anexos estao visíveis somente para usuários registrados

    GTSDIGITAL
    Fiz um exemplo para importao deste arquivo.
    Armazenei os dados em um List<T> caso queira persistir os dados e tambm em uma List<string> para salvar o arquivo(.csv) aps pegar os dados.
    Obs: O exemplo vai funcionar desde que o padro dos demais arquivos sejam iguais ao que passou.


    E.A.M

    Cursos de Excel e VB6:
    cursoexcelvba.com.br



     Tópico anterior Próximo tópico Novo tópico


    Tópico encerrado, respostas não sao permitidas
    Encerrado por GTSDIGITAL em 04/12/2019 10:21:21