Bom dia,
Estou passando por um problema ao emitir NFCom utilizando Delphi + Linux.
Ao enviar a nota fiscal retorna exceção: Range check error.
Mais exatamente na unit ACBrNFComWebServices.pas na função RemoverDeclaracaoXML.
Quando executa a função FastStringReplace ocorre a exceção.
Fiz a seguinte alteração de FastStringReplace para Result.Replace e funcionou.
function RemoverDeclaracaoXML(const AXML: String; aTodas: Boolean = False): String;
var
DeclaracaoXML: String;
begin
DeclaracaoXML := ObtemDeclaracaoXML(AXML);
if DeclaracaoXML <> '' then
begin
if aTodas then
Result:= Result.Replace(DeclaracaoXML, '', [rfReplaceAll])
//Result := FastStringReplace(AXML, DeclaracaoXML, '', [rfReplaceAll])
else
Result:= Result.Replace(DeclaracaoXML, '', [])
//Result := FastStringReplace(AXML, DeclaracaoXML, '', []);
end
else
Result := AXML;
end;
Minhas perguntas:
- Trocar FastStringReplace por Result.Replace é seguro?
- Seria um problema a ser avaliado?
IDE: Delphi 13 + September Path + October Patch
Linux: Debian 12