Pegar conteúdo específico de um TMemo

29/06/2017

0

Pessoal, sou novo no Delphi, e preciso do seguinte, recebo informações em um TMemo, e preciso pegar alguns dados específicos, Os dados que vem para o meu TMemo, vem em formato do XML, e eu preciso copiar algumas coisas.
Exemplo de dados de um retorno:

<?xml version="1.0" encoding="utf-8"?>
<integration>
<id>7986</id>
<idVeic>9908</idVeic>
<longitude>-35.9007</longitude>
<latitude>-7.34905</latitude>
<speed>48</speed>
<altitude>487</altitude>
</integration>
E eu precisaria pegar por ex: id, e armazenar em uma variável, idVeic, armazenar em outra, e assim por diante... Sendo que os dados nem sempre estarão em mesma ordem, ou em mesma posição. Alguem consegue me dar uma mão? Desde já agradeço
*Estes arquivos vem a cada 30 segundos, não posso salvá-los num arquivo de texto separado pois vem muitos dados diários... Como vou recebendo, vou armazenando em variável e armazenando no banco...
Juliano

Juliano

Responder

Posts

11/07/2017

Roberto Wutke

man, uma ideia, não lembro corretamente o código....

mas se não me engano, vc consegue passar os dados desse xml para uma variavel txt... nela vc faz um copy..

tipo, vc pega o pos(variavel_txt, <id>), faz o copy até o pos(variavel_txt, </id>) e assim para os outros. Se o tamanho dos dados forem fixos, vc pode só pegar o pos e passar os valores de tamanho de string que quer copiar, depois vai passando para o banco os dados coletados e salva eles....

não sei se fui claro, mas creio que isso vá te ajudar.

Bons códigos.
Responder

12/07/2017

Gabriel Baltazar

Então, eu jogaria esse conteúdo do memo num XMLDocument e trataria assim pra ler os valores.

var
  noXml : IXMLNode;
begin
  XML.Active := False;
  XML.XML.Text := mmoTexto.Lines.Text;
  XML.Active   := True;

  noXml := XML.DocumentElement;
  noXml := noXml.ChildNodes.FindNode('id');
  ShowMessage(  noXml.Text );
end;
Responder

12/07/2017

Raimundo Pereira

Pq não carrega o aquivo o xml e realiza a leitura dos nodes?
Conforme citado pelo Baltazar..
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar