Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 175 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

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

Postado
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?

  • Moderadores
Postado
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:

 

image.png

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Moderadores
Postado
5 horas atrás, Igor Cibiac disse:

Boa tarde!

Segue arquivo em anexo.

 

arquivo ofx.txt 159.84 kB · 0 downloads

Certeza que é um arquivo direto e válido. pois a extensão dele seria OFX

e está como ENG a linguagem interna dele

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Este tópico foi criado há 175 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...