Ordem de nomes acentuados
Moderador: Moderadores
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Ordem de nomes acentuados
Bom dia meus colegas.
Estou com problemas na Ordenação/Indexação de nomes acentuados.
Mesmo usando:
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
HB_LANGSELECT( 'PT' )
HB_SETCODEPAGE( "PT850" )
Vejamos como fica a ordem:
Edgar
Edine
Edinho
Eduardo
Edward
Everaldo
Ezequias
Ezequiel
Édine -----<<<<<< fora de ordem.
Temos solução para isto ?
Estou usando a versão 1.1.0 do xHarbour, atualizada e recompilada ontem, dia 16-02-2008, via CVS.
Estou com problemas na Ordenação/Indexação de nomes acentuados.
Mesmo usando:
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
HB_LANGSELECT( 'PT' )
HB_SETCODEPAGE( "PT850" )
Vejamos como fica a ordem:
Edgar
Edine
Edinho
Eduardo
Edward
Everaldo
Ezequias
Ezequiel
Édine -----<<<<<< fora de ordem.
Temos solução para isto ?
Estou usando a versão 1.1.0 do xHarbour, atualizada e recompilada ontem, dia 16-02-2008, via CVS.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
- Luciano Bonfim
- Usuário Nível 3

- Mensagens: 414
- Registrado em: 23 Ago 2007 09:34
- Localização: Rio de Janeiro / São Paulo
- Contato:
sobre acentuaçäo eu até hoje näo consigo entender direito, nas telas do meu sistema gráfico (hwgui e gtwvw) aparecem normalmente.
quando copio e colo textos acentuados do windows para meu sistema em xharbour 1.0.0 (as tela de cadastro ainda säo modo console dentro de uma janela em GTWVW) os acentos aparecem errados.
uso assim:
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
HB_LANGSELECT( 'PT' )
HB_SETCODEPAGE( "PT850" )
Realmente näo entendo se alguem puder me ajudar eu agradeceria
Muito Obrigado
quando copio e colo textos acentuados do windows para meu sistema em xharbour 1.0.0 (as tela de cadastro ainda säo modo console dentro de uma janela em GTWVW) os acentos aparecem errados.
uso assim:
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
HB_LANGSELECT( 'PT' )
HB_SETCODEPAGE( "PT850" )
Realmente näo entendo se alguem puder me ajudar eu agradeceria
Muito Obrigado
Muito Obrigado,
Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Você pode usar a função no campo que você deseja retirar os acentos:
Código: Selecionar todos
EX: INDEX ON RetiraAcentos(Campo) TAG TESTE TO INDICE
FUNCTION MAIN
CLS
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
HB_SETCODEPAGE( "PT850" )
? RetiraAcentos("áãàâäéèëíìïóõòöúùüçÇ")
RETURN NIL
FUNCTION RETIRAACENTOS (cPalavra)
LOCAL i:=0,;
cAcento:= '',;
cRetiraAcento:= ''
FOR I = 1 To Len(cPalavra)
cAcento:=SUBST(cPalavra, I, 1)
DO CASE
CASE cAcento $ "ÁÃÂÀÄ"
cAcento = "A"
CASE cAcento $ "►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Caro Asimoes. Obrigado pela dica.
Indexação:
Eu já havia pensado nesta solução, porém eu pensei que em uma solução mais "canônica", como diria o nosso mestre Maligno.
Localização:
No caso da localização de nomes (registros) não estou encontrando dificuldades.
Indexação:
Eu já havia pensado nesta solução, porém eu pensei que em uma solução mais "canônica", como diria o nosso mestre Maligno.
Localização:
No caso da localização de nomes (registros) não estou encontrando dificuldades.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Eu tinha um preconceito de que este procedimento iria reduzir muito a velocidade de indexação.
Entretanto, fui agradavelmente surpreeendido, pois a olho nu nem se percebe qualquer diferença. Não cronometrei os resultados.
Asimoes, os meus agradecimentos.
Entretanto, fui agradavelmente surpreeendido, pois a olho nu nem se percebe qualquer diferença. Não cronometrei os resultados.
Asimoes, os meus agradecimentos.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Hasse,
Antes de postar eu tinha testado a indexação em uma tabela de +- 300 mil registros e foi imperceptível o tempo.
Qualquer problema prende o grito, como diria o nosso amigo SYGECOM (Leonardo)
[]´s :)Pos
Antes de postar eu tinha testado a indexação em uma tabela de +- 300 mil registros e foi imperceptível o tempo.
Qualquer problema prende o grito, como diria o nosso amigo SYGECOM (Leonardo)
[]´s :)Pos
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
-
Hasse
- Usuário Nível 4

- Mensagens: 820
- Registrado em: 19 Out 2004 10:30
- Localização: Jaraguá do Sul - SC
Taí Manos, a solução "canônica" como diria o Maligno.
Funcionou perfeito.
Valeu.
Funcionou perfeito.
Valeu.
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Converter ANSI pra OEM apenas troca a acentuação de um código pra outro. Se isso já resolve o problema, tanto melhor. Mas remover os acentos é também uma técnica válida, que talvez seja até mais rápida.
Curiosidade: o termo "canônico" é amplamente utilizado na comunidade de programadores no mundo todo, e diz respeito a algo que é aceito pela maioria como o mais certo ou mais apropriado.
Curiosidade: o termo "canônico" é amplamente utilizado na comunidade de programadores no mundo todo, e diz respeito a algo que é aceito pela maioria como o mais certo ou mais apropriado.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!


