Encontrei um problema ao usar o Simulador da Sweda sem redução Z ao retornar a data do movimento:
Ao executar RetornaInfoECF('A2') sem Redução Z a String retornada é:
#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0'28/11/2013'#0'17:28:20'#0#0'21/11/2013'#0'15:26:16'#0#0'28/11/2013'#0'17:28:30'#0#0#3'¹'#2'934+0000CA˜À’€€A2'
Ao executar RetornaInfoECF('A2') Com Redução Z a String retornada é:
'29/11/2013'#0'16:41:00'#0#0'29/11/2013'#0'16:42:08'#0#0'29/11/2013'#0'16:41:26'#0#0'29/11/2013'#0'16:42:16'#0#0#3#5#2'934+0000AA˜À’€€A2'
No primeiro caso a função Trim esta eliminando as informações da primeira data (Redução Z). Neste caso creio que o correto seria o uso de RemoveNulos() no lugar de Trim.
function TACBrECFSwedaSTX.GetDataMovimento: TDateTime;
Var
RetCmd : AnsiString ;
OldShortDateFormat: AnsiString;
sData:String;
begin
// RetCmd := Trim(RetornaInfoECF('A2'));
RetCmd := RemoveNulos(RetornaInfoECF('A2'));
OldShortDateFormat := ShortDateFormat ;
try
sData := Copy(RetCmd,22,10);
ShortDateFormat := 'dd/mm/yyyy' ;
Result := StrToDate(sData);
finally
ShortDateFormat := OldShortDateFormat ;
end ;
end;