Igor Cibiac Postado Terça as 17:18 Compartilhar Postado Terça as 17:18 Ao realizar a leitura de um arquivo OFX do banco santander, está sendo apresentado a mensagem Invalid argument to date enconde. Verificado que o campo de data do arquivo não está com data e hora, há data e digitos(fator), o que gera o erro, pois tem uma função isUTC que faz um validação data ou fator. Realizei uma alteração verificando o tomanho da texto do campo, entrando ou não na função e deu certo. Estou anexando a modifição realizada para verificação. function IsUTC(const LLine: string; var LFuso: Extended): Boolean; var LInicio, LFim: integer; LTime: String; begin Result := Pos('GMT', LLine) > 0; if Result then begin LInicio := Pos('[', LLine); LFim := Pos(':', LLine); LFuso := StrToFloat(Copy(LLine, LInicio + 1, LFim - LInicio - 1)); if Length(Copy(LLine, 0, LInicio - 1)) > 12 then ---> LINHA ADICIONADA begin LTime := Copy(LLine, 7, LInicio - 7); // Quando for mais que 6 dígitos, indica ser um horário e não um fator. // Assim, os dígitos 7 e 8 são o dia como em um datetime padrão. Result := (Length(LTime) <= 6); end else Result := False; end else LFuso := 0; end; ACBrOFX.pas Link para o comentário Compartilhar em outros sites More sharing options...
Igor Cibiac Postado Ontem às 13:49 Autor Compartilhar Postado Ontem às 13:49 Em 24/09/2024 at 14:18, Igor Cibiac disse: Ao realizar a leitura de um arquivo OFX do banco santander, está sendo apresentado a mensagem Invalid argument to date encode. Verificado que o campo de data do arquivo não está com data e hora, há data e digitos(fator), o que gera o erro, pois tem uma função isUTC que faz um validação data ou fator. Realizei uma alteração verificando o tomanho da texto do campo, entrando ou não na função e deu certo. Estou anexando a modifição realizada para verificação. function IsUTC(const LLine: string; var LFuso: Extended): Boolean; var LInicio, LFim: integer; LTime: String; begin Result := Pos('GMT', LLine) > 0; if Result then begin LInicio := Pos('[', LLine); LFim := Pos(':', LLine); LFuso := StrToFloat(Copy(LLine, LInicio + 1, LFim - LInicio - 1)); if Length(Copy(LLine, 0, LInicio - 1)) > 12 then ---> LINHA ADICIONADA begin LTime := Copy(LLine, 7, LInicio - 7); // Quando for mais que 6 dígitos, indica ser um horário e não um fator. // Assim, os dígitos 7 e 8 são o dia como em um datetime padrão. Result := (Length(LTime) <= 6); end else Result := False; end else LFuso := 0; end; ACBrOFX.pas 11.08 kB · 0 downloads Bom dia! Conseguem analisar a questão? Link para o comentário Compartilhar em outros sites More sharing options...
Moderadores Juliomar Marchetti Postado Há 2 horas Moderadores Compartilhar Postado Há 2 horas 23 horas atrás, Igor Cibiac disse: Bom dia! Conseguem analisar a questão? Seu arquivo está com muitas diferenças no svn faça copia do seu restaure ao estado que está no svn e após aplique sua mudança e anexa novamente veja: Juliomar Marchetti skype: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Link para o comentário Compartilhar em outros sites More sharing options...
Recommended Posts
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora