FUNCAO LEITURA ARQUIVO TEXTO

LEONARDOSILVEIR 26/07/2011 23:04:09
#380070
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
FROSTYNHO 27/07/2011 06:06:06
#380075
segue o exemplo acima...
LEONARDOSILVEIR 27/07/2011 19:37:07
#380149
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?
FROSTYNHO 27/07/2011 20:32:46
#380152
posta o arquivo pra que a gente possa dar uma olhada entao
PEGUDO 28/07/2011 07:23:29
#380163
Resposta escolhida
Cara, o teu caso acho que se resolve assim:

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.
LEONARDOSILVEIR 29/07/2011 14:21:15
#380296
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
PEGUDO 29/07/2011 15:11:21
#380302
Cara, fiz este exemplo aí, baseado no texto que vc colocou no tópico.
Veja se te ajuda
LEONARDOSILVEIR 01/08/2011 00:18:58
#380472
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