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 maisculas num dbf
Moderador: Moderadores
-
lapinhazzz
- Usuário Nível 3

- Mensagens: 130
- Registrado em: 20 Abr 2009 10:52
- Localização: LAGOA
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
converter minusculas em maiusculas num dbf
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
Aqui tem uma função, não revisei como ela está atualmente mas já é algum caminho: https://pctoledo.org/forum/viewto ... 299#p38963
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- Vander
- Usuário Nível 3

- Mensagens: 214
- Registrado em: 23 Jul 2004 01:43
- Localização: João Monlevade - MG
Re: converter minusculas em maisculas num dbf
Lapinhazzz,
Eu uso a função abaixo para remover acentos e Ç. Voce pode fazer semelhante.
Vander
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
HbMake v1.17
xHarbour build 0.99.70 Intl. (SimpLex)
Borland C++ 5.5.1
fivewin 6.12 (FREE)
Workshop 4.5
MEdit
xHarbour build 0.99.70 Intl. (SimpLex)
Borland C++ 5.5.1
fivewin 6.12 (FREE)
Workshop 4.5
MEdit
Re: converter minusculas em maisculas num dbf
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.
Vc vai precisar colocar todos os caracteres especiais que aparecem na sua base na rotina de conversão.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
{POG - Programação Orientada a Gambiarra}
-
lapinhazzz
- Usuário Nível 3

- Mensagens: 130
- Registrado em: 20 Abr 2009 10:52
- Localização: LAGOA
