FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour SetFTime( nHandle, dNovaData, cNovaHora )
Posts: 8559
Joined: Tue Dec 20, 2005 07:36 PM

SetFTime( nHandle, dNovaData, cNovaHora )

Posted: Tue Jun 02, 2026 03:30 PM
#include "FiveWin.ch"
#include "FileIo.ch"

FUNCTION AlterarDataExe()

   LOCAL cArquivo, dNovaData, cNovaHora
   LOCAL nHandle, lOk := .F.

   SET EPOCH TO YEAR( DATE() ) // - 30
   SET DATE FRENCH
   SET CENTURY ON
   // SET TIME FORMAT TO "HH:MM:SS"

   cArquivo  := "C:\FWH2603\SAMPLES\JOAO.EXE"
   dNovaData := Date() // CTOD("25/05/2026")
   cNovaHora := Time() // "10:30:00"

// Abre o arquivo para leitura/escrita
nHandle := FOpen( cArquivo, FO_READWRITE )

IF nHandle != -1

    // Chama a API do Windows passando a data (CTOD) e a hora (CTOT)
    lOk := SetFTime( nHandle, dNovaData, cNovaHora )

    FClose( nHandle )

ENDIF

// Result:

//   Pasta(Carpeta) de C:\FWH2603\samples

//   21/09/1681  15:53         5.024.256 JOAO.EXE -> HARBOUR  ERROR. ????????????
//   ???  00:00                5.024.256 JOAO.EXE -> XHARBOUR ERROR. ?? Que pasa?

RETURN lOk

// FIN / END - TESTE.PRG

Gracias, tks.

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8559
Joined: Tue Dec 20, 2005 07:36 PM

Re: SetFTime( nHandle, dNovaData, cNovaHora )

Posted: Wed Jun 03, 2026 01:14 PM

up

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8559
Joined: Tue Dec 20, 2005 07:36 PM

Re: SetFTime( nHandle, dNovaData, cNovaHora )

Posted: Wed Jun 03, 2026 03:33 PM

Good afternoon Enrico. What is the equivalent command in XHABOUR for hb_FSetDateTime?

Buenas tardes Enrico. ¿Cuál es el comando equivalente en XHABOUR para hb_FSetDateTime?

// C:\FWH2603\SAMPLES\HORAEXE.PRG

#include "FiveWin.ch"
#include "FileIo.ch"

FUNCTION MudarDataArquivo()

   LOCAL tStamp
   LOCAL cArquivo   := "C:\FWH2603\SAMPLES\JOAO.EXE"
   LOCAL dData      := CTOD("15/05/2026")
   LOCAL cHora      := "08:00:00"
   LOCAL dAgora     := DateTime()
   LOCAL dHoraLocal := DateTime() - ( 3 * 3600 ) // Subtrai 3 horas (em segundos)

   SET EPOCH TO YEAR( DATE() ) - 30
   SET DATE FRENCH
   SET CENTURY ON

   tStamp := CtoT("2026-06-03 11:15:00")

   // ? dAgora // Retorna data e hora do sistema
   // ? tStamp
   // ? dHoraLocal

#ifNdef __XHARBOUR__     // HARBOUR

   // Enrico, cual es el equivalente en XHARBOUR por favor.
   IF hb_FSetDateTime( cArquivo, dData, cHora ) // FUNCIONA +-

  MsgInfo( "Harbour: Timestamp do arquivo alterado com sucesso!" )

   ELSE

  MsgAlert( "Erro ao alterar a data/hora do arquivo." )

   ENDIF

#else  // XHARBOUR

   IF DateTime( cArquivo, dData, cHora ) // NO FUNCIONA Enrico. ???

  MsgInfo( "xHarbour: Timestamp do arquivo alterado com sucesso!" )

   ELSE

  MsgAlert( "Erro ao alterar a data/hora do arquivo." )

   ENDIF

#endif

RETURN NIL

// FIN / END

Gracias, tks.

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 9028
Joined: Thu Oct 06, 2005 08:17 PM

Re: SetFTime( nHandle, dNovaData, cNovaHora )

Posted: Wed Jun 03, 2026 09:32 PM

Try SetFDaTi().

Posts: 8559
Joined: Tue Dec 20, 2005 07:36 PM

Re: SetFTime( nHandle, dNovaData, cNovaHora )

Posted: Thu Jun 04, 2026 07:47 AM
Enrico Maria Giordano wrote:

Try SetFDaTi().

Thank you very much Enrico. Perfecto con XHARBOUR.

// C:\FWH2603\SAMPLES\HORAEXE.PRG

#include "FiveWin.ch"
#include "FileIo.ch"

FUNCTION MudarDataArquivo()

   LOCAL tStamp
   LOCAL cArquivo   := "C:\FWH2603\SAMPLES\JOAO.EXE"
   LOCAL dData      := CTOD("15/05/2026")
   LOCAL cHora      := "08:00:00"
   LOCAL dAgora     := DateTime()
   LOCAL dHoraLocal := DateTime() - ( 3 * 3600 ) // Subtrai 3 horas (em segundos)

   SET EPOCH TO YEAR( DATE() ) - 30
   SET DATE FRENCH
   SET CENTURY ON

   tStamp := CtoT("2026-06-03 11:15:00")

   // ? dAgora // Retorna data e hora do sistema
   // ? tStamp
   // ? dHoraLocal

#ifNdef __XHARBOUR__     // HARBOUR

   // Enrico, cual es el equivalente en XHARBOUR por favor.
   IF hb_FSetDateTime( cArquivo, dData, cHora ) 

  MsgInfo( "Harbour: Timestamp do arquivo alterado com sucesso!" )

   ELSE

  MsgAlert( "Erro ao alterar a data/hora do arquivo." )

   ENDIF

#else  // XHARBOUR

   IF SetFDaTi( cArquivo, dData, cHora ) 

  MsgInfo( "xHarbour: Timestamp do arquivo alterado com sucesso!" )

   ELSE

  MsgAlert( "XHB: Erro ao alterar a data/hora do arquivo." )

   ENDIF

#endif

RETURN NIL

// FIN / END - kapiabafwh@gmail.com

// TTOS() ou TToC(): Converte a variável de DateTime para String.
// CToT(): Converte uma String para DateTime.
// TTOD(): Extrai apenas a parte da Data a partir de um DateTime

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341

Continue the discussion