Tente substituir a Função CRZtoCOO por esta abaixo:
procedure TACBrECFBematech.CRZToCOO(const ACRZIni, ACRZFim: Integer;
var ACOOIni, ACOOFim: Integer);
var
Retorno: TStringList;
CRZi, CRZf: string;
Linha: string;
I, PosCOO: Integer;
begin
Retorno := TStringList.Create;
try
Self.LeituraMemoriaFiscalSerial(ACRZIni, ACRZFim, Retorno);
PosCOO := 0;
ACOOIni := 0;
ACOOFim := 0;
CRZi := IntToStrZero(ACRZIni,4)+' ';
CRZf := IntToStrZero(ACRZFim,4)+' ';
I := 0 ;
while (I
begin
Linha := Retorno[I];
if PosCOO = 0 then // Já achou o cabeçalho ?
begin
if (pos('CRZ ',Linha) = 1) then
PosCOO := pos('COO ', Linha);
end
else
begin
if Copy(Linha, 1, 6) = CRZi then
ACOOIni := StrToIntDef(Copy(Linha, PosCOO, 6), 0) ;
if Copy(Linha, 1, 6) = CRZf then
ACOOFim := StrToIntDef(Copy(Linha, PosCOO, 6), 0) ;
end ;
Inc( I ) ;
end ;
ACOOIni := max(ACOOIni,1);
ACOOFim := max(ACOOFim,ACOOIni);
finally
Retorno.Free;
end;
end;
[/code]