Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Estou com um problema em 03 clientes usando o acbrmonitor... Quando mando abrir um cupom o componente trava e as vezes retorna uma msg que não conseguiu apagar um arquivo tmp. Fui verificar e realmente na pasta C:\Acbr onde configurei o monitor... Tinha quase uns 1000 arquivos tmp... Daí pesquisei e não encontrei nada a respeito. Daí coloquei o sistema para apagar os tmp desta pasta toda vez que carrega... Mas não é a melhor solução... Tem alguma configuração no monitor ou nas máquinas que possa resolver esse problema...? Acontece em um ecf bematech mp2100e duas epson tm81... o pcs estão com windows xp...

Vlw

Rubens

  • Fundadores
Postado

A mensagem retornada pelo ACBrMonitor é clara... ele foi impossibilitado de apagar o arquivo...

Provavelmente o problema é na rotina de criação de arquivo da sua aplicação... você não deve estar liberando o arquivo da maneira correta...

Crie o arquivo sempre com outro nome (temporário)....e somente quando terminar de escrever tudo e fechar o arquivo, ai sim, renomeie arquivo temporário para o nome esperado pelo ACBrMonitor

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

Daniel...

Eu gravo os comandos com a rotina abaixo...

Num crio nenhum temporário. Os arquivos temporários que aparecem na pasta são nessa sequencia:

VDM4F.TMP

VDM9E.TMP

VDM9F.TMP

VDM50.TMP

VDM51.TMP

e assim por diante... Não é meu programa que cria estes arquivos... (pelo menos eu acho)...

Fiquei no cliente para ver o que acontecia... Quando mandava um comando para o ACBR de abrir o cupom acontecia o problema.. o componente travava e de vez em quando aparecia a mensagem... Daí era só finalizar o componente... apagar os tmp da pasta c:\acbr que voltava a funcionar, e não era sempre que acontecia o erro... E só nas trê máquinas citadas... a pasta não é compartilhada...


function COMANDO( cComando, cDados )


local ret_line := "chr(13)+chr(10)"  // o mesmo que pressionar enter no fim

					  // da linha


// Verifica se o arquivo ENT.CMD existe, se existe apaga-o

If File("ENT.CMD")

	WHILE(.T.)

		FERASE("ENT.CMD")

		IF !FILE("ENT.CMD")

			EXIT

		ENDIF

	ENDDO

ENDIF


// Verifica se os dados sao do tipo caracter

cDados   := iif(ValType(cDados)#"C","",cDados)


// Coloca os dados entre parenteses

cBuffer := cComando + iif( len( cDados )=0,"()","(" + cDados + ")")


// Cria o arquivo temporario que vai receber o comando

WHILE(.T.)

	errfile	:= "C:\ACBR\ENT.CMD"

	errhandle := FCREATE(errfile,0)

	IF FERROR() != 0

		LOOP

	ELSE

		EXIT

	ENDIF

ENDDO


// Grava os dados no arquivo

FWRITE(errhandle,cBuffer+&ret_line.)


// Fecha o arquivo

FCLOSE(errhandle)


// Verifica se existe o arquivo de saida ENT.TXT apaga-o

If File("C:\ACBR\ENT.TXT")

	WHILE(.T.)

		FERASE("C:\ACBR\ENT.TXT")

		IF !File("C:\ACBR\ENT.TXT")

			Exit

		EndIf

	ENDDO

ENDIF


// Copia o arquivo para o diretorio do ACBRMonitor

COPY FILE ENT.CMD TO C:\ACBR\ENT.CMD


// Renomeia o arquivo par ent.txt

WHILE(.T.)

	IF FRENAME("C:\ACBR\ENT.CMD","C:\ACBR\ENT.TXT") != -1

		EXIT

	ENDIF

ENDDO


FERASE("ENT.CMD")

FERASE("C:\ACBR\ENT.CMD")


RETURN()

Rubens

  • Este tópico foi criado há 4922 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...