Ler TAG em arquivo TXT
Olá Pessoal
preciso ler, apagar e gravar o conteúdo de um arquivo texto que tem a seguinte estrutura:
<MESTRE>
VALOR1
VALOR2
VALOR3
VALOR4
...
</MESTRE>
<DETALHE>
ITEM1
ITEM2
ITEM3
ITEM4
...
</DETALHE>
Gostaria de ler por exemplo todo o conteudo de <MESTRE> </MESTRE>
e depois apagar, também preciso gravar esse mesmo conteudo depois nesse arquivo.
Eu até conseguir ler com o seguinte código:
mais o restante não deu certo, alguém poderia me dar uma ajudinha na adaptação do código, ou até outra forma de fazer ?
Obrigado.
João Gabriel
preciso ler, apagar e gravar o conteúdo de um arquivo texto que tem a seguinte estrutura:
<MESTRE>
VALOR1
VALOR2
VALOR3
VALOR4
...
</MESTRE>
<DETALHE>
ITEM1
ITEM2
ITEM3
ITEM4
...
</DETALHE>
Gostaria de ler por exemplo todo o conteudo de <MESTRE> </MESTRE>
e depois apagar, também preciso gravar esse mesmo conteudo depois nesse arquivo.
Eu até conseguir ler com o seguinte código:
procedure TForm1.Button2Click(Sender: TObject); Var LIsta: TStrings; posIni,PosFim: Integer; copyText: TStrings; begin Lista := TStringList.Create; copyText := TStringList.Create; Lista.LoadFromFile(´C:\texto.txt´); posIni := 0; if posIni > 0 Then PosFim := PosEx(´</MESTRE>´, Lista.Text, posIni+1) else begin posIni := pos(´<MESTRE>´, Lista.Text); posFim := PosEX(´</MESTRE>´, Lista.Text, posIni+1); end; copyText.Text := copy(Lista.Text, PosIni+1, posFim-(posIni+1)); PosIni := PosEx(´<MESTRE>´,Lista.Text, posFim+1); posFim := PosEX(´</MESTRE>´,Lista.Text, PosIni+1); Lista.Free; List.Free; end;
mais o restante não deu certo, alguém poderia me dar uma ajudinha na adaptação do código, ou até outra forma de fazer ?
Obrigado.
João Gabriel
Jgscarvalho
Curtidas 0
Respostas
Marco Salles
04/03/2009
se entendi :
procedure TForm1.Button1Click(Sender: TObject); const vTagi = ´<MESTRE>´; vTagf = ´</MESTRE>´; Arq = ´C:\texto.txt´; Var LIsta: TStrings; posIni,PosFim: Integer; begin Lista := TStringList.Create; Lista.LoadFromFile(Arq); posini:= pos(vTagi,lista.Text); if posIni > 0 Then begin PosFim := PosEx(vTagf, Lista.Text, posIni+1); if posFim > 0 then begin Lista.Text:=Trim(copy(lista.Text,posfim+length(vTagf)+1,length(lista.Text)-posfim)); Lista.SaveToFile(Arq); end; end; Lista.Free; end;
GOSTEI 0
Jgscarvalho
04/03/2009
Olá Marcos, Valeu pela contribuição.
Testei seu código não tive éxito, o código só ler a tag final </MESTRE>
vou reformular minha dúvida,
tenho um arquivo que está organizqado assim:
[list:683ed988c1]
<MESTRE>
VALOR1
VALOR2
VALOR3
VALOR4
...
</MESTRE>
[/list:u:683ed988c1]
Preciso ler essa tag depois exclui-lo do arquivo, também preciso incluir essa mesma tag em outro arquivo.
com o código que coloquei no post anterior, eu até consigo ler, mais o problema está em excluir do arquivo e incluir depois em outro arquivo.
Testei seu código não tive éxito, o código só ler a tag final </MESTRE>
vou reformular minha dúvida,
tenho um arquivo que está organizqado assim:
[list:683ed988c1]
<MESTRE>
VALOR1
VALOR2
VALOR3
VALOR4
...
</MESTRE>
[/list:u:683ed988c1]
Preciso ler essa tag depois exclui-lo do arquivo, também preciso incluir essa mesma tag em outro arquivo.
com o código que coloquei no post anterior, eu até consigo ler, mais o problema está em excluir do arquivo e incluir depois em outro arquivo.
GOSTEI 0
Marco Salles
04/03/2009
hummmmmmmm
procedure TForm1.Button2Click(Sender: TObject); const vTagi = ´<MESTRE>´; vTagf = ´</MESTRE>´; Arq = ´C:\texto.txt´; ArqSemTag=´C:\textoSemTag.txt´; ArqSoTag=´C:\textoSoTag.txt´; Var LIstaLerTag: TStrings; ListaExcluirTag:TStrings; posIni,PosFim,i: Integer; begin ListaLerTag := TStringList.Create; ListaExcluirTag:=TStringList.Create; ListaLerTag.LoadFromFile(Arq); ListaExcluirTag.AddStrings(ListaLerTag); posini:= pos(vTagi,listaLerTag.Text); if posIni > 0 Then begin PosFim := PosEx(vTagf, ListaLerTag.Text, posIni+1); if posFim > 0 then begin ListaLerTag.Text:=Trim(copy(listaLerTag.Text,posIni,posFim+length(vTagf))); //Preciso ler essa tag for i:=1 to ListaLerTag.Count - 2 do showmessage(ListaLerTag.Strings[i]); //exclui-lo do arquivo, ListaExcluirTag.Text:= Trim(copy(listaExcluirTag.Text,posfim+length(vTagf)+1, length(listaExcluirTag.Text)-posfim)); ListaExcluirTag.SaveToFile(ArqSemTag); //so repetir o Nome Do Arq //Inclusão da tag em outro arquivo... //digte o Nome do Aquivo ListaLerTag.SaveToFile(ArqSoTag); end; end; ListaLerTag.Free; ListaExcluirTag.Free; end;
GOSTEI 0