Página 1 de 1

Fechamento de Arquivo TXT

Enviado: 24 Mar 2022 12:36
por lczani
Boa Tarde,
Tenho uma rotina que lê arquivos TXT com pedidos da PCRJ um ou mais que eu coloco no pen-drive conforme eu leio um arquivo eu apago do pen-drive so que o último arquivo mesmo que Eu o feche ele consta como aberto e portanto não consigo apaga-lo alguma dica.
uso FT_FUSE().

Fechamento de Arquivo TXT

Enviado: 24 Mar 2022 18:20
por JoséQuintas
A primeira coisa que me veio à cabeça foi a possibilidade de você estar fechando só na troca entre arquivos, e não fechar no último.

Fechamento de Arquivo TXT

Enviado: 24 Mar 2022 19:48
por Itamar M. Lins Jr.
Olá!
mesmo que Eu o feche ele consta como aberto
Consta pq está aberto. Ou o windows está com BUG. Será isso ?
Se colocar a parte do código correspondente, poderemos analisar.

Saudações,
Itaamr M. Lins Jr.

Fechamento de Arquivo TXT

Enviado: 25 Mar 2022 08:53
por Kapiaba
Bom dia,

Código: Selecionar todos

   FT_FUSE( "Texto.txt" )   // open text file

   WHILE .NOT. FT_FEOF()

      ? FT_FREADLN()

      FT_FSKIP()

   ENDDO

   FT_FUSE()                // close file

// Source: FTTEXT.C
Regards, saludos.

Fechamento de Arquivo TXT

Enviado: 25 Mar 2022 10:21
por lczani
BOM DIA,
Ontem depois de muito tentar achei nesta rotina a abertura do arquivo TXT usando o fopen para verificar se os pedidos são da empresa correta, e apos eu fecho usando o fclose
substitui fopen por ft_fuse('Nome do arquivo') para abrir e ft_fuse() para fechar e passou a funcionar corretamente, agradeço ao empenho de todos em me ajudar.
MUITO OBRIGADO.

Fechamento de Arquivo TXT

Enviado: 03 Out 2022 12:51
por clodoaldomonteiro
Só pra constar, tem tb o HB_FUse().
Exemplo:

Código: Selecionar todos

// The example implements a simple text file viewer using a
// TBrowse object and text file functions.

   #include "Common.ch"
   #include "Inkey.ch"
   #include "TBrowse.ch"

   PROCEDURE Main( cFile )
      LOCAL nFile, oTBrowse

      SET CURSOR OFF
      nFile := HB_FUse( cFile )

      IF nFile < 1
         ? "File not found", cFile
         QUIT
      ENDIF

      oTBrowse := TxtBrowse()

      RunTxtBrowse( oTBrowse )

      HB_FUse()
   RETURN

   PROCEDURE RunTxtBrowse( oTBrowse )
      LOCAL nKey, nLen, lRun := .T.

      DO WHILE lRun
         oTBrowse:forceStable()
         nKey := Inkey(0)

         SWITCH nKey
         CASE K_LEFT
            IF oTBrowse:cargo > 1
               oTBrowse:cargo --
               oTBrowse:refreshAll()
            ENDIF
            EXIT

         CASE K_RIGHT
            oTBrowse:cargo ++
            oTBrowse:refreshAll()
            EXIT

         CASE K_HOME
            IF oTBrowse:cargo > 1
               oTBrowse:cargo := 1
               oTBrowse:refreshAll()
            ENDIF
            EXIT

         CASE K_END
            nLen := Len( HB_FReadLN() )
            IF nLen-oTBrowse:cargo+1 > 72
               oTBrowse:cargo := nLen - 72 + 1
               oTBrowse:refreshAll()
            ENDIF
            EXIT

         CASE K_CTRL_HOME
            EXIT

         CASE K_CTRL_END
            EXIT

         DEFAULT
            IF oTBrowse:applyKey( nKey ) == TBR_EXIT
               lRun := .F.
            ENDIF
         END
      ENDDO
   RETURN


   FUNCTION TxTBrowse( nT, nL, nB, nR )
      LOCAL oTBrowse, oTBCol1, oTBCol2

      DEFAULT nT TO 0, ;
              nL TO 0, ;
              nB TO MaxRow(), ;
              nR TO MaxCol()

      oTBrowse := TBrowseNew( nT, nL, nB, nR )
      oTBrowse:cargo := 1

      oTBCol1  := TBColumnNew( " ",  ;
                              {|| Padr(HB_FRecno(),5)+":" } )

      oTBCol2  := TBColumnNew( " ",  ;
                              {|| Padr( SubStr( HB_FReadLN(), oTBrowse:cargo), 72 ) } )

      WITH OBJECT oTBrowse
         :addColumn( oTbCol1 )
         :addColumn( oTbCol2 )

         :goTopBlock    := {|| HB_FGotop() }
         :goBottomBlock := {|| HB_FGoBottom() }
         :skipBlock     := {|n| TxtSkipper(n) }
         :colPos        := 2
      END

   RETURN oTBrowse


   FUNCTION TxtSkipper( nRequest )
      LOCAL nSkip := 0

      DO CASE
      CASE nRequest == 0
      CASE nRequest < 0

         DO WHILE nSkip > nRequest .AND. HB_FRecno() > 1
            HB_FSkip(-1)
            nSkip --
         ENDDO

      CASE nRequest > 0
         DO WHILE nSkip < nRequest
            HB_FSkip(1)
            IF HB_FEof()
               EXIT
            ENDIF
            nSkip ++
         ENDDO
      ENDCASE

   RETURN nSkip


Fechamento de Arquivo TXT

Enviado: 03 Out 2022 20:02
por alxsts
Olá!

Grato por compartilhar.

É uma função interessante. Pena que não funciona direito. Ao teclar Page Down ou Page Up, se perde toda...

Fiz este alerta na outra mensagem que você postou, com a mesma função, em 14 Fev 2022 11:38 neste tópico

Você usa isto? Tem uma versão corrigida e funcional?

Fechamento de Arquivo TXT

Enviado: 05 Out 2022 14:40
por clodoaldomonteiro
Só uso ela mesmo, com o xHarbour 1.2.3 e BCC 7.3.
E este aí é um exemplo do manual .chm do xHarbour.

Fechamento de Arquivo TXT

Enviado: 16 Out 2022 17:47
por Vlademiro
alxsts escreveu:Olá!

Grato por compartilhar.

É uma função interessante. Pena que não funciona direito. Ao teclar Page Down ou Page Up, se perde toda...

Fiz este alerta na outra mensagem que você postou, com a mesma função, em 14 Fev 2022 11:38 neste tópico

Você usa isto? Tem uma versão corrigida e funcional?


Não cheguei a usar com HB_ mas substitui todos HB_ por FT_ , troquei DEFAULT por OTHERWISE e está funcionando perfeitamente no Harbour 3.2

Fechamento de Arquivo TXT

Enviado: 17 Out 2022 18:27
por alxsts
Olá!
Vlademiro escreveu:Não cheguei a usar com HB_ mas substitui todos HB_ por FT_ , troquei DEFAULT por OTHERWISE e está funcionando perfeitamente no Harbour 3.2
Fiz o mesmo aqui e realmente funciona.

A função HB_FSkip() do Harbour está com problema quando se passa um parâmetro numérico negativo para ela. Começa executando certo mas depois move o ponteiro para o início do arquivo. O mesmo ocorre com HB_FGoTo()...