Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

NA VERSÃO MAIS NOVA DO ACBR A PROCEDURE

 

procedure TACBrTEFDArquivo.GravarArquivo(const NomeArquivo : String;
   DoFlushToDisk : Boolean = False );
 
 
FOI MODIFICADA DE
BEGIN
  fStringList.SaveToFile(NomeArquivo);
 
  if DoFlushToDisk then
     FlushFileToDisk( NomeArquivo );
END;
 
PARA NOVA ROTINA
BEGIN
  WriteToTXT(NomeArquivo, fStringList.Text);
 
  if DoFlushToDisk then
     FlushFileToDisk( NomeArquivo );
END;
 
DETALHE AO UTILIZAR O TEF_DIAL VERSÃO 4.0
NÃO ESTÁ INICIALIZANDO O TEF
DANDO UMA MENSAGEM DE ERRO DE ACESS VIOLATION
E DIZ QUE O TEF NAO FOI INICIALIZADO
PERCEBI QUE ELE GERA O ARQUIVO intpos.tmp com informações repetidas
 
da forma abaixo
000-000 = ATV
001-000 = 78384
 
000-000 = ATV
001-000 = 78384
999-999 = 0
só consegui resolver o erro voltando a rotina anterior :   fStringList.SaveToFile(NomeArquivo);
gostaria de saber se a equipe do acbr vai modificar a rotina.
AMBIENTE: DELPHI7
WINDOWS 7 64BITS
 
  • Fundadores
Postado

Realmente estava errado... Da maneira como estava implementado, a chamada ao WriteToTXT iria adicionar novas informações no final do arquivo existente, ao invés de criar um novo arquivo... (além de uma quebra de linha a mais)

 

Apliquei uma possível correção no SVN...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado

Cleison, você chegou a debugar para ver se o problema é isso mesmo, porque homologuei 3 discados e 1 dedicado com está modificação e funciona corretamente, ela foi introduzida para resolver problemas de gravação em discos SSD.

Eu fiz o debug, e toda vez ele faz um append no arquivo, quando eu modifiquei e coloquei para a rotina anterior, o erro parou de ocorrer.

  • Solution
Postado

Realmente estava errado... Da maneira como estava implementado, a chamada ao WriteToTXT iria adicionar novas informações no final do arquivo existente, ao invés de criar um novo arquivo... (além de uma quebra de linha a mais)

 

Apliquei uma possível correção no SVN...

  • Membros Pro
Postado

Fiz a atualização, mas o erro persiste. O ACBR gera a seguinte mensagem: "Erro ao apagar o arquivo C:\TEF_DIAL\REQ\INTPOS.001".

Eu debuguei e vi que foi no ACBRTEFD.Inicializar quando ele apaga os arquivos das pastas.

 

O estranho é que o arquivo fica preso ao Gerenciador TEF e não ao meu PDV. Ou seja, se eu fechar o TEF eu consigo apagar o arquivo. Sem fechar o TEF, mesmo entrando na pasta REQ o windows não deixa.

 

Aí fiz o seguinte: fechei o TEF, apaguei o arquivo da pasta REQ e comentei a função WRITETOTXT e descomentei a antiga. Pronto funcionou.

 

Estranho, mas parece que esta função está gerando o arquivo INTPOS de uma forma que o Gerenciador ao ler deixa ele preso e impossibilita de excluir.

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

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 conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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...