Convertendo UTF8 para Ansistring

PostgreSQL

Delphi

Automação Comercial

03/10/2016

Boa tarde pessoal, desde já agradeço o apoio aee.
Bom trabalho em uma software house aqui em salvador e me deparei com um problema que já vasculhei vários tópicos do nosso Forum.
o que ocorre é que preciso implementar o SAT que agora é obrigatorio em são paulo e recebi os fontes da bematech para poder implementar em meu sistema, porem os exemplos foram compilados em delphi7 e não estou recebendo o retorno da DLL um monte de caracteres especiais. ( ???????????????????????????????????????)

vou enviar a chamada da DLL:

function EnviarDadosVenda (NumeroSessao: Integer; CodigoDeAtivacao: AnsiString; DadosVenda: AnsiString ) : PChar ; stdcall; External 'BemaSAT32.dll';



e a implementação que fiz somente para um show meessage para retornar od dados da venda e CF-e que foram validados pelo SAT.

procedure TForm1.btnEnviarVendaClick(Sender: TObject);
var
Lista : TStringList;
Linha : AnsiString;
strRetorno: AnsiString;
begin
if mmoRetorno.Text <> '' then
mmoRetorno.Clear;
try
SetLength(strCodigoDeAtivacao, 8);
intNumeroSessao := GerarNumeroSessao;
strCodigoDeAtivacao := edtCodigoAtivacao.Text;
edtNumeroSessao.Text := IntToStr(intNumeroSessao);
strDadosVenda := mmoXML.Text;
strRetorno := EnviarDadosVenda(intNumeroSessao, strCodigoDeAtivacao, strDadosVenda);
strRetorno := UTF8Decode(strRetorno);

ShowMessage(strRetorno);

Lista := TStringList.Create;
Linha := StringReplace(strRetorno, '|', '| |',[rfReplaceAll , rfIgnoreCase]);
ExtractStrings(['|'], [ ], pchar(Linha), Lista);
{Igor Noblat
Mostra o todos os retornos em uma janela de mensagem, se houver.}

ShowMessage(lista[1]+#10+#13+ //Mostra o retorno em uma janela de mensagem
lista[2]+#10+#13+
lista[5]+#10+#13+
lista[6]+#10+#13+
lista[7]+#10+#13+
lista[8]+#10+#13+
lista[9]+#10+#13+
lista[10]+#10+#13+
lista[11]+#10+#13+
lista[12]+#10+#13+
lista[13]+#10+#13);
except
on E: Exception do
ShowMessage('Oorreu Esse Erro :' +E.ClassName+ ', Menssagem: ' +E.Message);
end;
end;

\\Porem meu retorno ainda continua sendo gerado com caracteres especiais.
EX: ( ??????????????????????????????????????????????????????????????????????????????????)

alguem ai por favor poderia me dar uma luz ????
Pexbrasil

Pexbrasil

Curtidas 0

Melhor post

Andrey

Andrey

03/10/2016

Amigo, boa tarde... tente ver o link a seguir. Parece ter a solução (ou o caminho dela) para o seu problema:
http://www.projetoacbr.com.br/forum/topic/9018-acbrsat-novo-componente/?_fromLogin=1

É necessário você ter cadastro no projeto ACBR.
Se ainda não tem, faça que vale a pena.
GOSTEI 1

Mais Respostas

Pexbrasil

Pexbrasil

03/10/2016

Andrey, boa tarde amigo, eu ja estou cadastrado no site do ACBR, o meu problema todo é que por politica da empresa não utilizamos componente de terceiros, isso me complica mais, já que ai eu tenho que usar as funções nativas da DLL do fabricante.
GOSTEI 0
POSTAR