Convertendo UTF8 para Ansistring

03/10/2016

0

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

Responder

Post mais votado

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.

Andrey

Andrey
Responder

Mais Posts

03/10/2016

Pexbrasil

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar