Página 1 de 1
duvida com o comando FILE
Enviado: 26 Mai 2016 13:08
por porter
ola pessoal, gostaria de saber porque após renomear um arquivo, preciso executar o comando inkey(0.1) para que o comando FILE,
encontre o arquivo renomeado, estou fazendo dessa forma, não sei se está correto, mas funciona.
Código: Selecionar todos
FRENAME( "C:\LOJA" + '\ENTNFe' + '.CMD', Alltrim("C:\LOJA") + '\ENTNFe' + '.TXT' )
[b]inkey(0.1) <-- tem que usar esse comando senao nao o FILE nao funciona[/b]
if file( Alltrim("C:\LOJA") + '\SAINFE' + '.TXT' )
xHarbour, windows 7.
obrigado
duvida com o comando FILE
Enviado: 26 Mai 2016 16:08
por alxsts
Olá!
Parece estranho... você renomeia C:\LOJA'\ENTNFe.CMD para C:\LOJA'\ENTNFe.TXT e depois procura por C:\LOJA\SAINFE.TXT. É isto mesmo ou entendi errado? Estas chamadas para Alltrim() são desnecessárias.
No Harbour existe a função HB_FILEEXISTS. Não sei se existe no xHarbour.
duvida com o comando FILE
Enviado: 26 Mai 2016 16:34
por porter
ola alxsts, é isso mesmo, estranho, não entendi também.
duvida com o comando FILE
Enviado: 26 Mai 2016 16:45
por alxsts
Olá!
Se você não entendeu, imagine os outros...
Acho que o teu código deveria estar assim se quiser localizar o arquivo recém renomeado:
duvida com o comando FILE
Enviado: 26 Mai 2016 18:38
por Jairo Maia
Olá Pessoal,
porter escreveu:ola pessoal, gostaria de saber porque após renomear um arquivo, preciso executar o comando inkey(0.1) para que o comando FILE, encontre o arquivo renomeado
Não Precisa. Na verdade você está renomeando o arquivo
C:\LOJA'\ENTNFe.CMD para
C:\LOJA'\ENTNFe.TXT, depois procura pela resposta do ACBr no arquivo SAINFE.TXT.
Na verdade provavelmente ainda são testes primários, porisso 0.1 segundos é tempo para que o ACBr devolva a resposta no arquivo SAINFE.TXT que você procura pelo FILE().
Uma dica:
Para que você possa aguardar o arquivo de resposta do ACBr, aconselho a usar um Timer. Algo mais ou menos assim:
Código: Selecionar todos
nTemtativas := 0
While !File( "SAINFE.TXT" ) .And. nTentativas < 20 // aguarda no máximo 10 segundos
nTentativas++
Inkey ( 0.5 )
EndDo
If !File( "SAINFE.TXT" )
Alert( "Componente ACBrMonitor não respondendo!";Contate o Suporte!" )
EndIf
NOTA: Lembre-se de colocar sempre antes de qualquer comando a enviar para o ACBr o seguinte:
Isso garante que a resposta lida será sempre a resposta ao último comando.
duvida com o comando FILE
Enviado: 27 Mai 2016 08:18
por rubens
Bom dia
Jairo,
Essa função Filedelete() é do harbour?
É mais eficiente do que o comando Ferase()
Obrigado
Rubens
duvida com o comando FILE
Enviado: 27 Mai 2016 08:52
por porter
entendi, tem que aguardar uma resposta do AcbrMonitor, por isso que não localizava o arquivo.
obrigado.
duvida com o comando FILE
Enviado: 27 Mai 2016 08:55
por viniciuspc
Rubens,
As duas funções excluem o arquivo, igual ao comando "DELETE FILE". A diferença esta no código de retorno !
FileDelete pode retornar
Código: Selecionar todos
------------------------------------------------------------------------
Code Symb. constants Definition
------------------------------------------------------------------------
0 NO_DISK_ERR No error occurs
-2 ER_FILE_NOT_FOUND File not found
-3 ER_PATH_NOT_FOUND Path not found
-5 ER_ACCESS_DENIED Access denied (e.g., file is read-only)
---------------------------------------------------------------------
E
fErease retorna
Fontes:
https://vivaclipper.wordpress.com/tag/filedelete/
https://vivaclipper.wordpress.com/2014/01/09/ferase/
:xau
duvida com o comando FILE
Enviado: 27 Mai 2016 13:42
por alxsts
Olá!
Parabéns Jairo!
Realmente esta pergunta foi dirigida a dois tipos de programador: aqueles que conhecem AcbrMonitor e aqueles que tem o dom da adivinhação. Eu. como não tenho estes conhecimentos, respondi à luz do Harbour, pois o tópico foi colocado nesta seção do Fórum e não informa que se trata de AcbrMonitor.
duvida com o comando FILE
Enviado: 27 Mai 2016 16:38
por fladimir
Alexandre a confusão toda é q o colega porter esta baseando em um exemplo q postei q faço alltrim(Caminhos->PathNFe) e talvez tenha gerado a confusão...
No caso ele havia perguntado o q tinha nessa tabela e campo e eu disse q o caminho da pasta q é monitorada pelo acbr...
No meu sistema como o campo é extenso pois pode conter desde endereços de pastas curtos exemplo:
mas tb pode ser mais extenso... exemplo...
então eu faço um alltrim antes de concatenar com o nome do arquivo monitorado pelo ACBr.
[]´s
duvida com o comando FILE
Enviado: 27 Mai 2016 16:50
por alxsts
Olá!
Fladimir: não vi este outro tópico mas, no teu caso se justifica o uso do AllTrim().
Na verdade, a confusão foi causada pelo fato de se renomear o arquivo A para B e depois procurar pelo arquivo C. Não foi informado que o arquivo B seria capturado e processado pelo AcbrMonitor e que o arquivo C seria devolvido na pasta pelo AcbrMonitor.