Boa tarde
Fiquei hoje a tarde toda tetando achar o problema
O que acontece e o seguinte:
na unit ACBrTEFDVeSPague.pas temos o trecho a seguir
For I := 0 to RespVS.Params.Count-1 do
begin
Chave := RespVS.Params.Names[I] ;
if (Chave <> '') and (pos(Chave, 'retorno,sequencial,servico') = 0) then
begin
{$IFDEF COMPILER7_UP}
Valor := RespVS.Params.ValueFromIndex[I];
{$ELSE}
Valor := RespVS.Params.Values[Chave];
{$ENDIF}
TACBrTEFDRespVeSPague( Self.Resp ).GravaInformacao( Chave, Valor ) ;
end ;
end ;
ao utilizar a linha TACBrTEFDRespVeSPague( Self.Resp ).GravaInformacao( Chave, Valor ) ;
ele vai gravar os dados no conteudo correto assim ele vai executar a seguinte função
procedure TACBrTEFDArquivo.GravaInformacao(const Chave, Informacao : AnsiString) ;
var
I, IndChave : Integer ;
begin
IndChave := -1 ;
I := 0 ;
while (IndChave < 0) and (I < fStringList.Count) do
begin
if copy(fStringList[I],1,Length(Chave)) = Chave then
IndChave := I
else
Inc( I ) ;
end;
if IndChave >= 0 then
fStringList.Delete(I); // Remove o Antigo
if Informacao <> '' then
fStringList.Add( Chave + ' = '+ Informacao )
end ;
acontece que ao pesquisar ele procura parcialmente a chave e no caso do vspague
ele possui várias com o nome parcial igual a outras linhas, assim ele achando a primeira linha parcial ele substitui a linha toda
vou postar um exemplo abaixo
teria que verificar essa função para ele pesquisar toda a string ou outra forma que achei foi modificar o for
colocando ele downto para que ele faça o contrario assim não substitui a parte parcial
vou esperar mais pessoas se manifestar