Clipper On Line • Ver Tópico - Acentuação na versão 3.14 da HMG
Mudar para estilo Clássico
Projeto MiniGui - Biblioteca visual para Harbour/xHarbour
Postar uma resposta

Acentuação na versão 3.14 da HMG

25 Jul 2013 18:49

Amigos, esta é minha primeira participação. Desculpe-me por algum erro de procedimento.

Estudei o novo padrão UNICODE e fiz testes. Percebi que esse padrão
utiliza 2 bytes para os caracteres acentuados. Isso nos PRG's e também nos
arquivos DBF (nestes, consome, em consequência, mais 1 byte, prejudicando a
estrutura do banco de dados existente). Parece-me que é possível continuar
utilizando o padrão ANSI com a versão 3.1.4, mantendo assim a forma de acentuação anterior das telas e dos DBF’s (com 1 byte somente), bastando para isso recompilar a biblioteca HMG com o padrão ANSI. Isso está correto ?

Caso positivo, com a biblioteca recompilada, devo continuar utilizando os recursos abaixo:

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
HB_LANGSELECT("PT")
HB_CDPSELECT("PT850")
?

Grato,

Waldyr Skuya

ACENTUAÇÃO NA VERSÃO 3.14 DA HMG

26 Jul 2013 06:23

Olá Waldyr,

Seja Bem Vindo ao Fórum.

A HMG IDE 3.1.4 tem duas IDEs. Na pasta IDE está a IDE no padrão UNICODE, e na pasta IDE_ANSI está a IDE no padrão ANSI. Para continuar usando o padrão ANSI, basta colocar um ícone em sua área de trabalho para ela, e trabalhar normalmente com seus fontes e acentuação ANSI.

Note também, que a IDE no padrão UNICODE tem essa identificação no canto esquerdo do titulo da janela,e no padrão ANSI é normal:
Padrão UNICODE.jpg
Padrão UNICODE.jpg (11.02 KiB) Visualizado 1762 vezes

Padrão ANSI.jpg
Padrão ANSI.jpg (8.17 KiB) Visualizado 1762 vezes

ACENTUAÇÃO NA VERSÃO 3.14 DA HMG

26 Jul 2013 10:02

WALDYR SKUYA escreveu:Caso positivo, com a biblioteca recompilada, devo continuar utilizando os recursos abaixo:

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
HB_LANGSELECT("PT")
HB_CDPSELECT("PT850")
?


Estes comandos são de configuração do Harbour. Logo em seguida, para configurar a MiniGui, use:

SET LANGUAGE TO PORTUGUESE

Abraços,

Acentuação na versão 3.14 da HMG

26 Jul 2013 17:42

Boa tarde, amigos.

Estou ainda na versão 3.0.46 por receio de dar problemas nos meus programas nesse padrão unicode.

Usando a versão ANSI, posso trabalhar normalmente, sem me preocupar com algum tipo de ajuste?

Desde já, obrigado!

Sds,
Mario.

Acentuação na versão 3.14 da HMG

26 Jul 2013 19:48

Olá Mário,
Mario Mesquita escreveu:Usando a versão ANSI, posso trabalhar normalmente, sem me preocupar com algum tipo de ajuste?
Sim. Normalmente.

Opinião:
Usar a codificação Unicode UTF-8, não tem sentido se seu aplicativo será comercializado na língua pátria. Usar a codificação Unicode, se aplica apenas a aplicativos que serão usados em Vários Idiomas.

Curiosidade:
Existe a Codificação UTF-16, mas confesso que nem sei pra que serve, e muito menos como usá-la. Parece que é algo que ainda está no Prelo.

Acentuação na versão 3.14 da HMG

26 Jul 2013 22:24

Toledo escreveu:
WALDYR SKUYA escreveu:Caso positivo, com a biblioteca recompilada, devo continuar utilizando os recursos abaixo:

REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
HB_LANGSELECT("PT")
HB_CDPSELECT("PT850")
?


Estes comandos são de configuração do Harbour. Logo em seguida, para configurar a MiniGui, use:

SET LANGUAGE TO PORTUGUESE

Abraços,


En HMG usar :

SET LANGUAGE TO PORTUGUESE --> esto hace que tanto los mensajes de Harbour como de HMG aparezcan en Portugués, con HB_LANGSELECT("PT") solo los mensajes de Harbour se muestran en portugués y los de HMG en ingles, tendrías que llamar a la función InitMessages("PT") para que los mensajes de HMG también se mostrasen en portugués.

SET CODEPAGE TO PORTUGUESE --> esto estable el código de pagina al portugués, o sea habilita el uso de los acentos y demás caracteres del portugués, esto es lo mismo que utilizar HB_SetCodePage("PT850")

Saludos,
Claudio.

Acentuação na versão 3.14 da HMG

26 Jul 2013 22:43

Se observarmos o arquivo \include\i_lang.ch vamos notar que o comando SET LANGUAGE TO PORTUGUESE já chama os seguintes comandos:

REQUEST HB_LANG_PT
HB_LANGSELECT( "PT" )
InitMessages("PT")

Abraços,

Acentuação na versão 3.14 da HMG

26 Jul 2013 23:27

Jairo Maia escreveu:Curiosidade:
Existe a Codificação UTF-16, mas confesso que nem sei pra que serve, e muito menos como usá-la. Parece que é algo que ainda está no Prelo.

Hola Jairo.
Existen diferentes maneras de representar caracteres Unicode (UTF-8, UTF-16, UTF-32, etc.)
En UTF-8 un caracter ASCII simple ocupa como minimo 1 byte (8 bits) mientas que en UTF-16 ocupa como minimo 2 bytes (16 bits), esta ultima es la codificación de Windows en Unicode.
Como todos los sistemas aceptan representaciones multi-byte de caracteres, los bits más significativos del primer byte de una secuencia multi-byte determinan la longitud de la secuencia, la cantidad de bits encendidos determina la longitud, por ej. en UTF-8, si el primer bit es 0 es uno de los 128 caracteres de la tabla ASCII americana, si son 110, 1110 o 11110 significan que el carácter esta formado por 2 , 3 o 4 bytes (porque hay 2, 3 o 4 bits encendidos en el primer byte) y estos 2,3, o 4 bytes siempre comienzan con 10 de manera que indican que pertenecen a una secuencia multi-byte.
En UTF-16 es similar solo que necesitan menos bytes para representar un código de cararcter grande, pero se desperdician bytes para representar los caracteres simples como los de la tabla ASCII americana, porque requieren solo 7 bits y el formato emplea códigos con un mínimo de 16 bits.
Espero haber sido de alguna ayuda.
Saludos,
Claudio.

Acentuação na versão 3.14 da HMG

27 Jul 2013 00:28

Agradeço a todos a atenção.

Apenas para relatar a experiência que fiz:

Eu recompilei a biblioteca do HMG utilizando a opção 1-ANSI do "Buildlib" da versão 3.14.
Continuei utilizando o comando SET LANGUAGE TO PORTUGUESE e os outros comandos já citados.
Continuei utilizando o editor ConTEXT, configurado com arquivo DOS em "Opções-Preferências-Editor".

Qual o resultado:

As telas, mensagens e os registros em arquivos ficaram iguais ao que era antes. Ou seja, utilizou apenas 1 byte de espaço. Nos arquivos isso é importante porque o tamanho dos campos não precisa ser aumentado em alguns caracteres, mantendo o consumo de 1 byte para os caracteres acentuados (o novo padrão consume 2 bytes para os caracteres acentuados). Posso estar errado nisso ?

Não sei se estou certo no que disse e se, no dia a dia, poderão ocorrer problemas.

Abraços,

Waldyr Skuya

Acentuação na versão 3.14 da HMG

27 Jul 2013 08:08

Olá Waldyr,

Você decidiu e está agora trabalhando com HMG ANSI, e pelo que você disse configurou seu editor para DOS, então seus arquivos estão sendo escritos em OEM, o que também não tem nenhum problema, pois a página de código em português entenderá sem problemas a acentuação.

WALDYR SKUYA escreveu:Nos arquivos isso é importante porque o tamanho dos campos não precisa ser aumentado em alguns caracteres
Mesmo trabalhando em Unicode e usando acentuação, os campos dos arquivos não precisam ser alterados. Eles continuarão trabalhando da mesma forma.

WALDYR SKUYA escreveu:o novo padrão consume 2 bytes para os caracteres acentuados
Sim. Aliás, veja a explicação do Dr Soto um pouco acima na mensagem de 26 Jul 2013 23:27. O Dr Soto é um dos desenvolvedores da HMG e é o responsável pela implantação da codificação Unicode UTF-8 na HMG IDE, bem como as funções de string específicas para o padrão Unicode.

Acentuação na versão 3.14 da HMG

27 Jul 2013 08:17

Nota à Moderação: Prezados Srs, embora o título do tópico diz a respeito de acentuação, podemos ver que desde o início o assunto inalienável ao tópico é a formatação Unicode. Assim, vou dar continuidade aqui dirigindo uma pergunta ao colega Claudio Soto a respeito de Unicode.

Olá Dr Soto,

Claudio Soto escreveu:En UTF-16 es similar solo que necesitan menos bytes para representar un código de cararcter grande, pero se desperdician bytes para representar los caracteres simples como los de la tabla ASCII americana, porque requieren solo 7 bits y el formato emplea códigos con un mínimo de 16 bits.
Obrigado pelos esclarecimentos. Porém, uma coisa me deixou confuso, a saber: Se em UTF-16 economizo bytes para representar um código grande, e desperdiço byte para representar por exemplo a letra A, em que situação seria vantagem o uso do UTF-16? Isso me deixou bastante confuso, uma vez que penso que os caractres ASCII são predominantes.

Desde já agradeço a atenção.
Editado pela última vez por Toledo em 27 Jul 2013 08:44, num total de 1 vezes
Razão: Mensagem editada para corrigir o autor da citação (quote) que estava Toledo e o correto é Claudio Soto.

Acentuação na versão 3.14 da HMG

27 Jul 2013 12:13

Jairo Maia escreveu:Claudio Soto escreveu:
En UTF-16 es similar solo que necesitan menos bytes para representar un código de cararcter grande, pero se desperdician bytes para representar los caracteres simples como los de la tabla ASCII americana, porque requieren solo 7 bits y el formato emplea códigos con un mínimo de 16 bits.
Obrigado pelos esclarecimentos. Porém, uma coisa me deixou confuso, a saber: Se em UTF-16 economizo bytes para representar um código grande, e desperdiço byte para representar por exemplo a letra A, em que situação seria vantagem o uso do UTF-16? Isso me deixou bastante confuso, uma vez que penso que os caractres ASCII são predominantes.

Hola Jairo.
Si tienes razón, para la mayoría de las cadenas de texto la UTF-8 es generalmente mas económica en el numero de bytes que la UTF-16, al menos para nosotros los occidentales. Tal es así que las páginas web y lo correos electrónicos emplean generalmente el sistema UTF-8.

Probablemente (esto es solo una suposición mía) Windows adoptó el sistema UTF-16 pensando en la globalización, al ser de 16 bits se pueden codificar muchos caracteres en una sola unidad (2 bytes) y por lo tanto requiere menos análisis de bytes adyacentes para determinar el código de un determinado carácter, aunque el precio en bytes sea mas alto para nosotros los occidentales. La inmensa mayoría de los caracteres Unicode se pueden codificar en 16 bits (incluyendo el chino y el japones), por lo tanto sería mas fácil y rápido en términos de CPU analizar y procesar un solo WORD (2 bytes) y eventualmente un segundo WORD adicional, que escanear el código byte a byte, esta perdida de eficiencia podría ser fatal para la velocidad del SO.

Saludos,
Claudio.

Acentuação na versão 3.14 da HMG

27 Jul 2013 13:20

Claudio Soto escreveu:por lo tanto sería mas fácil y rápido en términos de CPU analizar y procesar un solo WORD (2 bytes) y eventualmente un segundo WORD adicional, que escanear el código byte a byte
Muito Legal... Muito Obrigado novamente pelos esclarecimentos.

Nota de Moderação:
Toledo: Mensagem editada para corrigir o autor da citação (quote) que estava Toledo e o correto é Claudio Soto.
Peço Desculpas. Apenas fiz como sempre faço: posicionei o cursor na área de edição, selecionei o texto na mensagem do Claudio Soto e cliquei no botão Citar. Não editei a citação, e não vi o problema.

Acentuação na versão 3.14 da HMG

27 Jul 2013 14:28

Jairo Maia escreveu:Peço Desculpas. Apenas fiz como sempre faço: posicionei o cursor na área de edição, selecionei o texto na mensagem do Claudio Soto e cliquei no botão Citar. Não editei a citação, e não vi o problema.

Jairo, não precisa pedir desculpas não, provavelmente você deve ter selecionado o texto na mensagem do Dr Claudio Soto e clicou no botão Citar da minha mensagem.

Abraços,

Acentuação na versão 3.14 da HMG

28 Jul 2013 11:56

Bom dia, amigos.

Obrigado pela dica. Vou baixar a 3.14, parece muito boa.

Sds e bom domingo,
Mario.
Postar uma resposta