UTF8 e Arquivo NF Paulista
Gente,
tenho que gerar o arquivo eletronico modelo 1 e 1A das notas fiscais paulistas e lá fala que tem que ser gerado em formato
Text Encoding = UTF-8
SOCORRO como faço isso.
Abraços
tenho que gerar o arquivo eletronico modelo 1 e 1A das notas fiscais paulistas e lá fala que tem que ser gerado em formato
Text Encoding = UTF-8
SOCORRO como faço isso.
Abraços
Adssistemas
Curtidas 0
Respostas
Adssistemas
21/01/2008
Não trabalho com isso, mas talvez isso te ajude.
Se você estiver usando D7 (talvez D6, não tenho certeza) ou mais recente, existem as funções AnsiToUtf8 e UTF8Encode...Código:
function AnsiToUtf8(const S: string): UTF8String;
function UTF8Encode(const WS: WideString): UTF8String;
...use uma dessas funções para converter seu texto antes de gravar no arquivo.
Um detalhe importante é que existe uma convenção adotada para arquivos texto UTF8 é iniciar o arquivo com uma sequencia especial de caracteres. Em Delphi seria algo assim...Código:
var
Arquivo: TextFile;
...
Rewrite(Arquivo);
Write(Arquivo, #$EF+$BB+$BF);
...
Se você estiver usando D7 (talvez D6, não tenho certeza) ou mais recente, existem as funções AnsiToUtf8 e UTF8Encode...Código:
function AnsiToUtf8(const S: string): UTF8String;
function UTF8Encode(const WS: WideString): UTF8String;
...use uma dessas funções para converter seu texto antes de gravar no arquivo.
Um detalhe importante é que existe uma convenção adotada para arquivos texto UTF8 é iniciar o arquivo com uma sequencia especial de caracteres. Em Delphi seria algo assim...Código:
var
Arquivo: TextFile;
...
Rewrite(Arquivo);
Write(Arquivo, #$EF+$BB+$BF);
...
GOSTEI 0
Massuda
21/01/2008
O tópico em questão é este:
:arrow: http://forum.devmedia.com.br/viewtopic.php?t=92565
:arrow: http://forum.devmedia.com.br/viewtopic.php?t=92565
GOSTEI 0
Orlando61
21/01/2008
Segue um exemplo simples da Nota Fiscal Paulista
var
F: System.TextFile;
Texto: String;
begin
SaveDialog.FileName := ´NFPaulista.TXT´;
SaveDialog.InitialDir := ´´;
SaveDialog.Filter := ´Arq TXT (*.TXT)|*.TXT|All Files (*.*)|*.*´;
// Escolher o Nome do Arquivo e Diretorio
if SaveDialog.Execute then
try
if FileExists(SaveDialog.FileName) then
if MessageDlg(Format(´Regravar o Arquivo ¬s´, [SaveDialog.FileName]),
mtConfirmation, mbYesNoCancel, 0) <> idYes then Exit
else DeleteFile( SaveDialog.FileName );
AssignFile(f, SaveDialog.FileName);
Rewrite(f); // Criar Arquivo
Write(f, #239+187+191);
//-----------------------------------------
Texto := ´10|1,00|24956658000130|01/01/2008|01/01/2008|´;
Writeln(F, UTF8Encode( Texto )); Texto := ´´;
//-----------------------------------------
Texto := ´20|I||VENDA DE MERCADORIA|0|000000001|01/01/2008 00:00:00|01/01/2008 00:00:00|1|5102|||00000000000000|CLIENTE FORNECEDOR|ENDERECO|21||BAIRRO|CAMPINAS|SP||BRASIL|||´;
Writeln(F, UTF8Encode( Texto )); Texto := ´´;
//-----------------------------------------
Texto := ´30|1|DESCRICAO DO PRODUTO|00000000|UN|1,0000|50,0000|50,00|000|0,00|0,00|0,00|´;
Writeln(F, UTF8Encode( Texto )); Texto := ´´;
//-----------------------------------------
Texto := ´40|0,00|0,00|0,00|0,00|50,00|0,00|0,00|0,00|0,00|0,00|50,00|0,00|0,00|0,00|´;
Writeln(F, UTF8Encode( Texto )); Texto := ´´;
//-----------------------------------------
Texto := ´50|1|||||||||000000000000000||||0,000|0,000|´;
Writeln(F, UTF8Encode( Texto )); Texto := ´´;
//-----------------------------------------
Texto := ´60||||´;
Writeln(F, UTF8Encode( Texto )); Texto := ´´;
//-----------------------------------------
Texto := ´90|00001|00001|00001|00001|00001|´;
Writeln(F, UTF8Encode( Texto )); Texto := ´´;
//-----------------------------------------
finally
CloseFile(f);
end;
end;
var
F: System.TextFile;
Texto: String;
begin
SaveDialog.FileName := ´NFPaulista.TXT´;
SaveDialog.InitialDir := ´´;
SaveDialog.Filter := ´Arq TXT (*.TXT)|*.TXT|All Files (*.*)|*.*´;
// Escolher o Nome do Arquivo e Diretorio
if SaveDialog.Execute then
try
if FileExists(SaveDialog.FileName) then
if MessageDlg(Format(´Regravar o Arquivo ¬s´, [SaveDialog.FileName]),
mtConfirmation, mbYesNoCancel, 0) <> idYes then Exit
else DeleteFile( SaveDialog.FileName );
AssignFile(f, SaveDialog.FileName);
Rewrite(f); // Criar Arquivo
Write(f, #239+187+191);
//-----------------------------------------
Texto := ´10|1,00|24956658000130|01/01/2008|01/01/2008|´;
Writeln(F, UTF8Encode( Texto )); Texto := ´´;
//-----------------------------------------
Texto := ´20|I||VENDA DE MERCADORIA|0|000000001|01/01/2008 00:00:00|01/01/2008 00:00:00|1|5102|||00000000000000|CLIENTE FORNECEDOR|ENDERECO|21||BAIRRO|CAMPINAS|SP||BRASIL|||´;
Writeln(F, UTF8Encode( Texto )); Texto := ´´;
//-----------------------------------------
Texto := ´30|1|DESCRICAO DO PRODUTO|00000000|UN|1,0000|50,0000|50,00|000|0,00|0,00|0,00|´;
Writeln(F, UTF8Encode( Texto )); Texto := ´´;
//-----------------------------------------
Texto := ´40|0,00|0,00|0,00|0,00|50,00|0,00|0,00|0,00|0,00|0,00|50,00|0,00|0,00|0,00|´;
Writeln(F, UTF8Encode( Texto )); Texto := ´´;
//-----------------------------------------
Texto := ´50|1|||||||||000000000000000||||0,000|0,000|´;
Writeln(F, UTF8Encode( Texto )); Texto := ´´;
//-----------------------------------------
Texto := ´60||||´;
Writeln(F, UTF8Encode( Texto )); Texto := ´´;
//-----------------------------------------
Texto := ´90|00001|00001|00001|00001|00001|´;
Writeln(F, UTF8Encode( Texto )); Texto := ´´;
//-----------------------------------------
finally
CloseFile(f);
end;
end;
GOSTEI 0
Fabio Ferreira
21/01/2008
Write(f, #239+187+191);
Alguem tem ideia porque em um cliente isso é gravado corretamente (FFFEFFFE), sendo o arquivo lido pelo validador e em outro isso é gravado diferente (3F) dando erro de arquivo invalido ?
Vale destacar que a rotina é rigorosamente a mesma e nao tem nenhuma parametrizacao quanto a algo ligado a isso.
Grato,
Fabio
Alguem tem ideia porque em um cliente isso é gravado corretamente (FFFEFFFE), sendo o arquivo lido pelo validador e em outro isso é gravado diferente (3F) dando erro de arquivo invalido ?
Vale destacar que a rotina é rigorosamente a mesma e nao tem nenhuma parametrizacao quanto a algo ligado a isso.
Grato,
Fabio
GOSTEI 0
Fabio Ferreira
21/01/2008
Alguem teria uma vaga ideia do que poderia provocar isso de somente em um micro nao estar sendo obedecido a gravacao neste formato ?
utilizo WRITELN(F, UTF8ENCODE( TEXTO ) );
Grato,
utilizo WRITELN(F, UTF8ENCODE( TEXTO ) );
Grato,
GOSTEI 0