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: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 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: 1908
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: 3092
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: 3092
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