PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 24 → Windev - Code Example
Windev - Code Example
Débuté par adrianoboller, 15 juin 2014 15:14 - 2 réponses
Membre enregistré
2 969 messages
Popularité : +89 (91 votes)
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"/>&nbsp;<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"/>&nbsp;<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)
Membre enregistré
216 messages
Popularité : +1 (1 vote)
Posté le 16 juin 2014 - 10:14
Oui mais encore ?
Membre enregistré
2 969 messages
Popularité : +89 (91 votes)
Posté le 16 juin 2014 - 13:19
Ola Pierre,

It's referring to this project:



https://play.google.com/store/apps/details…

Att

Adriano