Fechamento de Arquivo TXT

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

Moderador: Moderadores

lczani
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 09 Jul 2015 09:22
Localização: rio de janeiro

Fechamento de Arquivo TXT

Mensagem 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().
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

Fechamento de Arquivo TXT

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 8029
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 2 vezes
Curtiram: 1 vez

Fechamento de Arquivo TXT

Mensagem 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.
Saudações,
Itamar M. Lins Jr.
Kapiaba
Colaborador
Colaborador
Mensagens: 1912
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Fechamento de Arquivo TXT

Mensagem 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.
lczani
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 09 Jul 2015 09:22
Localização: rio de janeiro

Fechamento de Arquivo TXT

Mensagem 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.
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Fechamento de Arquivo TXT

Mensagem 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

At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
alxsts
Colaborador
Colaborador
Mensagens: 3109
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Fechamento de Arquivo TXT

Mensagem 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?
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Fechamento de Arquivo TXT

Mensagem 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.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
Vlademiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 752
Registrado em: 11 Jul 2005 02:46

Fechamento de Arquivo TXT

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

Fechamento de Arquivo TXT

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