Página 1 de 1

converter minusculas em maisculas num dbf

Enviado: 13 Out 2010 10:50
por lapinhazzz
Boa Tarde amigos do Forum.

Será que alguém tem uma rotina para modificar uma base de dados inteira de letras minusculas para maiusculas.

Obrigado
lapinhazzz

converter minusculas em maiusculas num dbf

Enviado: 13 Out 2010 11:35
por Pablo César
Bom sabemos que a função UPPER converte em MAIUSCULAS caracteres desde CHR(097) até CHR(122) seriam a,b,c,d...//...w,x,y,z, mas não converte "ç" nem vogais acentuadas, isso você terá que prever se há casos assim e se eles estão no modo ANSI ou OEM. Fora isso, se você quer uma rotina que processe todos os campos do tipo caracter de um dbf, você vai precisar obter a estrutura do seu dbf e processar campo a campo (quando forem do tipo "C"aracter, varrendo registro a registro e subtituindo com UPPER e função para tramento de acentos. Eu pegaria o antigo DBase e eu mesmo faria um replace em cada campo que desejar caso não precisar tratar caracteres especiais ("ç" e vogais acentuadas).

Aqui tem uma função, não revisei como ela está atualmente mas já é algum caminho: https://pctoledo.org/forum/viewto ... 299#p38963

Re: converter minusculas em maisculas num dbf

Enviado: 14 Out 2010 01:23
por Vander
Lapinhazzz,
Eu uso a função abaixo para remover acentos e Ç. Voce pode fazer semelhante.

Código: Selecionar todos

variavel := CONVERT(UPPER(seu_campo))
..
..
Dá o replace
//----------------------------
Function CONVERT( cTexto )
   // remove branco
    cTexto := StrTran( cTexto, " ", " " )
   // acento agudo
   cTexto := StrTran( cTexto, "Á", "A" )
   cTexto := StrTran( cTexto, "É", "E" )
   cTexto := StrTran( cTexto, "Í", "I" )
   cTexto := StrTran( cTexto, "Ó", "O" )
   cTexto := StrTran( cTexto, "Ú", "U" )
   // acento circunflexo
   cTexto := StrTran( cTexto, "Â", "A" )
   cTexto := StrTran( cTexto, "Ê", "E" )
   cTexto := StrTran( cTexto, "Î", "I" )
   cTexto := StrTran( cTexto, "Ô", "O" )
   cTexto := StrTran( cTexto, "Û", "U" )
   // til
   cTexto := StrTran( cTexto, "Ã", "A" )
   cTexto := StrTran( cTexto, "Õ", "O" )
   // ce-cedilha
   cTexto := StrTran( cTexto, "Ç", "C" )
   // trema
   cTexto := StrTran( cTexto, "Ü", "U" )
   // crase
   cTexto := StrTran( cTexto, "À", "A" )
   cTexto := StrTran( cTexto, "È", "E" )
   cTexto := StrTran( cTexto, "Ì", "I" )
   cTexto := StrTran( cTexto, "Ò", "O" )
   cTexto := StrTran( cTexto, "Ù", "U" )
Return cTexto
Vander

Re: converter minusculas em maisculas num dbf

Enviado: 14 Out 2010 12:28
por gvc
Ao que me lembro o upper não converte os caracteres acentuados assim como o '@!' não faz o mesmo com as E/S.
Vc vai precisar colocar todos os caracteres especiais que aparecem na sua base na rotina de conversão.

Re: converter minusculas em maisculas num dbf

Enviado: 15 Out 2010 07:33
por lapinhazzz
vou experimentar.
Obrigado a todos
lapinhazzz