No teste do @antonio.carlos, notei que a resposta não vem com os Nulos...
porem no Log do @Sistemas Drogal, os nulos estão lá...
Portanto eu presumo que seja a DLL do SAT, que esteja retornando os Nulos...
Poderiamos aplicar um Workaround, nos fontes do ACBr, inserindo um 'Trim' na String retornada pelo SAT.. Exemplo:
function TACBrSATDinamico_stdcall.EnviarDadosVenda(dadosVenda : AnsiString) : String ;
Var
Resp : PAnsiChar;
begin
Resp := xSAT_EnviarDadosVenda( numeroSessao, PAnsiChar(codigoDeAtivacao),
PAnsiChar(dadosVenda) ) ;
Result := Trim(String( Resp ));
end ;
Mas não me agrada muito, interferir no conteúdo retornado pela DLL do SAT...
@Sistemas Drogal, você está com a última versão da DLL do fabricante ?