As melhores práticas em TI por vezes mudam, e a gestão de certos caracteres invisíveis em ficheiros de texto é um exemplo. Os caracteres de fim de linha (EOL) têm evoluído, especialmente para efeitos de integração de sistemas de controlo de versões. Da mesma forma, a Marca de Ordem de Byte (BOM) nos ficheiros de texto Unicode é cada vez menos utilizada.
Com 4D v19 R2, 4D evoluiu suavemente para seguir estas melhores práticas, dando-lhe mais flexibilidade ao longo do caminho.
LEMBRE-SE
Fim da linha (EOL)
Sabe que as linhas nos ficheiros de texto são separadas com caracteres de Fim de Linha. No Windows, é uma combinação de dois caracteres:
- Carriage Return (#13, chamado CR) e,
- Line Feed (#10, nomeado LF).
Em macOS, era a personagem CR herdada.
Sistemas de controlo de versões como Git não gerem CR como carácter EOL, pelo que é necessário utilizar LF em vez disso.
Marca de Ordem de Byte (BOM)
Sabe também que um ficheiro de texto Unicode pode conter bytes de cabeçalho invisíveis, chamados Byte Order Mark, que definem o conjunto de caracteres utilizados.
4D seguiu as melhores práticas actuais ao introduzir Unicode, ao escrever ficheiros de texto com uma lista técnica por defeito. Mas como o UTF-8 quase se tornou o formato de ficheiro de texto padrão, a lista técnica é cada vez menos utilizada.
NOVA convenção 4D SOBRE ARQUIVOS DE TEXTOS
A partir de agora, seguindo as tendências, 4D escreve ficheiros de texto sem uma lista técnica. E em macOS, 4D usa LF como personagem EOL. Isto é completamente automático para todos os ficheiros escritos por 4D, tais como 4DSettings, 4dm, 4DForm, e assim por diante.
Ao abrir ficheiros numa versão 4D anterior, não encontrará qualquer problema, mesmo que tenham sido escritos em 4D v19 R2, porque estas versões anteriores eram capazes de abrir ficheiros sem BOM e usando LF como caracter EOL.
Definições de compatibilidade
Quer seguir o comportamento do 4D? Estão disponíveis novas definições de compatibilidade que permitem TEXT TO DOCUMENT e File.setText() para gerar ficheiros sem lista técnica e utilizar LF como carácter EOL em macOS quando faltam os parâmetros opcionais “charSet” e “breakMode”. Isto é totalmente automático; não precisa de reescrever o seu código fonte para beneficiar deste novo comportamento.
NOVOS CONJUNTOS DE CARACTERES
As novas definições de compatibilidade aplicam-se aos comandos TEXT TO DOCUMENT e File.setText() quando são utilizados sem os parâmetros opcionais “charSet” ou “breakMode”.
Não foram feitas alterações para o carácter EOL. Ainda pode ser forçado a utilizar o parâmetro “breakMode”.
Da mesma forma, pode querer definir com precisão se os ficheiros gerados por TEXT TO DOCUMENT e File.setText() contém ou não uma lista técnica. Para o fazer, definir um conjunto de caracteres Unicode terminando com “-no-bom”, como “UTF-8-no-bom” ou “UTF-16-no-bom”, para escrever um ficheiro sem uma lista técnica. Para escrever um ficheiro com uma lista técnica, ainda pode utilizar os conjuntos de caracteres existentes sem o sufixo “-no-bom”, como “UTF-8” ou “UTF-16”.