Começando com o Harbour acentuação
Enviado: 24 Jun 2020 00:08
Tenho algumas aplicações antigas de 1995 quando trabalhava com clipper converti para o harbour depois de fazer uma faxina tirando rotinas removendo algumas libs que não rodam em harbour tive sucesso meus aplicativos estão em harbour melhor hmg.3.1.5 com mingw com interface console ou terminal não sei como se diz tela texto no meio de tão excelentes programadores, recentemente resolvi melhorar colocando acentuação só estava usando:
Request HB_CODEPAGE_PTISO
Request HB_CODEPAGE_PT850
HB_CDPSELECT("PTISO")
Não estava dando certo parei de tentar implementar a acentuação mas lendo recentemente um livro postado aqui no fórum INTRODUÇÃO A PROGRAMAÇÃO USANDO A LINGUAGEM HARBOUR VLADEMIRO LANDIM JUNIOR, fica aqui já meus parabéns pela iniciativa muito bom.
Resolvi retomar a acentuação de minhas aplicações com UTF8EX que foi recomendado pelo livro por ser uma tabela de caracteres mais usado no mundo e mais completa.
REQUEST HB_CODEPAGE_UTF8EX // Disponibiliza o suporte a UTF8
hb_cdpSelect("UTF8EX") // Seleciona o suporte a UTF8
Como os editores de texto trabalham basicamente com ansi os caracteres de box ou moldura não aparecem nos editores mas se não convertermos o padrão ansi no notepad++ as telas de moldura não aparecem corretamente no editor mas o aplicativo depois de compilado aparece corretamente. Usava o recurso alt e o número conforme tabela abaixo:
Página de caracteres sem seleção de tabela (ASCII)
Caracteres de Caixa (Box Characters)
https://www.itlnet.net/programming/prog ... 2e087.html
Usando o padrão utf8ex esses caracteres são substituídos por outros, as tela ficando com outro caracteres, então resolvi fazer um pequeno programa para exibir a tabela utf8ex para ver aonde foram parar os caracteres ascii das tabela acima, já ouvi falar que a utf8ex tem milhares de caracteres de todas língua mundiais. Veja um programa com 10000 caracteres utf8ex:
Percebi que dá para montar minhas antigas telas mesmo usando o utf8ex usando por exemplo:
Mas dessa forma não funcionou, sai outros caracteres só deu certo assim:
Alguém sabe porque o CHR não funcionou da forma anterior? Estava pensando em montar uma tabela tipo a ASCII.
Request HB_CODEPAGE_PTISO
Request HB_CODEPAGE_PT850
HB_CDPSELECT("PTISO")
Não estava dando certo parei de tentar implementar a acentuação mas lendo recentemente um livro postado aqui no fórum INTRODUÇÃO A PROGRAMAÇÃO USANDO A LINGUAGEM HARBOUR VLADEMIRO LANDIM JUNIOR, fica aqui já meus parabéns pela iniciativa muito bom.
Resolvi retomar a acentuação de minhas aplicações com UTF8EX que foi recomendado pelo livro por ser uma tabela de caracteres mais usado no mundo e mais completa.
REQUEST HB_CODEPAGE_UTF8EX // Disponibiliza o suporte a UTF8
hb_cdpSelect("UTF8EX") // Seleciona o suporte a UTF8
Como os editores de texto trabalham basicamente com ansi os caracteres de box ou moldura não aparecem nos editores mas se não convertermos o padrão ansi no notepad++ as telas de moldura não aparecem corretamente no editor mas o aplicativo depois de compilado aparece corretamente. Usava o recurso alt e o número conforme tabela abaixo:
Página de caracteres sem seleção de tabela (ASCII)
Caracteres de Caixa (Box Characters)
https://www.itlnet.net/programming/prog ... 2e087.html
Usando o padrão utf8ex esses caracteres são substituídos por outros, as tela ficando com outro caracteres, então resolvi fazer um pequeno programa para exibir a tabela utf8ex para ver aonde foram parar os caracteres ascii das tabela acima, já ouvi falar que a utf8ex tem milhares de caracteres de todas língua mundiais. Veja um programa com 10000 caracteres utf8ex:
Código: Selecionar todos
Procedure Main()
REQUEST HB_CODEPAGE_UTF8EX // Disponibiliza o suporte a UTF8ex
hb_cdpSelect("UTF8EX") // Seleciona o suporte a UTF8
Clear
NumCar=1
NumCol=1
Do While NumCar<10000
Do While NumCol<10
?? Str(NumCar,4)+"-"+CHR(NumCar)+" "
NumCar:=NumCar+1
NumCol:=NumCol+1
EndDo
?
NumCol=1
EndDo
Return Percebi que dá para montar minhas antigas telas mesmo usando o utf8ex usando por exemplo:
Código: Selecionar todos
?? CHR(9556)+CHR(9552)+CHR(9552)+CHR(9559) // ?? CHR(201)+CHR(205)+CHR(205)+CHR(187)Mas dessa forma não funcionou, sai outros caracteres só deu certo assim:
Código: Selecionar todos
NumCar=9556 // = CHR(201)
?? CHR(NumCar)
NumCar=9552 // = CHR(205)
?? CHR(NumCar)
NumCar=9552 // = CHR(205)
?? CHR(NumCar)
NumCar=9559 // = CHR(187)
Alguém sabe porque o CHR não funcionou da forma anterior? Estava pensando em montar uma tabela tipo a ASCII.
Código: Selecionar todos
9556 9552 9559
+----------------+