none
Preencher Textbox apartir de um .TXT formatado RRS feed

  • Pergunta

  • Boa Tarde!

    Eu gostaria de sabe se existe algum meio de carregar textboxes com o conteúdo de um txt que está no seguinte formato:

    Nome "tab" Endereço "tab" cidade

    João da Silva "tab" Rua das arvores, 50 "tab" São Paulo"

    Estando o TXT nesse formato, eu pretendo carregar cada coluna da segunda linha em uma textbox, por exemplo, João da Silva em uma textbox, Rua das arvores em outra e assim por diante. Por que dessa forma? O AutoCAD usa essa mesma formatação para carregar os atributos em bloco, e para diminuir arquivos na pasta eu pretendo usar o mesmo arquivo para carregar as textboxes.

    Há algum jeito?

    Obrigado.

    quarta-feira, 8 de outubro de 2014 18:07

Respostas

  • Private Sub UserForm_Initialize()
      Dim asFile() As String
      Dim sFile As String
      Dim sNome As String
      Dim sEndereço As String
      Dim sCidade As String
      
      sFile = pFile2String("c:\temp\teste.txt")
      sFile = Split(sFile, Chr(10))(1)
      asFile = Split(sFile, vbTab)
      sNome = asFile(0)
      sEndereço = asFile(1)
      sCidade = asFile(2)
      
      TextBox1 = sNome
      TextBox2 = sEndereço
      TextBox3 = sCidade
    End Sub
    
    Private Function pFile2String(sPath As String) As String
       'Lê um arquivo e temporna todo seu conteúdo numa String
       
       Dim temp As String
       Dim iFF As Integer
    
       iFF = FreeFile
       Open sPath For Binary As iFF
       temp = Space(LOF(iFF))
       Get iFF, , temp
       Close iFF
       
       pFile2String = temp
    End Function
    


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    • Marcado como Resposta LuisCabrini quinta-feira, 9 de outubro de 2014 21:37
    quinta-feira, 9 de outubro de 2014 21:26
    Moderador

Todas as Respostas

  • Estou considerando que o arquivo TXT possui apenas uma linha com informações separadas através de tabulação.

    Crie um formulário com três caixas de texto chamadas TextBox1, TextBox2, TextBox3 e insira o código abaixo em seu módulo:

    Private Sub UserForm_Initialize()
      Dim asFile() As String
      Dim sNome As String
      Dim sEndereço As String
      Dim sCidade As String
      
      asFile = Split(pFile2String("c:\temp\teste.txt"), vbTab)
      sNome = asFile(0)
      sEndereço = asFile(1)
      sCidade = asFile(2)
      
      TextBox1 = sNome
      TextBox2 = sEndereço
      TextBox3 = sCidade
    End Sub
    
    Private Function pFile2String(sPath As String) As String
       'Lê um arquivo e temporna todo seu conteúdo numa String
       
       Dim temp As String
       Dim intFF As Integer
    
       intFF = FreeFile
       Open sPath For Binary As intFF
       temp = Space(LOF(intFF))
       Get intFF, , temp
       Close intFF
       
       pFile2String = temp
    End Function
    


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quarta-feira, 8 de outubro de 2014 21:21
    Moderador
  • Felipe, obrigado pela atenção!

    É quase isso. O arquivo tem duas linhas, onde a primeira são as TAGs dos atributos do bloco dentro do AutoCAD, logo, eu precisaria ignorar essa linha e pegar os dados da segunda apenas!


    • Editado LuisCabrini quinta-feira, 9 de outubro de 2014 15:29
    quinta-feira, 9 de outubro de 2014 15:29
  • Private Sub UserForm_Initialize()
      Dim asFile() As String
      Dim sFile As String
      Dim sNome As String
      Dim sEndereço As String
      Dim sCidade As String
      
      sFile = pFile2String("c:\temp\teste.txt")
      sFile = Split(sFile, Chr(10))(1)
      asFile = Split(sFile, vbTab)
      sNome = asFile(0)
      sEndereço = asFile(1)
      sCidade = asFile(2)
      
      TextBox1 = sNome
      TextBox2 = sEndereço
      TextBox3 = sCidade
    End Sub
    
    Private Function pFile2String(sPath As String) As String
       'Lê um arquivo e temporna todo seu conteúdo numa String
       
       Dim temp As String
       Dim iFF As Integer
    
       iFF = FreeFile
       Open sPath For Binary As iFF
       temp = Space(LOF(iFF))
       Get iFF, , temp
       Close iFF
       
       pFile2String = temp
    End Function
    


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    • Marcado como Resposta LuisCabrini quinta-feira, 9 de outubro de 2014 21:37
    quinta-feira, 9 de outubro de 2014 21:26
    Moderador
  • Benzadeus hein!

    Muito Obrigado pela ajuda Felipe!

    quinta-feira, 9 de outubro de 2014 21:38