Dicas para a Certificação Delphi Developer #1
Após 3 dias do lançamento do novo Programa de Certificação Delphi, vários desenvolvedores Delphi ao redor do mundo se tornaram Certified Delphi Developer.
A fim de motivar outros desenvolvedores, decidi começar a publicar aqui no blog dicas para o programa de certificação, o qual tem o objetivo lhe ajudar na preparação para as provas. O guia de estudo (Study Guide) para a certificação Developer é o guia oficial e traz todas as informações que você precisa para estar preparado para a prova. As dicas que começarei a publicar devem ser consideradas como um material complementar e não substituirá os Study Guides.
Eu não estarei publicando perguntas e/ou resposta relacionadas a prova, o objetivo é ajudar você a se preparar para a prova, aprender mais sobre Delphi, melhorar suas qualidades como desenvolvedor e aumentar suas chances de se tornar um profissional Delphi Developer Certified.
A prova é inglês, assim sendo é necessário o conhecimento do idioma, estarei obviamente trazendo explicações em português, mas também apontando para materiais em ambos idiomas, especialmente para a documentação do Delphi que é uma das principais fontes de estudo.
Para começar, vamos aprender sobre o tipo de dado System.RawByteString e aprimorar seus conhecimentos sobre o suporte a Unicode, você poderá ser questionado na prova de forma direta ou indireta sobre este tema.
System.RawByteString
RawByteString é um dos novos tipos de String incorporados no Delphi 2009 por causa do suporte a Unicode. RawByteString é um AnsiString que não tem code page (código de página) definido como padrão, cada string em Delphi esta asociada a um code page. A runtime library usa esta informação para converter e manipular de forma segura conjuntos de caracteres internacionais. RawByteString pode ser usado como um tipo de variável para armazenar BLOB e deve ser usado como code page agnóstico em parâmetro métodos.
A documentação do RAD Studio (em inglês) descreve RawByteString assim:
Enables the passing of string data of any code page without doing any codepage conversions.
RawByteString enables the passing of string data of any code page without doing any codepage conversions. The purpose of RawByteString is to reduce the need for multiple overloads of procedures that read string data. This means that parameters of routines that process strings without regard for the string’s code page should typically be of type RawByteString.
RawByteString should only be used as a parameter type, and only in routines which otherwise would need multiple overloads for AnsiStrings with different codepages. Such routines need to be written with care for the actual codepage of the string at run time.
In general, it is recommended that string processing routines should simply use “string” as the string type. Declaring variables or fields of type RawByteString should rarely, if ever, be done, because this practice can lead to undefined behavior and potential data loss.
Abaixo, 4 links que eu recomendo para leitura:
- Recursos Avançados do Delphi 2009 – Capitulo sobre Unicode
- Delphi Unicode Migration for Mere Mortals: Stories and Advice from the Front Lines
- Using RawByteString Effectively
- RAD Studio Documentation – String Types (Delphi) – already mentioned on the Study Guide
Com estas informações você estará preparado para responder perguntas relacionadas a RawByteString e Unicode, e o mais importante aprender mais sobre Delphi.
Olá, muito bom conhecer o recurso, estou na versão 2006 e não conhecia ainda, estava testando um código referente ao tema, postado em um site, mas para aquele exemplo não consegui implementar devido não conseguir encontrar o evento ShowCodePage, posso postar o site para você dar uma olhada? Abraços.
o site seria:
http://www.cesarromero.com.br/tiburon-unicode-e-rawbytestring/
Abraços.
Muito bpa esta dica.
Pretendo fazer a prova e como tem muita coisa que não é usada rotineiramente, é muito bem vinda.