duvida com o comando FILE

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

duvida com o comando FILE

Mensagem 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
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

duvida com o comando FILE

Mensagem 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.
[]´s
Alexandre Santos (AlxSts)
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

duvida com o comando FILE

Mensagem por porter »

ola alxsts, é isso mesmo, estranho, não entendi também.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

duvida com o comando FILE

Mensagem 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:

Código: Selecionar todos

if file( "C:\LOJA" + '\ENTNFe' +  '.TXT' )
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

duvida com o comando FILE

Mensagem 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:

Código: Selecionar todos

FileDelete( "SAINFE.TXT" )
Isso garante que a resposta lida será sempre a resposta ao último comando.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

duvida com o comando FILE

Mensagem por rubens »

Bom dia

Jairo,

Essa função Filedelete() é do harbour?

É mais eficiente do que o comando Ferase()

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

duvida com o comando FILE

Mensagem por porter »

entendi, tem que aguardar uma resposta do AcbrMonitor, por isso que não localizava o arquivo.

obrigado.
Avatar do usuário
viniciuspc
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 19 Dez 2006 17:18
Localização: Rio de Janeiro

duvida com o comando FILE

Mensagem 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

Código: Selecionar todos

0 Sucesso
-1 Erro
Fontes:
https://vivaclipper.wordpress.com/tag/filedelete/
https://vivaclipper.wordpress.com/2014/01/09/ferase/

:xau
Clipper 5.2e + Blinker 5.10
Harbour 3.0.0 (Rev. 16951) + Microsoft Visual C++ 16.0.40219 (32-bit)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

duvida com o comando FILE

Mensagem 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.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

duvida com o comando FILE

Mensagem 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:

Código: Selecionar todos

C:\ACBr\   
mas tb pode ser mais extenso... exemplo...

Código: Selecionar todos

c:\pastasistema\ACBr\monitoramento\NFe ... 
então eu faço um alltrim antes de concatenar com o nome do arquivo monitorado pelo ACBr.

[]´s
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

duvida com o comando FILE

Mensagem 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.
[]´s
Alexandre Santos (AlxSts)
Responder