Arquivos do SPED devem ser gerados com codificação ISO 8859-1

por Luciano Carvalho em 21 de abril de 2010, às 12:41

No Manual de Orientação do Leiaute da Escrituração Contábil Digital - LECD, está especificado:

"Arquivo no formato texto, codificado em ASCII - ISO 8859-1 (Latin-1), não sendo aceitos campos compactados (packed decimal), zonados, binários, ponto flutuante (float point), etc., ou quaisquer outras codificações de texto, tais como EBCDIC;"

Nosso sistema, desenvolvido em C#, estava gerando os arquivos do SPED com o método CreateText da classe System.IO.File.

StreamWriter sw = System.IO.File.CreateText(path);
sw.Write(livroEletronico.ToString());
sw.Close();

O problema é que, por padrão, este método gera arquivos texto com codificação UTF-8. Isto resultava em acentuação e outros caracteres especiais incorretos no programa validador do SPED Contábil. Veja exemplo abaixo:

Detalhe relatório do SPED em UTF-8

Para corrigir esta situação, bastou gerar o arquivo com o método WriteAllText. Este método cria e abre o arquivo, escreve todo o conteúdo da string passada e fecha o arquivo na sequencia. Se o arquivo já existir, será sobrescrito. Este é o método ideal porque podemos especificar facilmente a codificação ISO-8859-1:

System.IO.File.WriteAllText(path, livroEletronico.ToString(), Encoding.GetEncoding("ISO-8859-1"));

Veja o novo resultado:

Detalhe relatório do SPED ISO 8859-1

Obs.: nos exemplos, "livroEletronico" é uma instância da classe StringBuilder do namespace System.Text. Ela é utilizada como buffer do conteúdo completo antes da geração do arquivo em si.

Tags: , , , ,

SPED Contábil | SPED Fiscal | Tecnologia

Formatação automática de código no seu blog

por Luciano Carvalho em 16 de abril de 2010, às 14:21

O site www.manoli.net tem um formulário para formatação automática de código fonte. O autor liberou também o código fonte em C#. Para o código html gerado ser apresentado corretamente você deve colocar um link para o estilo correto dentro de sua página:


<link rel="stylesheet" type="text/css" href="csharp.css">

A instalação padrão do BlogEngine.NET traz uma extensão baseada neste código para formatação automática de código chamada CodeFormatterExtension. Para utilizá-la, no BlogEngine.net use tags da seguinte forma:Leia mais...

Tags: ,

BlogEngine.NET

Adicionando descrição para itens de "enum" no C#

por Luciano Carvalho em 5 de abril de 2010, às 23:27

O enum é uma excelente estrutura para mapear valores sem a necessidade de uma tabela no banco de dados. A grande vantagem é tornar o código muito mais claro, principalmente nas regras de negócio. Um enum consiste de conjuntos de um nome e de um valor inteiro, podendo o tipo "de baixo" ser byte, small ou int de acordo com a sua necessidade.

Veja um exemplo abaixo:

    public enum CodUFIbge : byte
    {
        /// <summary>Acre</summary>
        [Description("Acre")]
        AC = 12,
        /// <summary>Alagoas</summary>
        [Description("Alagoas")]
        AL = 27,
...Leia mais...

Tags: , ,

Tecnologia