• 0
Sign in to follow this  
Willians Junior

(Resolvido) Alterar campo especifico do XML

Question

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.

Share this post


Link to post
Share on other sites

11 answers to this question

Recommended Posts

  • 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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>

Share this post


Link to post
Share on other 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>

Share this post


Link to post
Share on other 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

 

 

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this