2.3.3 - Registros de tamanho variável

É possível representar um arquivo que logicamente deveria ter registros de tamanho variável como um arquivo de registros de tamanho fixo. Por exemplo, no caso dos campos opcionais, poderíamos ter cada campo incluído em cada registro de arquivo, mas armazenar um valor especial NULL se não houver valor para esse campo. Para um campo repetitivo, poderíamos alocar tantos espaços em cada registro quanto o número máximo possível de ocorrências do campo. De qualquer forma, o espaço é desperdiçado quando certos registros não têm valores para todos os espaços físicos fornecidos em cada registro.

Agora, vamos considerar outras opções para formatar registros de um arquivo de registros de tamanho variável. Para campos de tamanho variável, cada registro tem um valor para cada campo, mas não sabemos o tamanho exato de alguns valores de campo. Para determinar os bytes em um registro em particular que representa cada campo, podemos usar caracteres separadores especiais (como o caractere ASC 00) para terminar os campos de tamanho variável. Veja o exemplo a seguir onde o byte 00 foi usado como terminador do campo nome. Veja como ficaria a mesma tabela ALUNO do exemplo anterior, com os seguintes campos: ID (em amarelo), Nome (em laranja), CPF (em verde) e Dt_Nascimento (em vermelho):

Registros de tamanho variável com byte identificador de término de informação

No exemplo acima, podemos ver o cadastro de três pessoas de nomes e comprimento de caracteres diferentes. O byte 00 foi utilizado como terminador de tamanho do campo nome de cada um dos registros. Caso o primeiro caractere de nome fosse 00, entenderíamos que esse campo possui valor NULL.

Copyright © 2014 AIEC.