Page 1 of 1
SetFTime( nHandle, dNovaData, cNovaHora )
Posted: Tue Jun 02, 2026 3:30 pm
by karinha
Code: Select all | Expand
#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.
Re: SetFTime( nHandle, dNovaData, cNovaHora )
Posted: Wed Jun 03, 2026 1:14 pm
by karinha
Re: SetFTime( nHandle, dNovaData, cNovaHora )
Posted: Wed Jun 03, 2026 3:33 pm
by karinha
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?
Code: Select all | Expand
// 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.
Re: SetFTime( nHandle, dNovaData, cNovaHora )
Posted: Wed Jun 03, 2026 9:32 pm
by Enrico Maria Giordano
Re: SetFTime( nHandle, dNovaData, cNovaHora )
Posted: Thu Jun 04, 2026 7:47 am
by karinha
Thank you very much Enrico. Perfecto con XHARBOUR.
Code: Select all | Expand
// 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 - [email protected]
// 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.