Página 1 de 1

seek sem case sensitive e operar datas

Enviado: 03 Ago 2004 20:56
por rogerio
Ola Pessoal,

Aqui estou eu de novo para pedir a ajuda de voces.

TEnho um bd que foi importado de um programa VB. Os clientes estao cadastrados com as iniciais maiusculas e acentos. Existe um jeito de fazer uma procura com o seek ignorando o tipo de letra e acentos ou terei que converter tudo para maiuscula ??? E os acentos ???

Alguem teria tmbem uma funcao que opere datas ?? TEnho somente a SOMAMES, mas preciso fazer um programinha para controlar ferias e as vezes tenho que operar com dias, meses e anos simultaneamente.

De novo um agradecimento antecipado e um grande abraco a todos.

Rogerio
rpc@ubanet.com.br

Enviado: 06 Ago 2004 18:05
por mvbrandao
Olá,
achei essa funcao e naum testei, use-a transformando o nome junto com dbseek().

Código: Selecionar todos

*****************************************************************************
*** NOME       : Tiracent.prg
*** UTILIZA€ÇO : Retorna palavras sem acentua‡Æo para busca ou indexa‡Æo
*** AUTOR      : Marcos Fernandes Penna
*** INÖCIO     : 12/11/2001
*** REVISÇO    :
***            :
*****************************************************************************

*** Exemplo: Index on Tiracento(Cidade) to arquivo
*** Seek Tiracento(Cidade)
assim Ca‡apava estar  na mesma ordem que Cacapava
ou SÆo Paulo ser  exibido na mesma ordem que Sao Paulo

 *************************
 Function Tiracento(nNome)
 *************************
 nNome:=StrTran(nNome," ","a")
 nNome:=StrTran(nNome,"Æ","a")
 nNome:=StrTran(nNome,"…","a")
 nNome:=StrTran(nNome,"ƒ","a")
 nNome:=StrTran(nNome,"µ","A")
 nNome:=StrTran(nNome,"Ç","A")
 nNome:=StrTran(nNome,"·","A")
 nNome:=StrTran(nNome,"¶","A")
 nNome:=StrTran(nNome,"‚","e")
 nNome:=StrTran(nNome,"Š","e")
 nNome:=StrTran(nNome,"ˆ","e")
 nNome:=StrTran(nNome,"

Enviado: 06 Ago 2004 22:42
por mvbrandao
Rogerio,

O codigo ficou conrrompido, entao postei para seu e-mail a funcao em arquivo prg.

um abraço

Enviado: 07 Ago 2004 19:39
por Maligno
O uso da função StrTran() desta forma deve criar uma boa sobrecarga. Pensando nisso, fiz uma função C que é bem mais rápida (pode ser usada numa chave de indexação) e depende apenas de duas tabelas, fonte e destino. Um exemplo de uso:

Código: Selecionar todos

function DelAcentos(cStr)
return   STRanslate(cStr,"áéíóúàèìòùãõâêôçÁÉÍÓÚÀÈÌÒÙÃÕÂÊÔÇ",;
                         "aeiouaeiouaoaeocAEIOUAEIOUAOAEOC" )
Se interessar, ela está disponível para download na minha página.

[]'s
Maligno
http://www.buzinello.com/prg