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 Pro
    • Dúvidas gerais
    • Duvidas Privadas
    • ACBrMonitorPLUS
    • NFe/NFCe - Nota Fiscal Eletrônica
    • DFe - Documentos Fiscais Eletrônicos
    • SAT / MFE
    • TEF
    • Boleto
    • ACBrSPED
    • ACBrTXT
    • Paf-ECF
    • Requisitos Fiscais por UF
    • ACBrLIB
  • 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

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...