VALORES FIXOS DE UM ARQUIVO TXT

CIMINOS 11/01/2017 14:29:37
#470607
por favor

tenho um arquivo de text que preciso pegar os retorno escritos nele ex.:

[STATUS]
Versao=SP-CTe-22-12-2016
TpAmb=2
VerAplic=SP-CTe-22-12-2016
CStat=107
XMotivo=Serviço em Operação
CUF=35
DhRecbto=29/12/2016 15:24:19
TMed=1
DhRetorno=30/12/1899
XObs=

OK: Rejeição: Consulta a uma Chave de Acesso muito antiga
[CONSULTA]
Versao=SP-CTe-22-12-2016
TpAmb=2
VerAplic=SP-CTe-22-12-2016
CStat=731
XMotivo=Rejeição: Consulta a uma Chave de Acesso muito antiga
CUF=35
ChCTe=35131211510992000113570010000000101755779042
DhRecbto=30/12/1899
NProt=
DigVal=

preciso pegar esse valores e jogar em um listbox ou textbox separados:

[CONSULTA]
Versao=SP-CTe-22-12-2016
TpAmb=2
VerAplic=SP-CTe-22-12-2016
CStat=731
XMotivo=Rejeição: Consulta a uma Chave de Acesso muito antiga
CUF=35
ChCTe=35131211510992000113570010000000101755779042
DhRecbto=30/12/1899
NProt=
DigVal=

alguém tem uma dica ?




KERPLUNK 11/01/2017 15:53:39
#470610
Isso me parece um arquivo com estrutura semelhante aos arquivos [Ô].ini[Ô]. Você poderia tranquilamente usar a mesma metodologia
CIMINOS 11/01/2017 17:36:31
#470615
ola Desculpa não fui muito claro e obrigado pelo retorno,


então preciso pegar todos dados de um txt ou um textbox com uma palavra e filtrar ex.: [INICIO] x [FIM]

[dados]
.... conteúdo
[dados]

só aparecer no Listbox o que esta entre essas tags

ja adiantei assim,

Dim Conteudo As String
If txt.Text.Contains([Ô][ENVIO][Ô]) Then
Conteudo = txt.Text.Substring(txt.Text.IndexOf([Ô][ENVIO][Ô]), _
txt.Text.IndexOf([Ô][RETORNO][Ô]) - txt.Text.IndexOf([Ô][ENVIO][Ô]))
txt_de_Saida.Text = Code

End If

ele aparece apenas o primeiro, precisava aparecer todos que esta na txt







NICKOSOFT 11/01/2017 17:48:50
#470616
Nao vejo começo e fim, mas experimente readline então
PLUGSOFTSM 14/01/2017 15:18:04
#470706
Por que vc não usa um Split para separar o conteúdo do teu arquvo em blocos de texto
Depois navega pelos blocos
Ficaria algo assim

dim A() as string = [texto do arquivo].Split([Ô][palavra chave][Ô])

for Each S as string in A
[ô]Código para tratar o texto do bloco
Next
CIMINOS 15/01/2017 22:25:52
#470731
Citação:

:
Por que vc não usa um Split para separar o conteúdo do teu arquvo em blocos de texto
Depois navega pelos blocos
Ficaria algo assim

dim A() as string = [texto do arquivo].Split([Ô][palavra chave][Ô])

for Each S as string in A
[ô]Código para tratar o texto do bloco
Next




ola obrigado por responder e atenção. entao esse método, nao pegaria so o caracter, pois se eu colocar na pesquina [Ô]ENVIO[Ô], ele pegara tudo que tiver as letras ?

Preciso pegar um bloco de informações repetidas em um txt ou textbox, exemplo

[ENVIO]
Versao=SP-CTe-22-12-2016
TpAmb=2
VerAplic=SP-CTe-22-12-2016
CStat=103
XMotivo=Lote recebido com sucesso
CUF=35
NRec=351000010470535
DhRecbto=28/12/2016 17:15:13
TMed=1
Rejeição: Falha no Schema XML do CT-e
[RETORNO]
Versao=SP-CTe-22-12-2016
TpAmb=2
VerAplic=SP-CTe-22-12-2016
NRec=351000010470535
CStat=225
XMotivo=Rejeição: Falha no Schema XML do CT-e
CUF=35
----------------------------------aqui ele pula linha -----------------------

e fica encaixando as atualizações neste formato em blocos começando com [Envio]

obrigado pela força






PLUGSOFTSM 16/01/2017 12:06:19
#470748
Sim... O Split lê o bloco de texto entre os caracteres delimitadores, independente do número de linhas ou quantidade de caracteres
CIMINOS 16/01/2017 12:30:34
#470750
Citação:

:
Sim... O Split lê o bloco de texto entre os caracteres delimitadores, independente do número de linhas ou quantidade de caracteres



entao, o Split funciona apenas caracteres delimitadores e nao para palavras ou blocos

abs
PLUGSOFTSM 16/01/2017 13:29:27
#470754
assim
Digamos que vc tenha a seguinte estrutura

Bloco
Linha 01
linha 02
Linha 03
Linha 04

Bloco
Linha 01
Linha 02

Bloco
Linha 01
linha 02
Linha 03
Linha 04
Linha 05

E todo o texto acima estiver numa variável do tipo string chamada X por exemplo

se Fizer
Dim A() as string = X.split([Ô]Boloco[Ô])

Vc terá A formando um vetor com 3 valores
A(0) = Linha 01
linha 02
Linha 03
Linha 04

A(1) = Linha 01
Linha 02

A(2) = Linha 01
linha 02
Linha 03
Linha 04
Linha 05

Crie um programinha com os dados acima e depois execute
For each S as string in A
Msgbox S
Next

E vai ver o resultado
CIMINOS 16/01/2017 13:39:24
#470756
Citação:

:
assim
Digamos que vc tenha a seguinte estrutura

Bloco
Linha 01
linha 02
Linha 03
Linha 04

Bloco
Linha 01
Linha 02

Bloco
Linha 01
linha 02
Linha 03
Linha 04
Linha 05

E todo o texto acima estiver numa variável do tipo string chamada X por exemplo

se Fizer
Dim A() as string = X.split([Ô]Boloco[Ô])

Vc terá A formando um vetor com 3 valores
A(0) = Linha 01
linha 02
Linha 03
Linha 04

A(1) = Linha 01
Linha 02

A(2) = Linha 01
linha 02
Linha 03
Linha 04
Linha 05

Crie um programinha com os dados acima e depois execute
For each S as string in A
Msgbox S
Next

E vai ver o resultado





obrigado pelo retorno e ajuda , como te falei acima

Dim A() As String = txtSai.Text.Split([Ô][ENVIO][Ô])
For Each S As String In A
MsgBox(S)
Next



ele vai buscar delimitar apenas o [Ô][[Ô] - esse é o Resultado

a cada [ da uma mensagem


obrigado
ELUCIMAR 16/01/2017 16:08:45
#470759
CIMINOS

Fiz um exemplo bem funcional:

Dim dicArquivoRetorno As New Dictionary(Of String, Dictionary(Of String, String))()
Dim lstStringFile As List(Of String) = File.ReadAllLines([Ô]C:\ArquivoIni.ini[Ô]).ToList()
Dim nomeClasse As String = String.Empty

For i As Integer = 0 To lstStringFile.Count - 1

Dim linha As String = lstStringFile(i).Trim()
If linha = String.Empty Then Continue For

If linha.Contains([Ô][[Ô]) AndAlso linha.Contains([Ô]][Ô]) Then
nomeClasse = linha.Replace([Ô][[Ô], [Ô][Ô]).Replace([Ô]][Ô], [Ô][Ô])
dicArquivoRetorno.Add(nomeClasse, New Dictionary(Of String, String)())
Else
If nomeClasse = String.Empty Then Continue For
Dim dadosLinha As String() = linha.Split([Ô]=[Ô])
If dadosLinha.Count() < 2 Then Continue For
dicArquivoRetorno(nomeClasse).Add(dadosLinha(0).Trim(), dadosLinha(1).Trim())
End If

Next

[ô] Exemplo de como pegar os Dados
Dim consultaCStat As String = dicArquivoRetorno([Ô]CONSULTA[Ô])([Ô]CStat[Ô])
Dim consultaChaveCTe As String = dicArquivoRetorno([Ô]CONSULTA[Ô])([Ô]ChCTe[Ô])

Dim statusDhRecbto As String = dicArquivoRetorno([Ô]STATUS[Ô])([Ô]DhRecbto[Ô])
Dim statusDhRetornoe As String = dicArquivoRetorno([Ô]STATUS[Ô])([Ô]DhRetorno[Ô])
Página 1 de 2 [14 registro(s)]
Faça seu login para responder