Quantcast
Channel: FiveTech Software tech support forums
Viewing all articles
Browse latest Browse all 26212

Função para Modificar TAG XML

$
0
0
Amigos, segue uma função que criei para alterar uma TAG de um XML. Espero que possa ser útil para mais alguém. #include "FiveWin.ch" function Main() AlteraValorTagXml("bemasat.xml", "cancelar_venda", "1") return /*********************************************************************************************/ procedure AlteraValorTagXml( cXMLFile, cXMLTag, cNewValue ) /* */ Local x, aArray, nArquivo, cLinha, cTagInicial, cTagFinal, nTamanhoTag, nTamanhoTagFinal, nPosicao Local nPosicaoTagFinal, cInicial, cFinal if !File(cXMLFile) MsgStop("Arquivo não localizado: "+Alltrim(cXMLFile), "Atenção!") return endif aArray := ArquivoParaArray(cXMLFile) if Ferase(cXMLFile) == 0 nArquivo := fCreate(cXMLFile) if nArquivo < 1 MsgStop('Erro ao criar o arquivo: '+cXMLFile,'XML') return endif for x := 1 to len(aArray) if Empty(aArray[x]) loop endif cLinha := aArray[x] cTagInicial := "<"+Alltrim(cXMLTag)+">" cTagFinal := ""+Alltrim(cXMLTag)+">" nTamanhoTag := Len(cTagInicial) nTamanhoTagFinal := Len(cTagFinal) nPosicao := At(cTagInicial, cLinha ) nPosicaoTagFinal := At(cTagFinal , cLinha ) if !Empty(nPosicao) cInicial := substr(cLinha,nPosicao ,nTamanhoTag) cFinal := substr(cLinha,nPosicaoTagFinal,nTamanhoTagFinal) cLinha := Space(nPosicao-1)+Alltrim(cInicial)+Alltrim(cNewValue)+Alltrim(cFinal) endif fWrite(nArquivo, cLinha + CRLF) next fClose(nArquivo) endif return /**********************************************************************/ static function ArquivoParaArray(cFileOrigem) /* Conteudo de um arquivo em array */ Local cFileName := cFileOrigem Local aLines := {} Local nFileHandle := FOpen( cFileName ) Local cLine if nFileHandle != -1 do while HB_FReadLine( nFileHandle, @cLine ) == 0 AAdd( aLines, cLine ) enddo //Add the last line AAdd( aLines, cLine ) //Close file FClose( nFileHandle ) endif return(aLines)

Viewing all articles
Browse latest Browse all 26212

Trending Articles