============================================= Formato do arquivo de conta detalhada da GVT ============================================= Nota: essa é uma descrição informal do formato de arquivo de conta detalhada (.CDC) usado pela GVT e não há garantia de que ela apresente com exatidão todas as suas minúcias. Esta foi feita comparando-se os dados encontrados no arquivo com os encontrados em uma fatura de período equivalente. Descrição superficial ===================== O arquivo de conta detalhada é um formato intermediário que a GVT usa para exportar informações do histórico de ligações de contas telefônicas para o software de visualização próprio deles importe em uma base .mdb (MS Access) e então gere os relatórios interessantes. Esse software de visualização é feito em Delphi. Foi possível instalá-lo com o wine, mas não rodou. Não me esforcei muito em fazer funcionar. Esse formato intermediário, que tem extensão .cdc nos nomes, é um arquivo de texto, com algumas linhas de cabeçalho e várias "tabelas" dentro usando algo parecido com CSV. É louvável o fato dos desenvolvedores da GVT terem escolhido um formato em texto. :-) Estrutura ========= O formato básico utilizado é "texto" codificado em windows-1252. Linhas em formato DOS. O arquivo é separado em (minha terminologia) seções, que são separadas por linhas vazias. A primeira seção é o cabeçalho. Cada campo fica em uma linha, sendo: - NFFST (???) - Período de apuração: data inicial (aaaammdd) - Período de apuração: data final (aaaammdd) - Nome do titular da conta - Data de vencimento (aaaammdd) - Data de emissão - Sigla do estado (possivelmente "Estado de instalação") - Número da fatura (10 dígitos, ocupados com zeros à direita, com um sufixo -0) Depois do cabeçalho, começam as seções de detalhamento, em que ficam os dados de produtos "consumidos" e informações das ligações. Essas seções são tabelas com número variável de colunas e linhas. As colunas são separadas por tabulações e sempre têm uma linha que aparentemente descreve a "prestadora", mas nos exemplos que vi sempre foi "Prestadora GVT". Uma linha em branco. Então uma linha que aparentemente descreve a "tabela" em si, apresentando um texto descritivo (com espaços e etc), seguido por uma tabulação, e então uma identificação que aparentemente é usada pelo programa visualizador. Uma linha em branco. Segue uma linha com descrições para cada coluna da tabela que virá a seguir. Cada coluna de descrição contém subcolunas separadas por ":", sendo 5 colunas. "A saber:" - Uma descrição para a coluna - Um identificador (para uso pelo programa) - O tipo dos valores da coluna - Um especificador de formato (ver abaixo) - O "outro" tipo dos valores da coluna (???) O especificador de formato tem dois campos separados por ",". O primeiro campo especifica o tamanho máximo da coluna. O segundo campo aparenta ser o número de casas decimais após o ponto decimal usar no caso de valores númericos. Esse campo é "0" quando tipo é string. Quanto aos dois tipos de campos, isso parece ser um vazamento de detalhe de como o programa visualizador é implementado. Possivelmente um tipo é utilizado para a interpretação do próprio programa (parece ter sido feito em Delphi) e o outro é para a representação no SGDB, que no caso parece ser o MS Access. Por fim, seguem os valore em si separados por tabulações. Notas ====== Os valores monetários são representados em centavos. (447 em vez de R$4,47) Alguns dos formatos de data das ligações são no formato aaaammddhhMMss. A duração das ligações é no formato mmss.