Os compiladores Protheus (Adv/PL, Adv/PL Asp, 4GL e 4GLP) suportam apenas os arquivos com código de página CP1252. Para que o TDS possa trabalhar corretamente com eles e garantir a sua integridade, faz-se necessários algumas configurações, cuidados e procedimentos de correção, quando necessário.
Configuração
Ao criar uma nova área de trabalho, devemos verificar se o código de página padrão esta correto. Acione o menu "Windows | Preferences
" e localize "General + Workspace
".
O bloco "Text file encoding", deve estar ajustado para "Cp1252
". Se não estiver, acione "Other" e digite "Cp1252
".
Nota: Em distribuições Linux, pode ser necessário a ativação.
Os novos projetos serão criados com esta configuração. Para projetos já existentes, verifique se esta correto acessando "Properties
" do menu de contexto do projeto.
Este deve utilizar a codificação herdada da área de trabalho.
.
Ao criar novos arquivos ou adicioná-los no projeto, estes serão configurados para serem tratados como sendo "Cp1252".
Cuidados
Durante o desenvolvimento, podemos ter a necessidade de utilizar caracteres especiais ou "não imprimíveis".
Nestes casos, recomenda-se o uso da função chr()
para obtê-lo.
Esta recomendação deve ser seguida para os caracteres com código de 0 a 31, de 128 a 191, o 215 e o 247.
Por exemplo:
cSeq := "ABC" + chr(153) // ABC™ será o valor da variavel
Alguns códigos que não são suportados pela página de código "Cp1252", que são: 129, 141, 143, 144 e 157.
Neste caso, você é obrigado a utilizar a função chr()
para representá-los.
Do contrário obterá um aviso de erro ao tentar salvar o arquivo.
Correção
Caso obtenha o aviso acima, acione "OK" se souber onde há um caractere inválido ou acione "Selecione o primeiro caractere", para que o TDS lhe posicione o editor para que faça a correção.
Antes da correção | Depois da correção |
---|---|
Repare que o caractere selecionado, foi trocado pela concatenação de chr(129)
.
Salve o arquivo e repita o procedimento até a salva ocorrer com sucesso.
Nota: Enquanto houver erro de codificação, o arquivo NÃO será salvo.