Ajustar arquivo xml no delphi

Delphi

XML

23/03/2017

Olá!

Estou fazendo um programa em Delphi para ajustar uma tag xml, o programa deve para procurar a linha que contem a tag <PortaSerial> e ajustar o conteúdo da mesma, essa tag esta dentro do bloco <ecf> o ajuste deve ser feito no mesmo arquivo de entrada sem gerar um novo arquivo.

Se alguém puder me ajudar eu agradeço sou novato na área creio que deve ser bem simples fazer isso, porém estou com dificuldades.

<DARUMAFRAMEWORK>
  <START>
    <LocalArquivos>C:\\</LocalArquivos>
    <LocalArquivosRelatorios>C:\\</LocalArquivosRelatorios>
    <LogTamMaxMB>5</LogTamMaxMB>
    <ModoObserver>0</ModoObserver>
    <PathBibliotecasAuxiliares>.\\</PathBibliotecasAuxiliares>
    <Produto>ECF</Produto>
    <ThreadAoIniciar>0</ThreadAoIniciar>
    <TipoRegistro>2</TipoRegistro>
    <TokenEncurtadorUrl>0</TokenEncurtadorUrl>
  </START>
  <DUAL>
    <AguardarProcesso>1</AguardarProcesso>
    <Auditoria>0</Auditoria>
    <TamanhoBobina>48</TamanhoBobina>
    <CodePageAutomatico>0</CodePageAutomatico>
    <ControleAutomatico>0</ControleAutomatico>
    <EnterFinal>1</EnterFinal>
    <Inicializou>0</Inicializou>
    <LinhasGuilhotina>0</LinhasGuilhotina>
    <ModoGaveta>0</ModoGaveta>
    <PortaComunicacao>COM1</PortaComunicacao>
    <EndPortaParalela></EndPortaParalela>
    <Tabulacao>05,10,15,20,30,40</Tabulacao>
    <Margem>00;00</Margem>
    <TempoEsperaLeitura>10</TempoEsperaLeitura>
    <Termica>1</Termica>
    <Velocidade>9600</Velocidade>
    <ZeroCortado>0</ZeroCortado>
    <Rota1>COM1>000.000.000.000:0000</Rota1>
    <Rota2>COM2>000.000.000.000:0000</Rota2>
    <Rota3>COM3>000.000.000.000:0000</Rota3>
    <Rota4>COM4>000.000.000.000:0000</Rota4>
    <Rota5>COM5>000.000.000.000:0000</Rota5>
    <AtivaRota>0</AtivaRota>
    <CaracterSeparador>;</CaracterSeparador>
    <FormataTexto>IMP</FormataTexto>
    <Wine>0</Wine>
  </DUAL>
  <ECF>
    <AguardarBitmapRZ>0</AguardarBitmapRZ>
    <AguardarImpressao>0</AguardarImpressao>
    <AjustaDATAM>0</AjustaDATAM>
    <AlteraFPGTO>1</AlteraFPGTO>
    <ArquivoLeituraX>LeituraX.ser</ArquivoLeituraX>
    <ArredondarTruncar>A</ArredondarTruncar>
    <Auditoria>0</Auditoria>
    <CaracterSeparador>;</CaracterSeparador>
    <ControleAutomatico>0</ControleAutomatico>
    <DelayEntreBytes>010</DelayEntreBytes>
    <EncontrarECF>1</EncontrarECF>
    <EmErroBuscarPorta>0</EmErroBuscarPorta>
    <EnviarAvisoAoUsuario>0</EnviarAvisoAoUsuario>
    <EnviarErroAoUsuario>0</EnviarErroAoUsuario>
    <FarmaciaPopular>0</FarmaciaPopular>
    <GerandoRelatorio>0</GerandoRelatorio>
    <HabilitaNFCe>0</HabilitaNFCe>
    <NumeroECFCompativel>001</NumeroECFCompativel>
    <HabilitaNotificacaoWS>0</HabilitaNotificacaoWS>
    <HorarioVeraoInicio></HorarioVeraoInicio>
    <HorarioVeraoFim></HorarioVeraoFim>
    <LegendaInmetro>0</LegendaInmetro>
    <LMFCompleta>0</LMFCompleta>
    <MaxFechamentoAutomatico>0</MaxFechamentoAutomatico>
    <MensagemApl1></MensagemApl1>
    <MensagemApl2></MensagemApl2>
    <MensagemAviso>AVISO: [O PAPEL ESTA ACABANDO!!]. INSIRA NOVA BOBINA DE PAPEL.</MensagemAviso>
    <ModoGaveta>0</ModoGaveta>
    <NaoAvisarPoucoPapel>0</NaoAvisarPoucoPapel>
    <NomeUltimoCMD>eInterpretarRetorno_ECF_Daruma</NomeUltimoCMD>
    <PortaSerial>COM1</PortaSerial>
    <ReceberAvisoEmArquivo>0</ReceberAvisoEmArquivo>
    <ReceberDescricaoAvisoEmArquivo>0</ReceberDescricaoAvisoEmArquivo>
    <ReceberDescricaoErroEmArquivo>0</ReceberDescricaoErroEmArquivo>
    <ReceberErroEmArquivo>0</ReceberErroEmArquivo>
    <ReceberInfoEstendida>1</ReceberInfoEstendida>
    <ReceberInfoEstendidaEmArquivo>0</ReceberInfoEstendidaEmArquivo>
    <ReducaoZAutomatica>0</ReducaoZAutomatica>
    <RetornarAvisoErro>0</RetornarAvisoErro>
    <SangriaMensagem></SangriaMensagem>
    <SangriaValor>100</SangriaValor>
    <SerialByteAByte>0</SerialByteAByte>
    <SinalSonoroIniciar>1</SinalSonoroIniciar>
    <SuprimentoMensagem></SuprimentoMensagem>
    <SuprimentoValor>100</SuprimentoValor>
    <TipoUltimoDocumento>5</TipoUltimoDocumento>
    <TituloMensagem>[DarumaFramework]</TituloMensagem>
    <Velocidade>9600</Velocidade>
    <VelocidadeAntiga>9600</VelocidadeAntiga>
    <VelocidadeGeracaoRelatorio>1</VelocidadeGeracaoRelatorio>
    <Wine>0</Wine>
    <CF>
      <BMP>0</BMP>
      <CupomAdicionalDllConfig>111111111100000000000</CupomAdicionalDllConfig>
      <CupomAdicionalDllTitulo>Cupom Adicional</CupomAdicionalDllTitulo>
      <CupomMania>0</CupomMania>
      <FormaPgto>Dinheiro</FormaPgto>
      <IdentificaConsumidorFormatado></IdentificaConsumidorFormatado>
      <MascaraIdentificaConsumidor>0</MascaraIdentificaConsumidor>
      <MensagemFormaPagamento></MensagemFormaPagamento>
      <MensagemPromocional></MensagemPromocional>
      <MinasLegal>0</MinasLegal>
      <ModoPreVenda>0</ModoPreVenda>
      <NotaLegal>0</NotaLegal>
      <Quantidade>1</Quantidade>
      <TamanhoMinimoDescricao>15</TamanhoMinimoDescricao>
      <TipoDescAcresc>D%</TipoDescAcresc>
      <TorpedoPremiadoParaiba>0</TorpedoPremiadoParaiba>
      <UnidadeMedida>un</UnidadeMedida>
      <ValorDescAcresc>0.00</ValorDescAcresc>
    </CF>
    <CCD>
      <DocOrigem>036305</DocOrigem>
      <FormaPgto>Cartao</FormaPgto>
      <LinhasTEF>20</LinhasTEF>
      <SaltarLinhasTEF>0</SaltarLinhasTEF>
      <Parcelas>01</Parcelas>
      <Valor>000000019074</Valor>
    </CCD>
    <CHEQUE>
      <XLinha1>10</XLinha1>
      <XLinha2>10</XLinha2>
      <XLinha3>10</XLinha3>
      <YLinha1>10</YLinha1>
      <YLinha2>20</YLinha2>
      <YLinha3>30</YLinha3>
      <TimeOutEjetarCheque>20</TimeOutEjetarCheque>
    </CHEQUE>
    <LEI12741>
      <ColunasIBPT>0;4;5;1;6;7</ColunasIBPT>
      <LocalArquivoNCM>./IBPTAX.csv</LocalArquivoNCM>
      <LocalMSG>0</LocalMSG>
      <MSG>Val Aprox Tributos | Fonte:IBPT</MSG>
      <SeparadorIBPT>;</SeparadorIBPT>
    </LEI12741>
    <REDUCAOZ>
      <AvisarOperacoesReducaoZ>0</AvisarOperacoesReducaoZ>
      <AvisarReducaoZ>0</AvisarReducaoZ>
      <Relatorios></Relatorios>
      <PeriodoInicial></PeriodoInicial>
      <PeriodoFinal></PeriodoFinal>
      <ChavePrivada></ChavePrivada>
      <ExecutarAntesOuDepois>1</ExecutarAntesOuDepois>
      <MensagemAviso>Geracao de relatorio sera executada automaticamente apos a reducao Z, favor nao desligar a impressora</MensagemAviso>
      <RetornarInformacao></RetornarInformacao>
      <TimeOutReducaoZ>30</TimeOutReducaoZ>
    </REDUCAOZ>
    <SINTEGRA>
      <Bairro>Bairro</Bairro>
      <CEP>12345.123</CEP>
      <Cod_Convenio>1</Cod_Convenio>
      <Cod_Finalidade>1</Cod_Finalidade>
      <Cod_Natureza>1</Cod_Natureza>
      <Complemento>Complemento</Complemento>
      <Contato_Nome>Nome Contato</Contato_Nome>
      <Contato_Telefone>(12) 1234-1234</Contato_Telefone>
      <Fax>(12) 1234-1234</Fax>
      <Logradouro>Logradouro</Logradouro>
      <Municipio>Municipio</Municipio>
      <Numero>12345</Numero>
      <RateioSubTotal>0</RateioSubTotal>
      <UF>XX</UF>
    </SINTEGRA>
    <MOVIMENTOPORECF>
      <SOFTWAREHOUSE>
        <CNPJ></CNPJ>
        <IE></IE>
        <IM></IM>
        <Denominacao></Denominacao>
        <NomePAFECF></NomePAFECF>
        <VersaoPAFECF></VersaoPAFECF>
        <MD5PAFECF></MD5PAFECF>
        <VersaoERPAFECF></VersaoERPAFECF>
      </SOFTWAREHOUSE>
    </MOVIMENTOPORECF>
    <ATOCOTEPE>
      <Automatico>0</Automatico>
    </ATOCOTEPE>
  </ECF>
  <TA2000>
    <Auditoria>0</Auditoria>
    <MensagemBoasVindasLinha1>**********Daruma Automacao**************</MensagemBoasVindasLinha1>
    <MensagemBoasVindasLinha2>********MicroTerminal TA2000************</MensagemBoasVindasLinha2>
    <Porta>LPT0</Porta>
  </TA2000>
  <MODEM>
    <Apn>XXXXX</Apn>
    <Auditoria>0</Auditoria>
    <BandejaInicio>SIM1</BandejaInicio>
    <CaptionWinAPP>MODEM - MIN100/MIN200</CaptionWinAPP>
    <ControleAutomatico>0</ControleAutomatico>
    <ConfirmaEntregaSMS>0</ConfirmaEntregaSMS>
    <IpCliente>XXX.XXX.XXX.XXX</IpCliente>
    <IpServidor>XXX.XXX.XXX.XXX</IpServidor>
    <LerApagar>FALSE</LerApag
Eduardo

Eduardo

Curtidas 0
POSTAR