Ir para conteúdo
  • Cadastre-se

Pesquisar na Comunidade

Showing results for tags 'acbrutil.parsetext'.

  • Search By Tags

    Digite tags separadas por vírgulas
  • Search By Author

Tipo de Conteúdo


Fóruns

  • Fórum Aberto - ACBr
    • Notícias do ACBr
    • Equipamentos testados
    • Base de Conhecimento
    • Dúvidas Gerais sobre o ACBr
    • ACBrSerial
    • ACBrSAT
    • ACBrNFe
    • ACBrDFe
    • Dúvidas sobre TEF
    • Dúvidas sobre PIX
    • ACBrMonitor PLUS
    • ACBrTXT
    • ACBrBoleto
    • ACBrDiversos
    • ACBrTCP
    • ACBrFramework
    • ACBrLIB
  • ACBr API
    • Duvidas Gerais ACBr API
    • Duvidas Privadas ACBr API
  • Suporte Nuvem Fiscal
    • Comunidade Nuvem Fiscal
  • Outros Assuntos
    • Boteco do ACBr
    • Legislação Fiscal e Tributária
    • Object Pascal - Delphi & Lazarus
    • Banco de Dados
    • Classificados
    • Dúvidas não relacionadas ao ACBr

Categorias

  • ACBr Pro
    • ACBrLib - PRO
    • ACBrMonitorPLUS - PRO
    • Utilitários - PRO
    • Dia do ACBr 1a edição
    • Dia do ACBr 2a edição
  • Download Livre
    • ACBrLib - DEMO
    • ACBrMonitorPLUS - DEMO
    • Demos / Testes / Utilitários
    • Apresentações - Palestras
  • ACBr TEF

Calendários

  • Eventos - Palestras - Webinars
  • Prazos SEFAZ
  • Calendário da Comunidade
  • ACBr Papo Pro
  • Feriados Nacionais

Find results in...

Find results that contain...


Data de Criação

  • Início

    End


Data de Atualização

  • Início

    End


Filter by number of...

Data de Registro

  • Início

    End


Grupo


Website URL

Encontrado 1 registro

  1. Estou tentando realizar o download de uma NF-e da Sefaz, tudo funciona perfeitamente até executar a função ACBrUtil.ParseText, mais precisamente na chamada a função Utf8Decode que retorna vazio. A função Utf8Decode faz chamada a função Utf8ToUnicode que devolve -1. Ou seja, ocorreu algum erro na conversão. Debugando... consegui encontrar que o problema ocorre quando a função Utf8ToUnicode passa pelo caractere BELL. Já tentei criar uma outra função para remover o BELL antes de chamar a função Utf8Decode, mas não deu certo. Como “alternativa” fui na função ACBrUtil.ParseText e realizei algumas mudanças conforme abaixo, está resolvendo por enquanto, mas creio que não é uma boa opção, rs. Segue em anexo o XML da NF-e que consegui após realizar a modificação na função ACBrUtil.ParseText. Estou usando Delphi 2007. Agradeço a quem puder ajudar. function ParseText( Texto : AnsiString; Decode : Boolean = True; IsUTF8: Boolean = True ) : AnsiString; var {Adicionado para resolver o problema de conversão} TextoTemp: AnsiString; begin if Decode then begin Texto := AnsiString(StringReplace(String(Texto), '&amp;', '&', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&lt;', '<', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&gt;', '>', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&quot;', '"', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&#39;', #39, [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&aacute;', 'á', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&Aacute;', 'Á', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&acirc;' , 'â', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&Acirc;' , 'Â', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&atilde;', 'ã', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&Atilde;', 'Ã', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&agrave;', 'à', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&Agrave;', 'À', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&eacute;', 'é', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&Eacute;', 'É', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&ecirc;' , 'ê', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&Ecirc;' , 'Ê', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&iacute;', 'í', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&Iacute;', 'Í', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&oacute;', 'ó', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&Oacute;', 'Ó', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&otilde;', 'õ', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&Otilde;', 'Õ', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&ocirc;' , 'ô', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&Ocirc;' , 'Ô', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&uacute;', 'ú', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&Uacute;', 'Ú', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&uuml;' , 'ü', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&Uuml;' , 'Ü', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&ccedil;', 'ç', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&Ccedil;', 'Ç', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '&apos;', '''', [rfReplaceAll])); {Adicionado para resolver o problema de conversão} TextoTemp := Texto; if IsUTF8 then begin {$IFDEF DELPHI12_UP} // delphi 2009 em diante Texto := AnsiString(UTF8ToString(Texto)); {$ELSE} Texto := Utf8ToAnsi(Texto); {$ENDIF} end; end else begin Texto := AnsiString(StringReplace(String(Texto), '&', '&amp;', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '<', '&lt;', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '>', '&gt;', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), '"', '&quot;', [rfReplaceAll])); Texto := AnsiString(StringReplace(String(Texto), #39, '&#39;', [rfReplaceAll])); if IsUTF8 then begin {$IFDEF DELPHI12_UP} // delphi 2009 em diante Texto := AnsiString(UTF8ToString(Texto)); {$ELSE} Texto := AnsiString(UTF8Decode(Texto)); {$ENDIF} end ; end; {Adicionado para resolver o problema de conversão} if Texto = '' then begin Result := TextoTemp; end else begin Result := Texto; end; end; 32150627124023000164550000000151741000043990-nfe.xml
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...