FUNCAO LEITURA ARQUIVO TEXTO
Pessoal gostaria da ajuda de vocês para montar uma função, a ideia é a seguinte:
vou ter em um richtextbox o seguinte texto, onde no inicio de cada linha existe o nome do campo
que vai ser sempre padrao. Portanto precisava montar uma função que localizaria o nome do campo por exemplo [Ô]CNPJ[Ô]
e pegava todo valor da linha e jogasse somente o resultado [Ô]99.999.999/9999-99[Ô] em um textbox e assim por diante linha a linha,
CNPJ99.999.999/9999-99
Razão Social / NomeALPHA LOGISTICS LTDA
Inscrição Estadua9999999999
Endereço CompletoRUA SAO QUIRINO, 900
MunicÃpioSao Paulo
vou ter em um richtextbox o seguinte texto, onde no inicio de cada linha existe o nome do campo
que vai ser sempre padrao. Portanto precisava montar uma função que localizaria o nome do campo por exemplo [Ô]CNPJ[Ô]
e pegava todo valor da linha e jogasse somente o resultado [Ô]99.999.999/9999-99[Ô] em um textbox e assim por diante linha a linha,
CNPJ99.999.999/9999-99
Razão Social / NomeALPHA LOGISTICS LTDA
Inscrição Estadua9999999999
Endereço CompletoRUA SAO QUIRINO, 900
MunicÃpioSao Paulo
segue o exemplo acima...
A ideia é boa, mas no meu caso eu nao vou ter o número da linha, ele teria que encontrar cada campo no meio do texto, é possivel fazer isso?
posta o arquivo pra que a gente possa dar uma olhada entao
Cara, o teu caso acho que se resolve assim:
Fiz testes aqui, colocando texto antes e depois deste teu exemplo e, como previsto, ele só capturou os dados que eu queria.
Se você quiser pegar só estas linhas mesmo, pode colocar deste jeito, depois de linha [txt-color=#e80000][Ô]MunicÃpio[Ô][/txt-color]:
Deste jeito, mesmo que tenha mais texto abaixo o programa não vai dar loops à toa.
For Each linha In RichTextBox1.Lines
If linha.Contains([txt-color=#e80000][Ô]CNPJ[Ô][/txt-color]) Then
TextBox1.Text = linha.Replace([txt-color=#e80000][Ô]CNPJ[Ô][/txt-color], [txt-color=#e80000][Ô][Ô][/txt-color])
ElseIf linha.Contains([txt-color=#e80000][Ô]Razão Social / Nome[Ô][/txt-color]) Then
TextBox2.Text = linha.Replace([txt-color=#e80000][Ô]Razão Social / Nome[Ô][/txt-color], [txt-color=#e80000][Ô][Ô][/txt-color])
ElseIf linha.Contains([txt-color=#e80000][Ô]Inscrição Estadual[Ô][/txt-color]) Then
TextBox3.Text = linha.Replace([txt-color=#e80000][Ô]Inscrição Estadual[Ô][/txt-color], [txt-color=#e80000][Ô][Ô][/txt-color])
ElseIf linha.Contains([txt-color=#e80000][Ô]Endereço Completo[Ô][/txt-color]) Then
TextBox4.Text = linha.Replace([txt-color=#e80000][Ô]Endereço Completo[Ô][/txt-color], [txt-color=#e80000][Ô][Ô][/txt-color])
ElseIf linha.Contains([txt-color=#e80000][Ô]MunicÃpio[Ô][/txt-color]) Then
TextBox5.Text = linha.Replace([txt-color=#e80000][Ô]MunicÃpio[Ô][/txt-color], [txt-color=#e80000][Ô][Ô][/txt-color])
End If
Next
Fiz testes aqui, colocando texto antes e depois deste teu exemplo e, como previsto, ele só capturou os dados que eu queria.
Se você quiser pegar só estas linhas mesmo, pode colocar deste jeito, depois de linha [txt-color=#e80000][Ô]MunicÃpio[Ô][/txt-color]:
ElseIf linha.Contains([txt-color=#e80000][Ô]MunicÃpio[Ô][/txt-color]) Then
TextBox5.Text = linha.Replace([txt-color=#e80000][Ô]MunicÃpio[Ô][/txt-color], [txt-color=#e80000][Ô][Ô][/txt-color])
Exit For
End If
Deste jeito, mesmo que tenha mais texto abaixo o programa não vai dar loops à toa.
Boa idéia PEGUDO, só mais um detalhe, arquivo vai ser semelhante ao abaixo, como pode ver existem uma espécie de grupo no txt, onde as vezes o nome do campo pode repetir, porém cada um precisa ser jogado num textbox diferente, como seria possivel primeiro pegar o grupo EMITENTE, fazer a leitura dos campos, depois passar pro grupo DESTINATÃRIO, e assim por diante.
EMITENTE
CNPJ99.999.999/9999-99
Nome/Razão SocialALPHA EMPRESA LTDA
Inscrição Estadua99999999999
UFGO
DESTINATÃRIO
CNPJ00.000.000/0000-00
Nome/Razão SocialXTRAC
Inscrição EstadualISENTO
UFEX
Dados do Emitente
Nome / Razão SocialALPHA EMPRESA LTDA
CNPJ99.999.999/9999-99
EndereçoQuadras 1, 8
Bairro/Distrito Industrial
CEP75700-000
MunicÃpio999999-BETA
Fone/Fax(XX)9999-999
UFGO
PaÃs1058 - BRASIL
Inscrição Estadua9999999
MunicÃpio da Ocorrência do Fato Gerador do ICMS 5205109
Código de Regime Tributário3 - Regime Normal
EMITENTE
CNPJ99.999.999/9999-99
Nome/Razão SocialALPHA EMPRESA LTDA
Inscrição Estadua99999999999
UFGO
DESTINATÃRIO
CNPJ00.000.000/0000-00
Nome/Razão SocialXTRAC
Inscrição EstadualISENTO
UFEX
Dados do Emitente
Nome / Razão SocialALPHA EMPRESA LTDA
CNPJ99.999.999/9999-99
EndereçoQuadras 1, 8
Bairro/Distrito Industrial
CEP75700-000
MunicÃpio999999-BETA
Fone/Fax(XX)9999-999
UFGO
PaÃs1058 - BRASIL
Inscrição Estadua9999999
MunicÃpio da Ocorrência do Fato Gerador do ICMS 5205109
Código de Regime Tributário3 - Regime Normal
Cara, fiz este exemplo aÃ, baseado no texto que vc colocou no tópico.
Veja se te ajuda
Veja se te ajuda
Pegudo, a idéia é essa, porém não dá pra confirar no B += 1, pois como o texto nao é sempre padrao, por exemplo as vezes o campo cnpj no EMITENTE, pode nao existir, ai os valores dos textboxes vao ficar errados, axo q teria q fazer um contains nesse caso.
Tópico encerrado , respostas não são mais permitidas