none
Criar Arquivo TXT RRS feed

  • Pergunta

  • Olá pessoal Boa Noite!!!

    Preciso criar um arquivo txt nesse formato abaixo, alguém pode dar uma ideia de como fazer isso.

    A|3.10|NFe|
    B|35||VDA.MERC.SUJ.REG. ST|1|55|1|32132|2017-03-16T09:50:31-02:00|2017-03-16T09:50:31-02:00|1|1|3549805|1|1||2|1|1|3|3|3.10
    C|EMPRESA TESTE|EMPRESA TESTE FANTASIA   |648358798141||||1
    C02|03131230000144
    C05|RUA SAO PAULO|2038||VILA MACENO|3549805|SAO JOSE DO RIO PRETO|SP|15060035|1058|BRASIL|32024323
    E|CONSTROESTE CONST. PARTICIPACOES LT|1|647050393117|||
    E02|06291846001429
    E05|ROD.ASSIS CHATEAUBRIAND|2,5||JD.YOLANDA|3549805|SAO JOSE DO RIO PRETO|SP|15061500|1058|BRASIL|21362200
    H|1|
    I|7898474351994||LIMPA VIDRO MUNDIAL 5 LT|34021900||5405|UN|3.0000|22.00|66.00||UN|3.0000|22.00|0.00|0.00|0.00|0.00|1
    I05c|1111111|
    M|22.99
    N|
    N10g|0|500|0.00|0.00|
    O|||||999  
    O07|50|0.00
    O10|0.00|0.00
    Q|            
    Q05|99|0.00|  
    Q07|0.00|0.00|
    S|            
    S05|99|0.00|  
    S07|0.00|0.00|
    W
    W02|0.00|0.00|0.00|0.00|0.00|66.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|66.00|22.99
    X|9
    X03|O MESMO|||SAO JOSE DO RIO PRETO|SP
    X26|1|Diversos  |Diversas||15.000|16.200
    Y|
    Y07|032132-01|2017-04-13|66.00
    Z||n pedido 264624
    N PEDIDO 264624  -  DOCUMENTO EMITIDO POR ME OU EPP OPTANTE PELO SIMPLES NACIONAL; NAO GERA DIREITO A CREDITO FISCAL DE IPI e ISS.

    Como faz para aparecer as letras e essas barrinhas entre os dados???

    Tentei assim mais não funciona, 

    Dim SW As New StreamWriter("C:\Users\PabloAdmin\Desktop\MeuArquivoDeTexto.txt") ' Cria o arquivo de texto
    
            SW.WriteLine()
            SW.WriteLine(Me.txtcliente) ' Grava o texto no arquivo
            SW.WriteLine()
            SW.WriteLine(Me.txtcpfcliente) ' Grava o texto no arquivo
            SW.WriteLine()
            SW.WriteLine(Me.txtdata) ' Grava o texto no arquivo
            SW.WriteLine()
            SW.Close() 'Fecha o arquivo de texto
    
            SW.Dispose() 'Libera a memória utilizada

    o resultado desse codigo,

    System.Windows.Forms.TextBox, Text: MARCOS DA SILVA
    
    System.Windows.Forms.MaskedTextBox, Text: 295.650.788-13
    
    System.Windows.Forms.TextBox, Text: 20/04/2017
    

    Alguem sabe como resolver isso???

    Desde já agradeço, muito obrigado.


    PabloSousa

    sexta-feira, 21 de abril de 2017 02:55

Respostas

  • Olá,

    No seu cenário, você terá de montar o layout do seu arquivo txt concatenando o pipe "|". Veja:

            'Cria o arquivo
            Dim sw As New StreamWriter("E:\ExemploArquivo.txt")
    
            'Cria a instancia do StringBuilder
            Dim sb As New StringBuilder
    
            'Bloco A
            sb.Append("A|")
            sb.Append("3.10|")
            sb.Append("NFe|")
            sw.WriteLine(sb.ToString())
            sb.Clear() 'Limpa o StringBuilder
    
            'Bloco C
            sb.Append("C|")
            sb.Append(Me.txtcliente.Text & "|")
            sb.Append(Me.txtcpfcliente.Text & "|")
            sw.WriteLine(sb.ToString())
            sb.Clear() 'Limpa o StringBuilder
    
            'Fecha o arquivo
            sw.Close()
    
            sw.Dispose()

    Veja o bloco C. Basta você concatenar o resultado de sua variável com o pipe.

    Uma outra forma, é você utilizar o String.Format. Assim, você poderá deixar o layout do arquivo definido e apenas introduzir as variáveis. Veja o exemplo abaixo para o bloco C:

            Dim linhaArquivo As String
            linhaArquivo = String.Format("C|{0}|{1}|", Me.txtcliente.Text, Me.txtcpfcliente.Text)
            sw.WriteLine(linhaArquivo)

    Espero ter ajudado!



    Hudson Carvalho

    sexta-feira, 21 de abril de 2017 15:56
  • Amigo,

    Primeiro de tudo, o ideal seria você saber a especificação técnica de cada valor dentro desse seu arquivo, pois ele a primeira vista, parece confuso, mas tem significado para algum outro programa que vai ler, certo? :)

    Eu aconselho você a montar linha por linha usando o StringBuilder, concatenando os valores, e gerando as informações que deseja, tudo de acordo com a especificação que eu havia citado acima.

    Depois, usando o StreamWriter, voce vai montando as linhas do arquivo que serão geradas.

    Como usar StreamWriter: https://msdn.microsoft.com/pt-br/library/system.io.streamwriter(v=vs.110).aspx
    Como usar StringBuilder: https://msdn.microsoft.com/pt-br/library/system.text.stringbuilder(v=vs.110).aspx

    Se a resposta foi útil para você, não esquece de marca-la como útil, gerando assim pontuação.

    sexta-feira, 21 de abril de 2017 16:03

Todas as Respostas

  • Deleted
    sexta-feira, 21 de abril de 2017 03:01
  • Lucas,

    Como assim não entendi, alterei a propriedade da textbox para multline e nao mudou nada???

    Aguardo


    PabloSousa

    sexta-feira, 21 de abril de 2017 03:06
  • Olá,

    No seu cenário, você terá de montar o layout do seu arquivo txt concatenando o pipe "|". Veja:

            'Cria o arquivo
            Dim sw As New StreamWriter("E:\ExemploArquivo.txt")
    
            'Cria a instancia do StringBuilder
            Dim sb As New StringBuilder
    
            'Bloco A
            sb.Append("A|")
            sb.Append("3.10|")
            sb.Append("NFe|")
            sw.WriteLine(sb.ToString())
            sb.Clear() 'Limpa o StringBuilder
    
            'Bloco C
            sb.Append("C|")
            sb.Append(Me.txtcliente.Text & "|")
            sb.Append(Me.txtcpfcliente.Text & "|")
            sw.WriteLine(sb.ToString())
            sb.Clear() 'Limpa o StringBuilder
    
            'Fecha o arquivo
            sw.Close()
    
            sw.Dispose()

    Veja o bloco C. Basta você concatenar o resultado de sua variável com o pipe.

    Uma outra forma, é você utilizar o String.Format. Assim, você poderá deixar o layout do arquivo definido e apenas introduzir as variáveis. Veja o exemplo abaixo para o bloco C:

            Dim linhaArquivo As String
            linhaArquivo = String.Format("C|{0}|{1}|", Me.txtcliente.Text, Me.txtcpfcliente.Text)
            sw.WriteLine(linhaArquivo)

    Espero ter ajudado!



    Hudson Carvalho

    sexta-feira, 21 de abril de 2017 15:56
  • Amigo,

    Primeiro de tudo, o ideal seria você saber a especificação técnica de cada valor dentro desse seu arquivo, pois ele a primeira vista, parece confuso, mas tem significado para algum outro programa que vai ler, certo? :)

    Eu aconselho você a montar linha por linha usando o StringBuilder, concatenando os valores, e gerando as informações que deseja, tudo de acordo com a especificação que eu havia citado acima.

    Depois, usando o StreamWriter, voce vai montando as linhas do arquivo que serão geradas.

    Como usar StreamWriter: https://msdn.microsoft.com/pt-br/library/system.io.streamwriter(v=vs.110).aspx
    Como usar StringBuilder: https://msdn.microsoft.com/pt-br/library/system.text.stringbuilder(v=vs.110).aspx

    Se a resposta foi útil para você, não esquece de marca-la como útil, gerando assim pontuação.

    sexta-feira, 21 de abril de 2017 16:03
  • Boa Tarde Hudson,

    Vou testar depois posto a resposta,

    Desde já agradeço a força.

    Muito obrigado.


    PabloSousa

    sexta-feira, 21 de abril de 2017 16:40
  • Boa Tarde José,

    Agradeço a força e a explicação vou ver os links para melhor esclarecimento.

    Desde já agradeço.

    Muito Obrigado.


    PabloSousa

    sexta-feira, 21 de abril de 2017 16:41