- 13.4. Utilidadades
13.4.5. LeArquivoANSI - 13.4.4. Elimina Identação XML
« Anterior - 13.4.6. UpLoadNFe
Próximo »
13.4.5. LeArquivoANSI
Ler arquivo em codificação ANSI
Assinatura:
string LeArquivoANSI(string nomeArquivo, out int cResultado, out string msgResultado);
Descrição:
Funcionalidade recuperar o conteúdo do arquivo em codificação ANSI, o conteúdo do arquivo lido pode ter codificação ANSI ou UTF-8.
O XML deve ter codificação UTF-8, mas a maioria das aplicações trabalham com a codificação ANSI e isto causa problemas quando existem caracteres especiais ou acentuados, pois estes caracteres tem representação diferente no ANSI e no UTF-8.
Assim, o mesmo XML pode ser gravado de formas diversas e a leitura do arquivo sem considerar estes detalhes pode causar problema de corrompimento do arquivo, para um melhor entendimento veja o exemplo:
XML original com caractere especial de numeral º e caracteres acentuados: ã e í
<?xml version="1.0" encoding="UTF-8"?><NFe><xNome>1º Tabelião de Protesto de Títulos</xNome></NFe>
O XML pode ser gravado de 3 formas diferentes:
- codificação ANSI - é a forma normal de gravação das aplicações Delphi, VB 6.0, etc.;
- codificação UTF-8 - a string é convertida em UTF-8 antes da gravação com o uso de funções de conversão de ANSI para UTF-8;
- codificação UTF-8, com BOM - a string é gravada em UTF-8 com o BOM Byte order Mark no início do arquivo.
A leitura dos arquivos pode ter os seguintes resultados:
- XML igual ao original, quando o arquivo foi gravado com a codificação ANSI
<?xml version="1.0" encoding="UTF-8"?><NFe><xNome>1º Tabelião de Protesto de Títulos</xNome></NFe>
- XML com caracteres especiais e acentuação corrompidos, quando o arquivo foi gravado com a codificação UTF-8
Neste caso, o numeral º virou ú e a com til ã virou ã e o i com acento agudo í virou Ã.
<?xml version="1.0" encoding="UTF-8"?><NFe><xNome>1º Tabelião de Protesto de TÃtulos</xNome></NFe>
- caracteres de BOM  no início do arquivo e XML com caracteres especiais e acentuação corrompidos, quando o arquivo foi gravado com a codificação UTF-8
Neste caso, o numeral **º virou ú e a com til ã virou ã e o i com acento agudo í virou Ã.
<?xml version="1.0" encoding="UTF-8"?><NFe><xNome>1º Tabelião de Protesto de TÃtulos</xNome></NFe>
A funcionalidade LeArquivoANSI lê os 3 tipos de arquivo e devolve uma string com codificação ANSI.
Parâmetros:
nome | tipo | fluxo | descrição |
---|---|---|---|
nomeArquivo | string | entrada | informar uma nome com o caminho do arquivo que deseja ler. |
cResultado | inteiro | saída | retorna o resultado da chamada do WS. |
msgResultado | string | saída | retorna a literal do resultado da chamada do WS |
Retorno:
O resultado da chamada é uma string com o XML identado.
O cResultado retorna um dos seguintes códigos:
código | Mensagem | origem | regra |
---|---|---|---|
7330 | Leitura do arquivo realizada com sucesso | DLL | - |
7331 | Erro: Falha na leitura do arquivo XML :[Mensagem de Erro] | DLL | - |
Histórico de atualização:
- 2011-06-02 - 2Gv0.7- Versão preliminar.
Exemplos:
Delphi
// Util := CreateOleObject('NFe_Util_2G.util'); // // formata XML, com identação para melhor visualização, não gravar o XML formatado, // pois este processo CORROMPE A ASSINATURA DIGITAL // XMLAnsi := Util.LeArquivoANSI('c:\nf.xml', resultado, msgResultado); //
Dim Resultado As Long Dim msgResultado As String Dim XMLAnsi As String XMLAnsi = "" msgResultado = "" ' ' instancia classe ' Dim objNFeUtil As Object Set objNFeUtil = CreateObject("NFe_Util_2G.util") ' ' Le arquivo ' XMLAnsi = objNFeUtil.LeArquivoANSI("c:\nf.xml", Resultado, msgResultado) If Resultado = 7331 Then MsgBox msgResultado, vbInformation, "Informação" Else MsgBox XMLAnsi, vbInformation, "Informação" End If
- 13.4.5. LeArquivoANSI
13.4. Utilidadades - « Anterior
13.4.4. Elimina Identação XML - Próximo »
13.4.6. UpLoadNFe