Página 1 de 2

Consulta de CEP pelo Clipper

Enviado: 17 Ago 2007 20:36
por Maligno
Um colega do newsGroup da U-BR conseguiu um script que aciona os Correios pra pesquisar por um CEP. Eu alterei o script pra conseguir obter as strings formatadas, montei um demo usando a biblioteca WAPI e subi o ZIP (fonte+EXE+script) para a área "pub" do meu site, diretório "\clipper\demos". A sintaxe é CEP <número>, sendo o número formatado ou não. Como fiz meio rápido, a crítica não está completa. Assim, não inventem de colocar letra no meio dos números que o programa solta uma página de erro no vídeo. Só números e hífen. :)

OBS: O programa, já que é de teste, utiliza um script já carregado num diretório temporário do meu site. Por enquanto vou deixar ele lá. Mas é claro que, se alguém for usar, deve subí-lo para seu próprio site.

Enviado: 17 Ago 2007 21:07
por sygecom
Boa, Vou Testar !!.....parabens pela Iniciativa e pelo trabalho !!!...

Enviado: 17 Ago 2007 21:26
por Maligno
Esqueci de dizer: caso alguém queira formatar a string de retorno de forma diferente, o script terá de ser alterado, claro. Mas, mesmo não conhecendo muito de PHP, é coisa simples de fazer. Basta alterar os delimitadores que fazem parte da string devolvida pela função echo(), que está na última linha do script.

Enviado: 17 Ago 2007 21:41
por Eolo
Parabéns tb pela iniciativa!

Enviado: 17 Ago 2007 22:28
por pringles
Grande Maligno!!! Bom trabalho!!!
Vou dar uma olhada no link.

Enviado: 18 Ago 2007 00:07
por Stanis Luksys
Pois é Maligno,

O fato de poder "incorporar" o uso de php pelo Clipper, traz um novo horizonte para os programas.

Claro que ainda indico a migração, em que se obtem os recursos de modo nativo, mas para quem precisa mesmo agir rápido, fica aí uma alternativa válida.

As possibilidades de integração com ambiente web são infinitas através do uso do PHP, e pelo que vi do funcionamento, poderia ser ASP ou qualquer linguagem server-side. Evidente que existe a dificuldade de se ter um conhecimento da nova linguagem, mesmo que somente o básico para operações simples. Para quem sabe um pouquinho de C, o php é simples de pegar... Mas é bom, conhecimento nunca é demais, e mesmo que fosse no xharbour por exemplo, também haveria a necessidade de aprendizado, só que um pouco mais próximo da costumeira sintaxe xBase.

Maligno, agora eu to precisando saber (e me desculpem que este é um forum de Clipper) se existe componente que faça isso no Delphi, ou qual função da API devo chamar para conseguir buscar o retorno do servidor, nos mesmos moldes de DLoadFile(). É que to com um projetinho Delphi aqui que isso me será de grande valia. Na verdade eu vou só fazer os PHPs, mas quero passar pro programador Delphi já a forma de se pegar os retornos.

Fora isso, vou te parabenizar também pela função de utilidade... Agora é como eu disse né, aplicação não vai faltar para os PHPs da vida... Precisou ver algo na WEB, é só chamar a WAPI :)) Mas como tudo na vida, sugiro que não abusem... hehe

Falou!!!

Enviado: 18 Ago 2007 02:00
por Maligno
Stanis Luksys escreveu:O fato de poder "incorporar" o uso de php pelo Clipper, traz um novo horizonte para os programas.
Pois é. Um recurso a mais para incorporar aos programas. Eu mesmo vou dispensar as tabelas de CEP que tenho e passar a usar apenas esse recurso. Além daquele outro para ler data/hora do servidor. É o PHP com a WAPI fazendo uma ponte entre o Clipper e a Internet. :)
As possibilidades de integração com ambiente web são infinitas através do uso do PHP, e pelo que vi do funcionamento, poderia ser ASP ou qualquer linguagem server-side.
Exatamente. Qualquer linguagem de script server-side. Acho que o PHP é mais fácil. Pelo menos pra mim, que já programo em C. Há muitas semelhanças. Isso ajuda muito.
se existe componente que faça isso no Delphi, ou qual função da API devo chamar para conseguir buscar o retorno do servidor, nos mesmos moldes de DLoadFile().
O utilitário WAPI utiliza uma parte da API chamada de WinInet; um esquema diferente do famoso utilitário URL2FILE, que usa um moniker (via DLL) do Internet Explorer. Mas a WinInet é mais flexível e robusta. Por ela, inclusive, vou também fazer as funções de FTP.

Para o Delphi é mais simples. Uma das melhores, se não a melhor suite de componentes é a Indy. Gratuita, ela possui componentes para acesso a mais de 20 (ou 30 - não lembro) protocolos diferentes: HTTP, FTP, GOPHER, ECHO, TIME, POP3, SMTP, SSL, etc. Isso do lado cliente. Ela também possui componentes para server. Eu só usei POP3 até hoje, mas o HTTP-client dela poderia ajudar bem mais nesse trabalho..
É que to com um projetinho Delphi aqui que isso me será de grande valia. Na verdade eu vou só fazer os PHPs, mas quero passar pro programador Delphi já a forma de se pegar os retornos.
Que eu saiba, os Correios tem um esquema de pesquisa de CEPs através de WebServices, também disponível no Delphi. Talvez fosse um caminho melhor, já que dispensaria qualquer script intermediário. Acho que compensa você pesquisar sobre isso no site deles.
Fora isso, vou te parabenizar também pela função de utilidade... Agora é como eu disse né, aplicação não vai faltar para os PHPs da vida... Precisou ver algo na WEB, é só chamar a WAPI :)) Mas como tudo na vida, sugiro que não abusem... hehe
Obrigado. Mas as limitações do Clipper/DOS têm lá suas vantagens: se não fossem elas, não teria tido a oportunidade de criar esses workarounds todos, o que aliás, me proporciona um grande prazer. :)

Enviado: 18 Ago 2007 03:23
por Maligno
Em tempo: caso alguém não tenha visto, o ZIP com o demo que captura a data e hora do servidor está no mesmo diretório "clipper/libs". Só fiz uma pequena alteração: aumentei o timeout da conexão para 10 segundos, que acho que deve ser suficiente para a maioria, mesmo para quem tenha conexão discada. Só pra esclarecer: esse timeout é o tempo pelo qual o WAPI vai aguentar ficar sem tráfego na rede, antes de retornar com erro. Às vezes, mesmo em banda larga, aparecem gargalos na rede que dão uma "travada" no tráfego.

Enviado: 18 Ago 2007 04:25
por Maligno
Stanis escreveu:componente que faça isso no Delphi
Apenas como um comentário, pois me lembrei agora de um detalhe: tenho um ZIP com uns programas Delphi (com exemplo) para usar o WebService dos Correios. É que o grupo de Delphi da u-BR, do qual eu participo como "bisbilhoteiro" mantém uma conta no GMail onde todos mandam componentes, programas, etc. Eu próprio já acumulei uns 2,5GB de mensagens. E numa das primeiras tinha esse ZIP. Até tinha me esquecido dele. Não sei dizer, claro, se mudou alguma coisa nos Correios que tenha que adaptar nesses fontes. Mas se quiser, subo pro meu site ou mando pra você por eMail.

Enviado: 18 Ago 2007 15:19
por Pablo César
Parabéns Maligno, eu gostei desse novo recurso do WAPI. Na verdade, quando surgiu a função URL2FILE que capturava a página até imaginei que o conteúdo poderia ser tratado e processado em Clipper.

Este novo recurso abre um leque de opções o que também incentivaria algum dia a poder consultar a situação de um CPF, por exemplo. Hoje temos o seguinte link para consultar a situação cadastral de cada cidadão pelo site da Receita Federal:

http://www.receita.fazenda.gov.br/Aplic ... ublica.asp

Mas o que atrapalha no momento é esse KEY projetada em tela (como esse caracteres que temos que digitar para conseguir o resultado da pesquisa). Quem algum dia...

Obrigado pela sua contribuição ficou incrível !.

Enviado: 18 Ago 2007 17:44
por Maligno
Parabéns Maligno, eu gostei desse novo recurso do WAPI. Na verdade, quando surgiu a função URL2FILE que capturava a página até imaginei que o conteúdo poderia ser tratado e processado em Clipper.
Só dei um pontapé inicial para poder haver alguma interação com os Correios. O programa demo, como se vê, apenas pesquisa o CEP. Mas, dependendo das necessidades de alguém, poderia ser necessário pesquisar um endereço, por exemplo. Nesses casos, cabe ainda algum esforço para criar novas aplicações. Eu só fiz esse exemplo por quê o colega que citei, do grupo da uBr apareceu com esse script.
Mas o que atrapalha no momento é esse KEY projetada em tela
Aí a coisa fica meio complicada. Realmente não tenho idéia de como contornar isso. Mas quem sabe aparece alguém que pode ajudar. :)

Enviado: 18 Ago 2007 19:40
por Pablo César
Maligno escreveu:
Mas o que atrapalha no momento é esse KEY projetada em tela
Aí a coisa fica meio complicada. Realmente não tenho idéia de como contornar isso. Mas quem sabe aparece alguém que pode ajudar.
Ehhh, acho bem dificl isso acontecer, pois essas "imagens" com o a chave variam muito de tamanho, formato, cores. Ao menos que a RF libere o acesso mesmo, pois essa medida é justamente para evitar essa transação. Mas quem sabe, alguém descobra algo....

Enviado: 18 Ago 2007 19:57
por Maligno
Aliás, uma curiosidade: como é o esquema do CNPJ? É a mesma dificuldade? Não pequisei nada a respeito, muito embora devesse, já que é uma infração às normas do ICMS emitir NF para empresa ilegal. O cliente deveria fazer essa verificação. Mas ninguém faz. :)

Enviado: 18 Ago 2007 22:20
por Maligno
Acabei de ver. A secretaria da receita do Paraná também colocou esse esquema de confirmação por assinatura. Não tem jeito então. O cliente terá de fazer a consulta no braço mesmo. :(

Só espero que os Correios não inventem de colocar esse artifício no site deles também.

Enviado: 19 Ago 2007 09:26
por Stanis Luksys
Maligno,

Valeu pelas dicas sobre Delphi, vou pesquisar. No entanto não é para fins de consulta de CEP que preciso, e realmente vou ter sim que criar um PHP intermediário para o meu objetivo. Por isso perguntei, pois sei que no Delphi não haveria esta necessidade de interagir com PHP, visto que possui excelentes componentes para plataforma WEB. Aliás já existe até o Delphi for PHP, você já viu?

Mas então, valeu pelas infos.