Dateidatum und -zeit

Übersicht BlitzBasic DLLs und Userlibs

Neue Antwort erstellen

 

OJay

Betreff: Dateidatum und -zeit

BeitragDi, Feb 10, 2004 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
blub: Dateidatum und -zeit ermitteln.


et voila:


Code: [AUSKLAPPEN]
Const GENERIC_READ     = $80000000
Const GENERIC_WRITE    = $40000000
Const FILE_SHARE_READ  = 1
Const FILE_SHARE_WRITE = 2
Const OPEN_EXISTING    = 3

Const Accessed         = 1
Const Creation         = 2
Const LastWrite        = 3




;--- the test code

Filename$="e:\main.html"

Print Filename$
Print  " Last Accessed " + GetFileTime(Filename$,Accessed)
Print  " Creation Time " + GetFileTime(Filename$,Creation)
Print  " Last Written to " +GetFileTime(Filename$,LastWrite)

WaitKey()
End




Function GetFileTime$(Filename$,TimeMode,LocalTime=True)
;  ADAmor ZILTCH 2 july 2003
;  version 1.1

  FileHandle = CreateFile(Filename$, GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0)

  If FileHandle = 0 Then Return

  FiletimeBank      = CreateBank(16)
  LocalFiletimeBank = CreateBank(16)

  Select TimeMode

    Case Accessed
     fail = GetFileAccessTime(FileHandle,0,Filetimebank,0)
    Case Creation
     fail = GetFileCreationTime(FileHandle,Filetimebank,0,0)
    Case LastWrite
     fail = GetFileLastWriteTime(FileHandle,0,0,Filetimebank)

  End Select

  If fail=0 Then
      CloseHandle(FileHandle)
      FreeBank LocalFiletimeBank
      FreeBank FiletimeBank
      Return
  End If
 
  FileSysTimeBank = CreateBank(16)
 
  If LocalTime Then
    FileTimeToLocalFileTime%(FiletimeBank,LocalFiletimeBank)
    FileTimeToSystemTime(LocalFiletimeBank,FileSysTimeBank)
  Else
    FileTimeToSystemTime(FiletimeBank,FileSysTimeBank)
  End If




  CloseHandle(FileHandle)

  wYear% = PeekShort(FileSysTimeBank,0)
  wMonth% = PeekShort(FileSysTimeBank,2)
; wDayOfWeek% = peekshort(FileSysTimeBank,4)
  wDay% = PeekShort(FileSysTimeBank,6)
  wHour%= PeekShort(FileSysTimeBank,8)
  wMinute%= PeekShort(FileSysTimeBank,10)
  wSecond%= PeekShort(FileSysTimeBank,12)
  wMilliseconds%= PeekShort(FileSysTimeBank,14)

  Filetime$ =  wYear+ "/" +wMonth+ "/" +wDay+ " " +wHour+ ":" +wMinute+ ":" +wSecond;+ " :" +wMilliseconds%

  FreeBank LocalFiletimeBank
  FreeBank FiletimeBank
  FreeBank FileSysTimeBank

  Return Filetime

End Function
 



denkt mir ja an die userlibs! Laughing
 

judos

BeitragDi, Jul 13, 2004 17:37
Antworten mit Zitat
Benutzer-Profile anzeigen
weisst du ich glaub ich kenn da ein befehl namens currenttime und currentdate...

BladeRunner

Moderator

BeitragDi, Jul 13, 2004 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Weisst Du, Judos, diese Befehle nutzen dir nichts wenn du das Erstellungsdatum einer Datei haben willst Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Xenon

Betreff: Re: Dateidatum und -zeit

BeitragFr, Feb 25, 2005 16:13
Antworten mit Zitat
Benutzer-Profile anzeigen
OJay hat Folgendes geschrieben:
denkt mir ja an die userlibs! Laughing


Tja gerade DIE hast du vergessen ^^

Da ich das aber brauche musste ich jetzt selbst forschen, außerdem hab ich die Funktion ein wenig umgeschrieben, um sie etwas "sicherer" für globale variablen zu machen...

hier die decls:

http://blitzbasic.com/codearcs...?code=1180

hier der neue code:

Code: [AUSKLAPPEN]
Const GENERIC_READ = $80000000
Const GENERIC_WRITE = $40000000
Const FILE_SHARE_READ = 1
Const FILE_SHARE_WRITE = 2
Const OPEN_EXISTING = 3

Const Accessed = 1
Const Creation = 2
Const LastWrite = 3


Function getfiletime$(Filename$,TimeMode,LocalTime=True)
   Local FileHandle = api_CreateFile(Filename$, GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0)

   If FileHandle = 0 Then Return

   Local FiletimeBank = CreateBank(16)
   Local LocalFiletimeBank = CreateBank(16)

   Select TimeMode
   Case Accessed
      fail = api_GetFileTime(FileHandle,0,Filetimebank,0)
   Case Creation
      fail = api_GetFileTime(FileHandle,Filetimebank,0,0)
   Case LastWrite
      fail = api_GetFileTime(FileHandle,0,0,Filetimebank)
   End Select

   If fail=0 Then
      CloseHandle(FileHandle)
      FreeBank LocalFiletimeBank
      FreeBank FiletimeBank
      Return
   End If

   Local FileSysTimeBank = CreateBank(16)

   If LocalTime Then
      api_FileTimeToLocalFileTime%(FiletimeBank,LocalFiletimeBank)
      api_FileTimeToSystemTime(LocalFiletimeBank,FileSysTimeBank)
   Else
      api_FileTimeToSystemTime(FiletimeBank,FileSysTimeBank)
   End If

   CloseHandle(FileHandle)

   Local wYear% = PeekShort(FileSysTimeBank,0)
   Local wMonth% = PeekShort(FileSysTimeBank,2)
   ; wDayOfWeek% = peekshort(FileSysTimeBank,4)
   Local wDay% = PeekShort(FileSysTimeBank,6)
   Local wHour%= PeekShort(FileSysTimeBank,8)
   Local wMinute%= PeekShort(FileSysTimeBank,10)
   Local wSecond%= PeekShort(FileSysTimeBank,12)
   Local wMilliseconds%= PeekShort(FileSysTimeBank,14)

   Local Filetime$ = wYear+ "/" +wMonth+ "/" +wDay+ " " +wHour+ ":" +wMinute+ ":" +wSecond;+ " :" +wMilliseconds%

   FreeBank LocalFiletimeBank
   FreeBank FiletimeBank
   FreeBank FileSysTimeBank

   Return Filetime
End Function

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, Mai 02, 2005 20:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich bekomme immer ein Memory accsess v... Fehler in der ersten Zeile der Function!

Was mach ich falsch?
(decls ist im Lib Ordner und die Function CloseHandle(FileHandle) habe ich auch schon in Api_CloseHandle(FileHandle) umbenannt)
Mein TestCode: BlitzBasic: [AUSKLAPPEN]
Filename$=\"c:/main.html\" 

Print Filename$
If FileType (Filename$) = 0 Then RuntimeError \"Erstell die Datei doch erst mal!\"
Print \" Last Accessed \" + GetFileTime(Filename$,Accessed)
Print \" Creation Time \" + GetFileTime(Filename$,Creation)
Print \" Last Written to \"+ GetFileTime(Filename$,LastWrite)

WaitKey()
End


jemand eine Idee?
[BB2D | BB3D | BB+]

Ironstorm

Erstklassiger Contest-Veranstalter

BeitragFr, Jul 01, 2005 21:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Rallimen hat Folgendes geschrieben:
BlitzBasic: [AUSKLAPPEN]
Filename$=\"c:/main.html\"


Musst du da nicht statt "C:/", "C:\" schreiben? War mir jedenfalls so. Sonst sehe ich nichts.

Blitzmaker
..:: blackbird design : blackbird photography : Futuro Verde : X-Commander ::..
MacBook | Intel Core 2 Duo 2,1 GHz | 2048 MB RAM | 80 GB HDD | Mac OS X 10.6.2 (Snow Leopard) | Adobe CS4 Design Premium

blitzmaster

BeitragSo, Jul 03, 2005 13:17
Antworten mit Zitat
Benutzer-Profile anzeigen
ob c:\ oder c:/ müsste eigentlich egal sein...
***************
Blitzmaster

ToeB

BeitragSo, Jun 20, 2010 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Sry dass ich den Threath noch mal auspacken muss aber da steht das er "CloseHandle" nicht finden kann obwohl sie in der "kernel32.decls" steht !?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Xaymar

ehemals "Cgamer"

BeitragSo, Jun 20, 2010 22:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil die in der kernel32.decls api_CloseHandle heißt? (zumindest wenn du http://blitzbasic.com/codearcs...?code=1180 verwendest)

ToeB

BeitragMo, Jun 21, 2010 14:21
Antworten mit Zitat
Benutzer-Profile anzeigen
ja aber da steht ja trotzdem dahinter
Code: [AUSKLAPPEN]
"CloseHandle"

Würd ich mal sagen das das sagt wie die Function in Blitz aufgerufen wird.

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

BtbN

BeitragMo, Jun 21, 2010 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, das sagt, wie die Funktion in der DLL heisst.

ToeB

BeitragMo, Jun 21, 2010 15:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso okay danke !

Einen anderen weg gibt es nicht oder ? Also ohne Dll ?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

ICE TRUCK

BeitragDi, Jun 22, 2010 0:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieso ohne DLL ? Die DLLs sind doch auf jedem Betriebssystem schon drauf wieso sollte das stören? Viele BB Befehle sind von den DLLs abhängig, da stört dich die eine Abhängigkeit sicher noch weniger.

ToeB

BeitragDi, Jun 22, 2010 11:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein das meine ich nicht Smile

Ich brauche das für meine SimpleUDP. Ich hab nur keine Lust noch eine zusätzliche Decls mitzuschicken.

Oder kann ich die decls auch zusammenfassen ? Also so
Code: [AUSKLAPPEN]
.lib ""
UDP_HostGame(blabla)
... Meine Befehle
.lib "kernel32.dll"
api_closeHandle()



Also dass ich meine befehle habe und trotzdem noch die nötigen aus der Kernel32.decls reinschreibe ?

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Eingeproggt

BeitragDi, Jun 22, 2010 11:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Schau dir doch mal an was dein Partner Chrise für sein LamaNet gemacht hat - dann wirst du sehen: ja das geht Wink
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

ToeB

BeitragDi, Jun 22, 2010 16:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay danke Wink

Ich hab jetzt aber einen Fehler von dem ich keine ahnung habe (MAV) :
Code: [AUSKLAPPEN]
filehandle = api_CreateFile( path$, GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0 )


path$ exestiert , ist aber relativ. Muss der pfad absolut sein ?=

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Silver_Knee

BeitragDi, Jun 22, 2010 23:24
Antworten mit Zitat
Benutzer-Profile anzeigen
probiers aus. Einfach CurrentDir davor

Neue Antwort erstellen


Übersicht BlitzBasic DLLs und Userlibs

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group