Posté le 15 juin 2014 - 15:14 |
PROCEDURE WS_A_ConsultaEncomenda(LOCAL CodigoEncomenda, LOCAL DebugSN)
NextTitle("Atenção")
DebugSN = "S"
LocalOrigem, LocalDestino is string = ""
IF CodigoEncomenda <> "" OR CodigoEncomenda <> 0 OR CodigoEncomenda <> Null THEN //Faz ChangeCharset(charsetOccidental) // SEM ACENTO UrlHttp is string = "http://www.dhl.fr/content/fr/en/express/tracking.shtml…" ok is boolean = HTTPRequest(UrlHttp) IF ok = True THEN //ok deu certo //Retorno do servidor HtmlRetorno is string = HTTPGetResult(httpResult) //Sem acento HtmlRetorno = WS_RemoveAcentos(HtmlRetorno) IF DebugSN = "S" Info(HtmlRetorno) fSaveText("c:\temp\dhl-semacento.txt",HtmlRetorno) END //Tudo minusculo HtmlRetorno = Lower(HtmlRetorno) IF DebugSN = "S" Info(HtmlRetorno) fSaveText("c:\temp\dhl.txt",HtmlRetorno) END //Sem acento HtmlRetorno = WS_RemoveAcentos(HtmlRetorno) IF DebugSN = "S" Info(HtmlRetorno) fSaveText("c:\temp\dhl-semacento.txt",HtmlRetorno) END //Recorte do Html HtmlRetorno = WS_RecorteHtmlTable(HtmlRetorno,"<table border","</table>","S") IF DebugSN = "S" Info(HtmlRetorno) fSaveText("c:\temp\dhl-recortado.txt",HtmlRetorno) END //Localizou a tabela da DHL em HtmlRetorno //Local de Origem LocalOrigem = WS_BuscaLocalOrigem(HtmlRetorno) gsOrigem = LocalOrigem IF DebugSN = "S" Info(LocalOrigem) END //Local de Destino LocalDestino = WS_BuscaLocalDestino(HtmlRetorno) gsDestino = LocalDestino IF DebugSN = "S" Info(LocalDestino) END //Registros - Ocorrencias HtmlRetorno = WS_AjustaTabelaRoteiro(HtmlRetorno) IF DebugSN = "S" Info(HtmlRetorno) fSaveText("c:\temp\dhl-ajustanome.txt",HtmlRetorno) END
//Lê Html e importa dados para SQL Lite WS_ImportarHtml2Tabela(HtmlRetorno,"") // ELSE Info("Sem Conexão!") END // ELSE //Nao Faz Info("É necessário informar o código de rastreamento.") END
======================================================================
PROCEDURE WS_AjustaTabelaRoteiro(Html)
//DataCabecalho Html = Replace(Html,"<tr><th scope='col' colspan='2' axis='length' style='width: 40% text-align:left'>","<datacabecalho>")
//Dias Html = Replace(Html,"<td class='' style='width: 5% text-align:left'>","<dia>") Html = Replace(Html,"<td class='lastrow' style='width: 5% text-align:left'>","<dia>") //Descricao Html = Replace(Html,"</td><td class='' style='text-align:left'>","</td><descricao>") Html = Replace(Html,"</td><td class='lastrow' style='text-align:left'>","</td><descricao>") //Descricao -- Localidade como as colunas sao iguais os noems sao iguais Html = Replace(Html,"</td><td class='' style='text-align:left'>","</td><descricao>") Html = Replace(Html,"</td><td class='lastrow' style='text-align:left'>","</td><descricao>") //Hora Html = Replace(Html,"</td><td class=''>","</td><hora>") Html = Replace(Html,"</td><td class='lastrow'>","</td><hora>") RESULT(Html)
======================================================================
PROCEDURE WS_BuscaLocalDestino(LOCAL Html)
//Destination Service Area: Html = Lower(Html) Html = WS_RecorteHtml(Html,"destination service area:","</a></span>") //<span class="font_normal"><img src="/img/common/arrow.gif"/> <a id="orginURL4" href='#'>"
nPosicaoInicial is int = PositionOccurrence(Html,"href='#'>",firstRank,FromBeginning) + Length("href='#'>") Html = Middle(Html, nPosicaoInicial,Length(Html)) Html = Clip(Html) Html = Capitalize(Html)
RESULT(Html)
======================================================================
PROCEDURE WS_BuscaLocalOrigem(LOCAL Html)
//12345678901234567890 //Origin Service Area: Html = Lower(Html) Html = WS_RecorteHtml(Html,"origin service area:" ,"</a></span>") //<span class="font_normal"><img src="/img/common/arrow.gif"/> <a id="orginURL4" href='#'>" nPosicaoInicial is int = PositionOccurrence(Html,"href='#'>",firstRank,FromBeginning) + Length("href='#'>") Html = Middle(Html, nPosicaoInicial,Length(Html)) Html = Clip(Html) Html = Capitalize(Html) RESULT(Html)
======================================================================
PROCEDURE WS_ImportarHtml2Tabela(LOCAL Html, LOCAL DebugSN)
DebugSN = "S"
ok is boolean = False
posicaoInicial, posicaoFinal, Total, Posicao, Final is int = 0 sBusca01,sBusca02,sBusca03,sBusca04,sBusca05, sEncontra is string = ""
IF Html <> "" THEN IF PositionOccurrence(Html,"<datacabecalho>",firstRank,FromBeginning) > 0 THEN posicaoInicial = PositionOccurrence(Html,"<datacabecalho>",firstRank,FromBeginning) END IF PositionOccurrence(Html,"<hora>",lastRank,FromBeginning) > 0 THEN posicaoFinal = PositionOccurrence(Html,"<hora>",lastRank,FromBeginning) END Total = posicaoFinal + 100 sBusca01 = "datacabecalho" sBusca02 = "dia" sBusca03 = "descricao" sBusca04 = "descricao" sBusca05 = "hora" IF posicaoInicial > 0 AND posicaoFinal > 0 LOOP (Total) Posicao += 1 //datacabecalho IF Middle(Html,Posicao,Length(sBusca01)) = "datacabecalho" THEN posicaoInicial = Posicao + Length(sBusca01) + 1 sEncontra = Middle(Html,posicaoInicial,255) Final = PositionOccurrence(sEncontra,"</th>",firstRank,FromBeginning) - 1 sEncontra = Middle(sEncontra,1,Final) t002Import.t002datacabecalho = sEncontra IF DebugSN = "S" Info(sEncontra) END END //dia IF Middle(Html,Posicao,Length(sBusca02)) = "dia" THEN posicaoInicial = Posicao + Length(sBusca02) + 1 sEncontra = Middle(Html,posicaoInicial,255) Final = PositionOccurrence(sEncontra,"</td>",firstRank,FromBeginning) - 1 sEncontra = Middle(sEncontra,1,Final) t002Import.t002dia = sEncontra IF DebugSN = "S" Info(sEncontra) END END //descricao IF Middle(Html,Posicao,Length(sBusca03)) = "descricao" THEN posicaoInicial = Posicao + Length(sBusca03) + 1 sEncontra = Middle(Html,posicaoInicial,255) Final = PositionOccurrence(sEncontra,"</td>",firstRank,FromBeginning) - 1 sEncontra = Middle(sEncontra,1,Final) t002Import.t002descricao = sEncontra IF DebugSN = "S" Info(sEncontra) END END //descricao IF Middle(Html,Posicao,Length(sBusca04)) = "descricao" THEN posicaoInicial = Posicao + Length(sBusca04) + 1 sEncontra = Middle(Html,posicaoInicial,255) Final = PositionOccurrence(sEncontra,"</td>",firstRank,FromBeginning) - 1 sEncontra = Middle(sEncontra,1,Final) t002Import.t002descricao = sEncontra IF DebugSN = "S" Info(sEncontra) END END //hora IF Middle(Html,Posicao,Length(sBusca05)) = "hora" THEN posicaoInicial = Posicao + Length(sBusca05) + 1 sEncontra = Middle(Html,posicaoInicial,30) Final = PositionOccurrence(sEncontra,"</td>",firstRank,FromBeginning) - 1 sEncontra = Middle(sEncontra,1,Final) t002Import.t002hora = sEncontra IF DebugSN = "S" Info(sEncontra) END HAdd(t002Import) END END END END
RESULT(ok)
======================================================================
PROCEDURE WS_RecorteHtml(LOCAL Html, LOCAL Inicio, LOCAL Fim)
//Variaveis posicaoInicial, posicaoFinal, Total is int = 0 Html = Lower(Html) //Passo A----- Recorte inicial posicaoInicial = PositionOccurrence(Html,Inicio,firstRank,FromBeginning) Total = Length(Html) posicaoInicial = posicaoInicial + Length(Inicio) Html = Middle(Html, posicaoInicial, Total) //Passo B----- Recorte do final posicaoFinal = PositionOccurrence(Html,Fim,firstRank,FromBeginning) + Length(Fim) posicaoFinal = posicaoFinal - Length(Fim) - 1 Html = Middle(Html, 1, posicaoFinal)
RESULT(Html)
======================================================================
PROCEDURE WS_RecorteHtmlTable(LOCAL Html, LOCAL Inicio, LOCAL Fim, LOCAL DebugSN)
//Variaveis posicaoInicial, posicaoFinal, Total is int = 0 Html = Lower(Html)
//Passo A----- Recorte inicial posicaoInicial = PositionOccurrence(Html, Inicio, firstRank, FromBeginning) Total = Length(Html) Html = Middle(Html, posicaoInicial, Total) //Passo B----- Recorte do final posicaoFinal = PositionOccurrence(Html,Fim,firstRank,FromBeginning) + Length(Fim) Html = Middle(Html, 1, posicaoFinal) IF DebugSN = "S" Info(Html) fSaveText("c:\temp\dhl-recortadotable.txt",Html) END RESULT(Html)
======================================================================
PROCEDURE WS_RemoveAcentos(LOCAL Texto)
ChangeCharset(charsetOccidental) // SEM ACENTO
nTamanho is int = Length(Texto)
//VERIFICA Texto = Replace(Texto,"ã","a") Texto = Replace(Texto,"á","a") Texto = Replace(Texto,"é","e") Texto = Replace(Texto,"ê","e") Texto = Replace(Texto,"Ê","e") Texto = Replace(Texto,"A","A") Texto = Replace(Texto,"A£","A") Texto = Replace(Texto,"á","A") Texto = Replace(Texto,"â","A") Texto = Replace(Texto,"Ã","A") Texto = Replace(Texto,"Ê","E") Texto = Replace(Texto,"é","E") Texto = Replace(Texto,"ê","E") Texto = Replace(Texto,"Ã","I") Texto = Replace(Texto,"ô","O") Texto = Replace(Texto,"Aµ","O") Texto = Replace(Texto,"ó","O") Texto = Replace(Texto,"A“","O") Texto = Replace(Texto,"Aº","U") Texto = Replace(Texto,"ç","C") Texto = Replace(Texto,"Ç","C") Texto = Replace(Texto,"ãO","AO") Texto = Replace(Texto,"É","E") Texto = Replace(Texto,"Ã%","E") Texto = Replace(Texto,"A£","a") Texto = Replace(Texto,"£","") Texto = Replace(Texto,"","") Texto = Replace(Texto,"¡","") Texto = Replace(Texto,"¢","") Texto = Replace(Texto,"õ","O") Texto = Replace(Texto,"µ","O") Texto = Replace(Texto,"Áº","u") Texto = Replace(Texto,"Aº","u") Texto = Replace(Texto,"º","u")
Texto = Replace(Texto,"ã","a") Texto = Replace(Texto,"á","a") Texto = Replace(Texto,"à","a") Texto = Replace(Texto,"â","a") Texto = Replace(Texto,"ä","a")
Texto = Replace(Texto,"~e","e") Texto = Replace(Texto,"é","e") Texto = Replace(Texto,"è","e") Texto = Replace(Texto,"ê","e") Texto = Replace(Texto,"ë","e")
Texto = Replace(Texto,"~i","i") Texto = Replace(Texto,"í","i") Texto = Replace(Texto,"ì","i") Texto = Replace(Texto,"î","i") Texto = Replace(Texto,"ï","i")
Texto = Replace(Texto,"õ","o") Texto = Replace(Texto,"ó","o") Texto = Replace(Texto,"ò","o") Texto = Replace(Texto,"ô","o") Texto = Replace(Texto,"ö","o")
Texto = Replace(Texto,"~u","u") Texto = Replace(Texto,"ú","u") Texto = Replace(Texto,"ù","u") Texto = Replace(Texto,"û","u") Texto = Replace(Texto,"ü","u")
Texto = Replace(Texto,"ç","c") Texto = Replace(Texto,"Ç","C")
Texto = Replace(Texto,"Ã","A") Texto = Replace(Texto,"Á","A") Texto = Replace(Texto,"À","A") Texto = Replace(Texto,"Â","A") Texto = Replace(Texto,"Ä","A")
Texto = Replace(Texto,"~E","E") Texto = Replace(Texto,"É","E") Texto = Replace(Texto,"È","E") Texto = Replace(Texto,"Ê","E") Texto = Replace(Texto,"Ë","E")
Texto = Replace(Texto,"~I","I") Texto = Replace(Texto,"Í","I") Texto = Replace(Texto,"Ì","I") Texto = Replace(Texto,"Î","I") Texto = Replace(Texto,"Ï","I")
Texto = Replace(Texto,"Õ","O") Texto = Replace(Texto,"Ó","O") Texto = Replace(Texto,"Ò","O") Texto = Replace(Texto,"Ô","O") Texto = Replace(Texto,"Ö","O")
Texto = Replace(Texto,"~U","U") Texto = Replace(Texto,"Ú","U") Texto = Replace(Texto,"Ù","U") Texto = Replace(Texto,"Û","U") Texto = Replace(Texto,"Ü","U")
Texto = WS_RemoveCaractAscII(Texto)
RESULT(Texto)
======================================================================
PROCEDURE WS_RemoveCaractAscII(LOCAL Texto is string)
nTotal is int = Length(Texto) nPos01 is int = 0 Busca is string = ""
Texto = Lower(Texto)
Texto = Replace(Texto,"<TAB>","")
Texto = Replace(Texto,Charact(13),"")
Texto = Replace(Texto,Charact(10),"")
Texto = Replace(Texto,Charact(34),"'")
Texto = Replace(Texto,"<br />","<br>")
Texto = Replace(Texto,"</a> </span>","</a></span>")
Texto = Replace(Texto,"<?xml version="+Charact(34)+"1.0"+Charact(34)+" encoding="+Charact(34)+"utf-8"+Charact(34)+"?>","<?xml version="+Charact(34)+"1.0"+Charact(34)+"?>")
sAZ09 is string = CR+"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[ ]0123456789'&*()_+=-,.!@#$%?>.<:{}|/\"+Charact(34)
Texto = Upper(Texto)
IF Texto <> "" AND sAZ09 <> Null THEN LOOP (nTotal) nPos01 += 1 IF nPos01 > 0 THEN Busca = Texto[[nPos01]] IF PositionOccurrence(sAZ09,Busca,firstRank,FromBeginning) = 0 AND sAZ09 <> Null AND Busca <> Null THEN Texto[[nPos01]] = "" END END END END
IF Texto <> Null Texto = Capitalize(Texto) END
RESULT(Texto) |
| |
| |
|