Página 1 de 2
ALTERNATIVA A FUNÇÃO FILE()
Enviado: 16 Ago 2018 12:51
por HASA
Boa tarde, colegas estou enfrentando um problema que não consigo resolver. Preciso que a função file() identifique assim que um arquivo.txt for gerado, estou usando:
Vejo que o arquivo é gerado mas o sistema lê após NNNNNN segundos, isso em rede ok, em modo local beleza responde rapidamente, teriam alguma outra função ou dica para melhorar o desempenho?
8-|
HASA
ALTERNATIVA A FUNÇÃO FILE()
Enviado: 16 Ago 2018 13:17
por Poka
Olá
Também percebo este problema, inclusive para pegar retorno da SEFAZ.
Poka
ALTERNATIVA A FUNÇÃO FILE()
Enviado: 16 Ago 2018 14:15
por fladimir
E se vc usar uma lógica diferente?
Tipo manda esperar o arquivo entende...
Código: Selecionar todos
local REQ, nHoraInicio := Seconds()
REQ := ::cDirDoMonitor + ::cArqTXT // ENT.TXT
*-- Faca enquanto nao existir arquivo
while .not. file(REQ)
IF Seconds() - nHoraInicio > 300 // Tenta 60 s = 1min
::cRetorno := 'ERRO: Protocolo nao esta ativo'
return nil
ENDIF
inkey(0.1)
end
ALTERNATIVA A FUNÇÃO FILE()
Enviado: 16 Ago 2018 14:15
por fladimir
E se vc usar uma lógica diferente?
Tipo manda esperar o arquivo entende...
Código: Selecionar todos
local REQ, nHoraInicio := Seconds()
REQ := ::cDirDoMonitor + ::cArqTXT // ENT.TXT
*-- Faca enquanto nao existir arquivo
while .not. file(REQ)
IF Seconds() - nHoraInicio > 300 // Tenta 60 s = 1min
::cRetorno := 'ERRO: Protocolo nao esta ativo'
return nil
ENDIF
inkey(0.1)
end
ALTERNATIVA A FUNÇÃO FILE()
Enviado: 16 Ago 2018 14:45
por janio
tbm tem a função hb_FileExists()
ALTERNATIVA A FUNÇÃO FILE()
Enviado: 16 Ago 2018 17:27
por HASA
:'(
Srs. muito obrigado pela dicas, mas incrivelmente é como se o sistema fica-se cego, o arquivo tá la mas... ele não lê, demora muito.
:(Neg
HASA
ALTERNATIVA A FUNÇÃO FILE()
Enviado: 16 Ago 2018 17:45
por alxsts
Olá!
Isto tem a ver com o cache do Windows. Parece que já vi algo aqui mesmo no fórum sobre o problema. Parece que tem que desativar o cache através de alguma chave do registro do Windows (Regedit). Só não sei se isto é conveniente...
ALTERNATIVA A FUNÇÃO FILE()
Enviado: 16 Ago 2018 17:49
por HASA
:% :% :%
Caracas o que fazer!
HASA
ALTERNATIVA A FUNÇÃO FILE()
Enviado: 16 Ago 2018 22:07
por fladimir
Isso eu ia falar do CACHE e esqueci, desabilita o cache do HD reinicia e testa.
ALTERNATIVA A FUNÇÃO FILE()
Enviado: 16 Ago 2018 22:34
por Jairo Maia
Olá HASA,
Já tentou usar Hb_FileExists( cArq )?
ALTERNATIVA A FUNÇÃO FILE()
Enviado: 17 Ago 2018 09:22
por HASA
:(Neg
Jairo, tentei sim, o problema é em rede local vai que é um avião a jato, em rede uma carroça com cavalo manco.
HASA
ALTERNATIVA A FUNÇÃO FILE()
Enviado: 17 Ago 2018 10:43
por ANDRIL
Esse problema já relatei tempos atrás e percebi ele quando precisei emitir NFe em rede usando o AcbrMonitor. Não consegui solucioná-lo mesmo desativando o cache do Windows. Uma operação em que na máquina local dura 5 segundos quando em rede demora no mínimo 12 segundos.
O arquivo fica criado na máquina da rede de destino, só que a máquina solicitante não enxerga. Após um delay algo é atualizado e ela passa a enxergar.
ALTERNATIVA A FUNÇÃO FILE()
Enviado: 17 Ago 2018 10:54
por HASA
Andril, EXATAMENTE isso.
:'(
HASA
ALTERNATIVA A FUNÇÃO FILE()
Enviado: 17 Ago 2018 11:03
por Itamar M. Lins Jr.
Ola!
Tente com as novas funções do Harbour. c:\>hbmk2 -find hb_vf*
Código: Selecionar todos
Trecho extraído hbdoc.prg do Harbour 3.4 mas tem no 3.2
IF HB_ISSTRING( cRoot )
cDir := hb_DirSepAdd( cDir )
ELSE
/* Detect Harbour root */
cRoot := "." + hb_ps()
DO WHILE hb_vfDirExists( cRoot + ".." )
IF hb_vfExists( cRoot + "README.md" ) .AND. ;
hb_vfExists( cRoot + "LICENSE.txt" ) .AND. ;
hb_vfExists( cRoot + "config" )
EXIT
ENDIF
cRoot += ".." + hb_ps()
ENDDO
ENDIF
Então, hb_vfExists("seuarquivo.txt") e outras tantas que tornam obsoletas as funções file(), fopen() etc...
O Przmek, Viktor só usam essas novas, pois suportam também protocolo TCP tipo hb_fvopen(tcp:192.168...) e hb_vfopen(com1:...)
http://www.harbourdoc.com.br/show.asp?k ... fOpen()%22
PS.. Aprendendo o uso delas também.
Saudações,
Itamar M. Lins Jr.
ALTERNATIVA A FUNÇÃO FILE()
Enviado: 17 Ago 2018 11:28
por HASA

)
Itamar, houve uma melhora de pelo menos 50% na velocidade da resposta.
:{ :{ :{
HASA