Consulta Tarifa pelo Site do Correio

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

frazato
Usuário Nível 3
Usuário Nível 3
Mensagens: 219
Registrado em: 08 Jul 2004 07:45

Consulta Tarifa pelo Site do Correio

Mensagem por frazato »

Tava dando uma olhada em alguns foruns de programação e vi esta rotina de consulta de tarifa no correio em outra linguagem e resolvi porta para xHarbour.

Compile usando o xharbour 99.70, sem libs graficas.


Frazato

Código: Selecionar todos

#DEFINE CRLF chr(13)+chr(10)
#INCLUDE "FILEIO.CH"


Function Main()
Local nDll , pApi
Local cCepOrigem := Space(9)
Local cCepDestino:= Space(9)
Local nPeso      := 0


      Clear
      Set Color to 'ww/BB+'
      Clear
      @ 00,00 say padc('Consulta de Tarifa Via correio ',80) Color('R+/NN+')
      @ 01,00 say padc('xHarbour 99.70',80) Color('GB+/NN+')

      @ 24,00 say padc('Joao Frazato ( sistema_jaf@hotmail.com)',80) Color('N/NN+')

      @ 10,10 say 'Nr. Cep Remetente :' Get cCepOrigem  Pict "@R 99.999-999"
      @ 12,10 say 'Nr. Cep Destino   :' Get cCepDestino Pict "@R 99.999-999"
      @ 14,10 say 'Peso              :' get nPeso Pict "@EZ 999.999"
      Read
      If LastKey()==27
         Return nil
      endif

      cUrl   := 'http://www.correios.com.br/encomendas/precos/calculo.cfm?cepOrigem='+;
                 Alltrim(cCepOrigem)+;
                 '&cepDestino='+;
                 Alltrim(cCepDestino)+;
                 '&peso='+StrZero(nPeso,11,3)

      cComando:= cUrl

       If VereficaNet( 'www.correios.com.br'  )==.f.
          Alert('Problema com o Site .....http://www.correios.com.br')
          Return Nil
       Endif

       Try
          oHttp := CreateObject("winhttp.winhttprequest.5.1")
          oHttp:Open("GET",cUrl,.f.)
          oHttp:Send()
          cResp1 := oHttp:ResponseText()
        Catch
          Return cResp
       End Try
       nPos := At('&Tarifa=',cResp1)
       nPos1 := At('&erro=',cResp1)

       cValor := Substr(cResp1,nPos+8,nPos1-1)
       Alert('Valor Encomenda :'+Transf(val(cValor),"@EZ 999,999.99") )
       *memoedit(cResp1)
       Centra(24,'')
Return ( Nil )


Function Centra(cLin,cMsg)
@ cLin,00 say Padc(cMsg,24)
Return nil

//----------------------------------------------
Function VereficaNet( cAddress )
LOCAL aHosts 
LOCAL cName
InetInit() 
IF cAddress == NIL 
   cAddress := "www.google.com.br" 
ENDIF 
aHosts := InetGetHosts( cAddress ) 
IF aHosts == NIL .or. len(aHosts)=0 
   InetCleanup() 
   RETURN .f. 
endif 
InetCleanup() 
RETURN (.T.)
Editado pela última vez por Pablo César em 03 Jun 2010 19:19, em um total de 1 vez.
Razão: Este tópico foi movido da seção [x]Harbour por estar apenas contribuindo com um código fonte e sem perguntas sobre a ferrramenta em si.
Responder