- 6. Utilidades
6.4. LeArquivoANSI - 6.3. Validar Schema XML
« Anterior - 6.5. Identar XML
Próximo »
6.4. 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"?><DCe><xNome>1º Tabelião de Protesto de Títulos</xNome></DCe>
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"?><DCe><xNome>1º Tabelião de Protesto de Títulos</xNome></DCe>
- 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"?><DCe><xNome>1º Tabelião de Protesto de TÃtulos</xNome></DCe>
- 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"?><DCe><xNome>1º Tabelião de Protesto de TÃtulos</xNome></DCe>
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 | - |
Exemplos:
Delphi
// Util := CreateOleObject('DCe_Util.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:\dce.xml', resultado, msgResultado); //
- 6.4. LeArquivoANSI
6. Utilidades - « Anterior
6.3. Validar Schema XML - Próximo »
6.5. Identar XML