Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Alterar campo especifico do XML


Willians Junior

Pergunta

Boa tarde! Sou iniciante na programação e preciso desenvolver uma aplicação que leia o arquivo xml e altere uma determinada tag. Segue xml.

<?xml version="1.0" encoding="UTF-8"?>
-<nfeProc versao="4.00" xmlns="http://www.portalfiscal.inf.br/nfe">
-<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
-<infNFe versao="4.00" Id="NFe35180187315834001146550010000105791143097054">
-<ide>
<cUF>35</cUF>
<cNF>14309705</cNF>
<natOp>Remessa em bonificação, doação ou brinde</natOp>
<mod>55</mod>
<serie>1</serie>
<nNF>10579</nNF>
<dhEmi>2018-01-18T16:34:33-02:00</dhEmi>
<tpNF>1</tpNF>
<idDest>1</idDest>
<cMunFG>3522505</cMunFG>
<tpImp>1</tpImp>
<tpEmis>1</tpEmis>
<cDV>4</cDV>
<tpAmb>1</tpAmb>
<finNFe>1</finNFe>
<indFinal>0</indFinal>
<indPres>9</indPres>
<procEmi>0</procEmi>
<verProc>NFE 4,00</verProc>
</ide>
-<emit>
<CNPJ>87315834001146</CNPJ>
<xNome>NEUGEBAUER ALIMENTOS S/A</xNome>
<xFant>Neugebauer Alimentos S/A - ACP</xFant>
-<enderEmit>
<xLgr>AVENIDA LEDA PANTALENA</xLgr>
<nro>1100</nro>
<xCpl>CM03STASL1</xCpl>
<xBairro>JARDIM PORTELA</xBairro>
<cMun>3522505</cMun>
<xMun>ITAPEVI</xMun>
<UF>SP</UF>
<CEP>06695210</CEP>
<xPais>Brasil</xPais>
<fone>5137169000</fone>
</enderEmit>
<IE>373166773114</IE>
<CRT>3</CRT>
</emit>
-<dest>
<CNPJ>10665706000126</CNPJ>
<xNome>FERNANDES DISTRIBUIDORA DE DOCES LT</xNome>
-<enderDest>
<xLgr>TENENTE LANDY</xLgr>
<nro>120</nro>
<xCpl>120</xCpl>
<xBairro>LAPA DE BAIXO</xBairro>
<cMun>3550308</cMun>
<xMun>são PAULO</xMun>
<UF>SP</UF>
<CEP>05068020</CEP>
<cPais>1058</cPais>
<xPais>Brasil</xPais>
<fone>1136110302</fone>
</enderDest>
<indIEDest>1</indIEDest>
<IE>148514264114</IE>
</dest>
-<det nItem="1">
-<prod>
<cProd>000000000000002740</cProd>
<cEAN>7891330016136</cEAN>
<xProd>TABLETE 1891 ORANGE 4X900G (10X90G)</xProd>
<NCM>18063210</NCM>
<CEST>1700300</CEST>
<CFOP>5910</CFOP>
<uCom>CX</uCom>
<qCom>1.0000</qCom>
<vUnCom>215.1000000000</vUnCom>
<vProd>215.10</vProd>
<cEANTrib>7891330016136</cEANTrib>
<uTrib>KG</uTrib>
<qTrib>1.0000</qTrib>
<vUnTrib>215.1000000000</vUnTrib>
<indTot>1</indTot>
</prod>
-<imposto>
-<ICMS>
-<ICMS70>
<orig>0</orig>
<CST>70</CST>
<modBC>3</modBC>
<pRedBC>33.3300</pRedBC>
<vBC>143.41</vBC>
<pICMS>18.0000</pICMS>
<vICMS>25.81</vICMS>
<modBCST>4</modBCST>
<vBCST>315.08</vBCST>
<pICMSST>18.0000</pICMSST>
<vICMSST>30.90</vICMSST>
</ICMS70>
</ICMS>
-<IPI>
<qSelo>000000000000</qSelo>
<cEnq>999</cEnq>
-<IPINT>
<CST>53</CST>
</IPINT>
</IPI>
-<PIS>
-<PISNT>
<CST>08</CST>
</PISNT>
</PIS>
-<COFINS>
-<COFINSNT>
<CST>08</CST>
</COFINSNT>
</COFINS>
</imposto>
</det>
-<det nItem="2">
-<prod>
<cProd>000000000000002751</cProd>
<cEAN>7891330016174</cEAN>
<xProd>TABLETE 1891 SUPREME 4X900G (10X90G)</xProd>
<NCM>18063210</NCM>
<CEST>1700300</CEST>

<CFOP>5910</CFOP>
<uCom>CX</uCom>
<qCom>2.0000</qCom>
<vUnCom>215.1000000000</vUnCom>
<vProd>430.20</vProd>
<cEANTrib>7891330016174</cEANTrib>
<uTrib>KG</uTrib>
<qTrib>2.0000</qTrib>
<vUnTrib>215.1000000000</vUnTrib>
<indTot>1</indTot>
</prod>
-<imposto>
-<ICMS>
-<ICMS70>
<orig>0</orig>
<CST>70</CST>
<modBC>3</modBC>
<pRedBC>33.3300</pRedBC>
<vBC>286.81</vBC>
<pICMS>18.0000</pICMS>
<vICMS>51.63</vICMS>
<modBCST>4</modBCST>
<vBCST>630.16</vBCST>
<pICMSST>18.0000</pICMSST>
<vICMSST>61.80</vICMSST>
</ICMS70>
</ICMS>
-<IPI>
<qSelo>000000000000</qSelo>
<cEnq>999</cEnq>
-<IPINT>
<CST>53</CST>
</IPINT>
</IPI>
-<PIS>
-<PISNT>
<CST>08</CST>
</PISNT>
</PIS>
-<COFINS>
-<COFINSNT>
<CST>08</CST>
</COFINSNT>
</COFINS>
</imposto>
</det>
-<det nItem="3">
-<prod>
<cProd>000000000000002846</cProd>
<cEAN>7891330016532</cEAN>
<xProd>STIKADINHO MORANGO 20X394G (32X12,3G)</xProd>
<NCM>18063110</NCM>
<CEST>1700200</CEST>
<CFOP>5910</CFOP>
<uCom>CX</uCom>
<qCom>4.0000</qCom>
<vUnCom>139.4900000000</vUnCom>
<vProd>557.96</vProd>
<cEANTrib>7891330016532</cEANTrib>
<uTrib>KG</uTrib>
<qTrib>4.0000</qTrib>
<vUnTrib>139.4900000000</vUnTrib>
<indTot>1</indTot>
<nFCI>EB571FFF-DACD-4923-B6F1-5E35CFC972CD</nFCI>
</prod>
-<imposto>
-<ICMS>
-<ICMS70>
<orig>0</orig>
<CST>70</CST>
<modBC>3</modBC>
<pRedBC>33.3300</pRedBC>
<vBC>371.99</vBC>
<pICMS>18.0000</pICMS>
<vICMS>66.96</vICMS>
<modBCST>4</modBCST>
<vBCST>970.18</vBCST>
<pICMSST>18.0000</pICMSST>
<vICMSST>107.67</vICMSST>
</ICMS70>
</ICMS>
-<IPI>
<qSelo>000000000000</qSelo>
<cEnq>999</cEnq>
-<IPINT>
<CST>53</CST>
</IPINT>
</IPI>
-<PIS>
-<PISNT>
<CST>08</CST>
</PISNT>
</PIS>
-<COFINS>
-<COFINSNT>
<CST>08</CST>
</COFINSNT>
</COFINS>
</imposto>
</det>
-<total>
-<ICMSTot>
<vBC>802.21</vBC>
<vICMS>144.40</vICMS>
<vICMSDeson>0.00</vICMSDeson>
<vFCP>0.00</vFCP>
<vBCST>1915.42</vBCST>
<vST>200.37</vST>
<vFCPST>0.00</vFCPST>
<vFCPSTRet>0.00</vFCPSTRet>
<vProd>1203.26</vProd>
<vFrete>0.00</vFrete>
<vSeg>0.00</vSeg>
<vDesc>0.00</vDesc>
<vII>0.00</vII>
<vIPI>0.00</vIPI>
<vIPIDevol>0.00</vIPIDevol>
<vPIS>0.00</vPIS>
<vCOFINS>0.00</vCOFINS>
<vOutro>0.00</vOutro>
<vNF>1403.63</vNF>
</ICMSTot>
</total>
-<transp>
<modFrete>0</modFrete>
-<transporta>
<CNPJ>67199737000156</CNPJ>
<xNome>TAFF TRANSP ROD EIRELI</xNome>
<IE>206404772110</IE>
<xEnder>AV PREFEITO JOAO VILALLOBO QU 1505B</xEnder>
<xMun>BARUERI</xMun>
<UF>SP</UF>
</transporta>
-<vol>
<qVol>7</qVol>
<esp>CX</esp>
<pesoL>42.320</pesoL>
<pesoB>48.810</pesoB>
</vol>
</transp>
-<pag>
-<detPag>
<tPag>99</tPag>
<vPag>1403.63</vPag>
</detPag>
</pag>
-<infAdic>
<infCpl>OV: 1000024032 VL: 3000030144 VT: VF: 5000027408 SI.: 0007 Contribuinte DocSAP: 9600053412 PED CLI: DT. VENC: PRAZO DIAS: Z000 - Boleto CUBAGEM: 0,122 M3 Valor aproximado total de tributos federais, estaduais e municipais: R$ 344,77</infCpl>
</infAdic>
</infNFe>
-<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
-<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
-<Reference URI="#NFe35180187315834001146550010000105791143097054">
-<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<DigestValue>+oaJMfikZ4kK2kRkqnAFvClhcFE=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>j2nEnerZJyFTiO5skRi9Sc01RESuZn4LRpZSObEWF4/WIe3S17bBd90fhlX7RQYlRCgsI3d0X1S4 1rd7zajTKuh1O/GEh8b9y/U6MbvLSeQCOr09DoZvqUw/tuAcDo1CACdmimEyHDQi8wf7DtZf1Mt+ fKcuz2qYWG5UHbUSJDbxK0sCoMimbzTdeNVECA+FaNcgvScC7KANsL8lvZXCFJ3zOE4mPsvNLZzI lCU0xzeK14BokF0NKM129P3FIgWThZG9NqbQkAFtLgGQkGb4QC7sUyoFMdQMQgwJMmEosYKFNEWd ZJQaS4w+6wL2Rc6oAgpIcKiHc1fTNOEat84JEw==</SignatureValue>
-<KeyInfo>
-<X509Data>
<X509Certificate>MIIH4TCCBcmgAwIBAgIQArJwNY7Ouh8+dez6MP1BUTANBgkqhkiG9w0BAQsFADB0MQswCQYDVQQG EwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDEtMCsGA1UECxMkQ2VydGlzaWduIENlcnRpZmljYWRv cmEgRGlnaXRhbCBTLkEuMSEwHwYDVQQDExhBQyBDZXJ0aXNpZ24gTXVsdGlwbGEgRzcwHhcNMTcw OTI4MTUwNzI4WhcNMTgwOTI4MTUwNzI4WjCBrjELMAkGA1UEBhMCQlIxEzARBgNVBAoMCklDUC1C cmFzaWwxJjAkBgNVBAsMHUF1dGVudGljYWRvIHBvciBBUiBCREkgQnJhc2lsMRswGQYDVQQLDBJB c3NpbmF0dXJhIFRpcG8gQTExHDAaBgNVBAMME1ZPTlBBUiBBTElNRU5UT1MgU0ExJzAlBgkqhkiG 9w0BCQEWGHZ3ZWlzc0BuZXVnZWJhdWVyLmNvbS5icjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC AQoCggEBAL2gKESAhuHNLZSTjBdOxreR069aGYc4xnj3NWj6jcrs7DYWwQj+Nog2sItQePrMxDdX j4VC1XWRUOIi28ORRmULIvoTFEoppnfzLxsyBa5S1aQ77eiH/FmUE4U/BcnZ02KsQCoaFUcw8z2E mJWC/BR0y73K9JgwUemITOUcDyvPNRuTaIECJSErTXDq849TEt3+zjMHWAzpI0BiXxyTtapmsh2x KNogm+snzUHrxzJ+B93tEjAhVjPwFOmyd14FpFDeax+MQtQ9NVBmAxevMBRDwNcOjdb/e72HxXHE pMtcwNf9TH7tAhVt6K22W1iOiM/bdsBfAdcgiQH5UUTjpQ8CAwEAAaOCAzIwggMuMIHABgNVHREE gbgwgbWgPQYFYEwBAwSgNAQyMzEwNzE5NzA0OTg2MTQwOTA2ODAwMDAwMDAwMDAwMDAwMDAxMDQx MjI3MTk4U1NQUlOgJgYFYEwBAwKgHQQbUk9HRVJJTyBNQVJUSU5TIERFIE9MSVZFSVJBoBkGBWBM AQMDoBAEDjg3MzE1ODM0MDAwMTc0oBcGBWBMAQMHoA4EDDAwMDAwMDAwMDAwMIEYdndlaXNzQG5l dWdlYmF1ZXIuY29tLmJyMAkGA1UdEwQCMAAwHwYDVR0jBBgwFoAUXXIMvzPSu+OGpuhMBnF+VVwH oNYwgYsGA1UdIASBgzCBgDB+BgZgTAECAQswdDByBggrBgEFBQcCARZmaHR0cDovL2ljcC1icmFz aWwuY2VydGlzaWduLmNvbS5ici9yZXBvc2l0b3Jpby9kcGMvQUNfQ2VydGlzaWduX011bHRpcGxh L0RQQ19BQ19DZXJ0aVNpZ25fTXVsdGlwbGEucGRmMIHGBgNVHR8Egb4wgbswXKBaoFiGVmh0dHA6 Ly9pY3AtYnJhc2lsLmNlcnRpc2lnbi5jb20uYnIvcmVwb3NpdG9yaW8vbGNyL0FDQ2VydGlzaWdu TXVsdGlwbGFHNy9MYXRlc3RDUkwuY3JsMFugWaBXhlVodHRwOi8vaWNwLWJyYXNpbC5vdXRyYWxj ci5jb20uYnIvcmVwb3NpdG9yaW8vbGNyL0FDQ2VydGlzaWduTXVsdGlwbGFHNy9MYXRlc3RDUkwu Y3JsMA4GA1UdDwEB/wQEAwIF4DAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwgbYGCCsG AQUFBwEBBIGpMIGmMGQGCCsGAQUFBzAChlhodHRwOi8vaWNwLWJyYXNpbC5jZXJ0aXNpZ24uY29t LmJyL3JlcG9zaXRvcmlvL2NlcnRpZmljYWRvcy9BQ19DZXJ0aXNpZ25fTXVsdGlwbGFfRzcucDdj MD4GCCsGAQUFBzABhjJodHRwOi8vb2NzcC1hYy1jZXJ0aXNpZ24tbXVsdGlwbGEuY2VydGlzaWdu LmNvbS5icjANBgkqhkiG9w0BAQsFAAOCAgEAsu7sos+0wg1X0pbkERxZujHF3Cb0QQ8XPt+NDr0E GO34EhtQtSZI9xs3TMLwdWvZ6B74eUU2MF9MnvutnGGsqHahwtqirBbXELU0Bs4BFd3l1rN6B6v7 v4VWxjw5VrVHAXjyBQeOgZf6oaE9t7VIlPQWQGBeoGTG9G9UtZRBcK4KT0d3WiVa6bZE2/QM7bwk jQQxkEdB9FGs5p7N3TVvHiEq1/ONxk1XRQ8MXQqB3XgXqky/os+GcvXzo9KPAGRWOFmDGK83mLBf SFa88L9LOsjmxhI5ZPKT82IMb/OzZJzw1AB8fDA8J6mlOJGakwXqLsCoN9UTc/0tzFbI3QMrFSBN J9y0gQajSQxm0Fk9ObHccOl5GYoN0Egl9CTaW8VbluU43AypdLQPu0K1FHEnf2igpVh7LzXVU/Ez XOto7ZXZK9+k/EF0PeR13e9EcBwqCDXOyrvk/KPoYjs2isZQ8OV7F7CeLRTnZg67lfz81XwxZ4d0 pYzb6zbEd3PysiymBZLQy0fNAeCX1D1D5YxtHzpN4KLWQMdU8hZbweR5gLRxRBuzVgdbDr1FIcrW C7G0mbsFlLBb0r0nWgHe3dFsnT3JBijHhdLGkSfXzuVJrWT71F/A78kCXFIgU1KK1cBj78+6oHVm jpwr95oepA+w1aEN/PUfOqryX0z4U/7RHV4=</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</NFe>
-<protNFe versao="4.00" xmlns="http://www.portalfiscal.inf.br/nfe">
-<infProt>
<tpAmb>1</tpAmb>
<verAplic>SP_NFE_PL009_V4</verAplic>
<chNFe>35180187315834001146550010000105791143097054</chNFe>
<dhRecbto>2018-01-18T16:34:48-02:00</dhRecbto>
<nProt>135180040636718</nProt>
<digVal>+oaJMfikZ4kK2kRkqnAFvClhcFE=</digVal>
<cStat>100</cStat>
<xMotivo>Autorizado o uso da NF-e</xMotivo>
</infProt>
</protNFe>
</nfeProc>

preciso pegar o campo de serie e alterar. Se alguém puder me ajudar, não precisa escrever todo codigo apenas me dar o caminho das pedras kkkk.

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

existem varias maneiras de se fazer isso

vou te dar o exemplo de uma das maneiras

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Arquivo : TextFile;
  Line : string;
  num : integer = 0;

implementation

{$R *.dfm}

function ExtractNumberInString( Linha: String ): String ;
var  i: Integer ;
begin
   Result := '' ;
   for i := 1 to length( Linha ) do
   begin
      if Linha[ i ] in ['0'..'9'] then
         Result := Result + Linha[ i ] ;
   end ;
end ;

procedure TForm1.Button1Click(Sender: TObject);
var Line, x: string; i : Integer;
begin
  Memo1.Clear;

  AssignFile(Arquivo, 'C:\Teste.Xml');
  Reset(Arquivo);

  if (IOResult <> 0) // verifica o resultado da operação de abertura
     then showmessage('Erro na abertura do arquivo !!!')
  else
  begin
      while not EOF(Arquivo) do
      begin
         ReadLn(Arquivo, Line);
         if Pos('</serie>',Line)>0 then
            begin
               x := ExtractNumberInString(line);
               Line := StringReplace(Line, x, '1234567', []);
            end;
         Memo1.Lines.add( Line );
         Inc(num);
         Label1.Caption := 'Total de Linhas Anexadas = ' + inttostr(num);
      end;
  end;
  CloseFile(Arquivo);

  Memo1.Lines.SaveToFile('c:\Result.xml');
end;

end.

Leitura do Arquivo Inicial

- <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
- <infNFe Id="NFe35080599999090910270550010000000015180051273" versao="1.10">
- <ide>
  <cUF>35</cUF> 
  <cNF>518005127</cNF> 
  <natOp>Venda a vista</natOp> 
  <indPag>0</indPag> 
  <mod>55</mod> 
  <serie>1</serie> 
  <nNF>1</nNF> 
  <dEmi>2008-05-06</dEmi> 
  <dSaiEnt>2008-05-06</dSaiEnt> 
  <tpNF>0</tpNF> 
  <cMunFG>3550308</cMunFG> 
  <tpImp>1</tpImp> 
  <tpEmis>1</tpEmis> 
  <cDV>3</cDV> 
  <tpAmb>2</tpAmb> 
  <finNFe>1</finNFe> 
  <procEmi>0</procEmi> 
  <verProc>NF-eletronica.com</verProc> 
  </ide>
- <emit>
  <CNPJ>99999090910270</CNPJ> 

Resultado Final ... substituindo <serie>1</serie>  por  <serie>1234567</serie>

- <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
- <infNFe Id="NFe35080599999090910270550010000000015180051273" versao="1.10">
- <ide>
  <cUF>35</cUF> 
  <cNF>518005127</cNF> 
  <natOp>Venda a vista</natOp> 
  <indPag>0</indPag> 
  <mod>55</mod> 
  <serie>1234567</serie> 
  <nNF>1</nNF> 
  <dEmi>2008-05-06</dEmi> 
  <dSaiEnt>2008-05-06</dSaiEnt> 
  <tpNF>0</tpNF> 
  <cMunFG>3550308</cMunFG> 
  <tpImp>1</tpImp> 
  <tpEmis>1</tpEmis> 
  <cDV>3</cDV> 
  <tpAmb>2</tpAmb> 
  <finNFe>1</finNFe> 
  <procEmi>0</procEmi> 
  <verProc>NF-eletronica.com</verProc> 
  </ide>
- <emit>
  <CNPJ>99999090910270</CNPJ> 

Outra possibilidade seria manipulando o arquivo xml através de um ClientDataSet

http://edn.embarcadero.com/de/article/37321

ou veja esses links

https://www.google.com.br/search?source=hp&ei=TGZjWofzEMixwASGy5u4BA&q=ler+xml+nfe+delphi&o que=ler+xml&gs_l=psy-ab.1.7.0l10.1667.3995.0.6415.7.6.0.1.1.0.142.622.0j5.5.0....0...1c.1.64.psy-ab..1.6.635...0i131k1.0.8cZmsXIIbs8

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

isso é muito simples, basta colocar um componente OpenDialog  no código

procedure TForm1.Button1Click(Sender: TObject);
var Line, x: string; i : Integer;
begin
  Memo1.Clear;

  if OpenDialog1.Execute then
     AssignFile(Arquivo, OpenDialog1.FileName)
  else
     exit;

  Reset(Arquivo);

  if (IOResult <> 0) // verifica o resultado da operação de abertura
     then showmessage('Erro na abertura do arquivo !!!')
  else
  begin
      while not EOF(Arquivo) do
      begin
         ReadLn(Arquivo, Line);
         if Pos('</serie>',Line)>0 then
            begin
               x := ExtractNumberInString(line);
               Line := StringReplace(Line, x, '1234567', []);
            end;
         Memo1.Lines.add( Line );
         Inc(num);
         Label1.Caption := 'Total de Linhas Anexadas = ' + inttostr(num);
      end;
  end;
  CloseFile(Arquivo);

  Memo1.Lines.SaveToFile('c:\Result.xml');
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Valeu Jhonas ajudou muito.... Se puder me ajudar com outra questão kkk... Esse negocio de manipular xml é bem dificil! O que eu preciso agora é o seguinte, trocar os campos de emitente pelo de destinatario e vice e versa...

</ide>
-<emit>
<CNPJ>87315834001146</CNPJ>
<xNome>NEUGEBAUER ALIMENTOS S/A</xNome>
<xFant>Neugebauer Alimentos S/A - ACP</xFant>
-<enderEmit>
<xLgr>AVENIDA LEDA PANTALENA</xLgr>
<nro>1100</nro>
<xCpl>CM03STASL1</xCpl>
<xBairro>JARDIM PORTELA</xBairro>
<cMun>3522505</cMun>
<xMun>ITAPEVI</xMun>
<UF>SP</UF>
<CEP>06695210</CEP>
<xPais>Brasil</xPais>
<fone>5137169000</fone>
</enderEmit>
<IE>373166773114</IE>
<CRT>3</CRT>
</emit>
......
-<dest>
<CNPJ>10665706000126</CNPJ>
<xNome>FERNANDES DISTRIBUIDORA DE DOCES LT</xNome>
-<enderDest>
<xLgr>TENENTE LANDY</xLgr>
<nro>120</nro>
<xCpl>120</xCpl>
<xBairro>LAPA DE BAIXO</xBairro>
<cMun>3550308</cMun>
<xMun>são PAULO</xMun>
<UF>SP</UF>
<CEP>05068020</CEP>
<cPais>1058</cPais>
<xPais>Brasil</xPais>
<fone>1136110302</fone>
</enderDest>
<indIEDest>1</indIEDest>
<IE>148514264114</IE>
</dest>
Link para o comentário
Compartilhar em outros sites

  • 0

O conteudo é esse.... Eu preciso alterar porque o sistema aqui da empresa é muito travado. Por exemplo, todas as notas de um cliente entram como nota de saida e eu preciso gerar uma entrada para essas notas, só que esse processo é manual e nota por nota, um cliente manda em media de 100 notas por dia e eu perco uma pessoa só pra fazer esse tramite de gerar entrada, se eu conseguir manipular essas informações eu já importo a nota como entrada.

 

</ide>
-<emit>
<CNPJ>87315834001146</CNPJ>
<xNome>NEUGEBAUER ALIMENTOS S/A</xNome>
<xFant>Neugebauer Alimentos S/A - ACP</xFant>
-<enderEmit>
<xLgr>AVENIDA LEDA PANTALENA</xLgr>
<nro>1100</nro>
<xCpl>CM03STASL1</xCpl>
<xBairro>JARDIM PORTELA</xBairro>
<cMun>3522505</cMun>
<xMun>ITAPEVI</xMun>
<UF>SP</UF>
<CEP>06695210</CEP>
<xPais>Brasil</xPais>
<fone>5137169000</fone>
</enderEmit>
<IE>373166773114</IE>
<CRT>3</CRT>
</emit>
......
-<dest>
<CNPJ>10665706000126</CNPJ>
<xNome>FERNANDES DISTRIBUIDORA DE DOCES LT</xNome>
-<enderDest>
<xLgr>TENENTE LANDY</xLgr>
<nro>120</nro>
<xCpl>120</xCpl>
<xBairro>LAPA DE BAIXO</xBairro>
<cMun>3550308</cMun>
<xMun>são PAULO</xMun>
<UF>SP</UF>
<CEP>05068020</CEP>
<cPais>1058</cPais>
<xPais>Brasil</xPais>
<fone>1136110302</fone>
</enderDest>
<indIEDest>1</indIEDest>
<IE>148514264114</IE>
</dest>
Link para o comentário
Compartilhar em outros sites

  • 0
-<emit>		-<dest>
<CNPJ>		<CNPJ>
<xNome>		<xNome>
<xFant>		-<enderDest>
-<enderEmit>		<xLgr>
<xLgr>		<nro>
<nro>		<xCpl>
<xCpl>		<xBairro>
<xBairro>		<cMun>
<cMun>		<xMun>
<xMun>		<UF>
<UF>		<CEP>
<CEP>		<cPais>
<xPais>		<xPais>
<fone>		<fone>
</enderEmit>		</enderDest>
<IE>		<indIEDest>
<CRT>		<IE>
</emit>		</dest>

OBS: Se voce fizer uma comparação com os campos, vai notar que alguns campos constam em uma coluna mas não na outra  ( 4 campos )

informações não correspondentes entre emitente e destinatário:

coluna A - coluna B

xFant - não existe

não existe - indIEDest

não existe - cPais

CRT - não existe

o que sera feito com essas informações ???

Se voce quer trocar os campos do emitente para o destinatário e vice-versa, vai usar a mesma lógica que te passei

na leitura da linha, voce deve procurar pelos identificadores que voce quer ( <CNPJ>   <xNome>   <xFant> ... etc )  , armazenar o valor em  variaveis  de controle ou uma matriz de dados

um exemplo de como pegar o conteudo desses identificadores

procedure TForm1.Button1Click(Sender: TObject);
var s, r : string ; i : integer;
begin
   s := '<xNome>NEUGEBAUER ALIMENTOS S/A</xNome>';
   if pos('<xNome>',s) >0 then
      r := copy(s,pos('<xNome>',s)+7,pos('</xNome>',s)-8);
   showmessage(r);
end;

imagine que a variavel " s " é a linha que voce esta lendo do arquivo...e a variavel " r " é o valor que voce quer guardar para depois fazer a troca no arquivo que esta no Memo

é só fazer a mesma coisa para todos os outros identificadores

o arquivo lido, passa então para um  Memo ... e nesse Memo,  vai  procurar os mesmos identificadores e trocar os conteúdos dos campos pelo valores que estão nas variaveis de controle ou na matriz de dados

e depois é só salvar o arquivo no Memo modificado como XML

abraço

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

TextBox - Representa um controle de caixa de texto do Windows.

esse componente é usado no VB

no delphi,  voce pode jogar  o nome que foi pego no campo <xNome>   em um Edit ou ListBox ou Combobox ou Memo ou RichEdit ... etc

use o componente que for melhor para voce

exemplo:

procedure TForm1.Button1Click(Sender: TObject);
var s, r : string ; i : integer;
begin
   s := '<xNome>NEUGEBAUER ALIMENTOS S/A</xNome>';
   if pos('<xNome>',s) >0 then
      begin
         r := copy(s,pos('<xNome>',s)+7,pos('</xNome>',s)-8);

         Edit1.Text := r;

         Memo1.Clear;
         Memo1.Lines.Append(r);

         ComboBox1.Clear;
         ComboBox1.Items.Append(r);
         ComboBox1.ItemIndex := 0;

         ListBox1.Items.Append(r);

         RichEdit1.Text := r;
      end;
end;

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...