Pegar conteúdo específico de um TMemo
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...
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
Curtidas 0
Respostas
Roberto Wutke
29/06/2017
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.
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.
GOSTEI 0
Gabriel Baltazar
29/06/2017
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;
GOSTEI 0
Raimundo Pereira
29/06/2017
Pq não carrega o aquivo o xml e realiza a leitura dos nodes?
Conforme citado pelo Baltazar..
Conforme citado pelo Baltazar..
GOSTEI 0