MarkShot
Posts: 7089
Joined: 3/29/2003 Status: offline
|
He he if you read code or someone wants to convert this to VB ... quote:
;******************************************** ; AGE Archiving Utility ; ; Mark Kratzer on 06/22/06 (revised 06/22/06) ;******************************************** ; ----- Definitions ----- AGESaveDir = "E:\Games\BoA\BoA\Saves" AGEArchDir = "C:\user\mk\Software\Games\BOA\Archives\" DelayInterval = 15 DelayStabilize = 10 ; ----- Initialize ----- WinTitle(WinName(), "AGEArchiver") AGEGameDir = AskDirectory("Pick game to archive", AGESaveDir, "", "", 0) GoSub LastTurnArchived ; ----- Monitor ----- While @TRUE GoSub LastTurnPlayed If LatestBackupTurn > LatestArchTurn Then Delay(DelayStabilize) ; make sure files stabilize GoSub ArchiveTurn LatestArchTurn = LatestBackupTurn End If Delay(DelayInterval) End While Exit ;--------------------------- ; ----- LastTurnPlayed ----- ;--------------------------- ; ; Returns: ; LatestBackupDir ; LatestBackupTurn :LastTurnPlayed LatestBackupDir = "*undefined*" LatestBackupTurn = 0 DirList = DirItemize(StrCat(AGEGameDir,"*.*")) DirListCount = ItemCount(DirList,@TAB) For I = 1 to DirListCount CurrentDirShort = ItemExtract(I, DirList, @TAB) CurrentDirLong = StrCat(AGEGameDir, CurrentDirShort) CurrentTagFile = FileItemize(StrCat(CurrentDirLong,"/*.tag")) TurnPos = StrIndexNC(CurrentTagFile, "turn", 1, @FWDSCAN)+4 CurrentTurn = StrSub(CurrentTagFile, TurnPos, 3) If CurrentTurn > LatestBackupTurn Then LatestBackupDir = CurrentDirLong LatestBackupTurn = CurrentTurn EndIf Next Return ;----------------------------- ; ----- LastTurnArchived ----- ;----------------------------- ; ; Returns: ; LatestArchDir ; LatestArchTurn :LastTurnArchived LatestArchDir = "*undefined*" LatestArchTurn = 0 DirList = DirItemize(StrCat(AGEArchDir,"*.*")) DirListCount = ItemCount(DirList,@TAB) LatestDir = "*undefined*" For I = 1 to DirListCount CurrentDirShort = ItemExtract(I, DirList, @TAB) CurrentDirLong = StrCat(AGEArchDir, CurrentDirShort) CurrentTagFile = FileItemize(StrCat(CurrentDirLong,"/*.tag")) TurnPos = StrIndexNC(CurrentTagFile, "turn", 1, @FWDSCAN)+4 CurrentTurn = StrSub(CurrentTagFile, TurnPos, 3) If CurrentTurn > LatestArchTurn Then LatestArchDir = CurrentDirLong LatestArchTurn = CurrentTurn EndIf Next Return ;------------------------ ; ----- ArchiveTurn ----- ;------------------------ ; ; Creates an archive of a turn :ArchiveTurn ; ----- Generate a meaningful file name ----- GameYear = 1750+((LatestBackupTurn-1)/12) GameMonth = StrFixLeft(((LatestBackupTurn-1) mod 12)+1, "0", 2) GameDate = StrCat(GameYear, "_", GameMonth) ; ----- Create and populate the archive ----- ArchiveDir = StrCat(AGEArchDir, GameDate) DirMake(ArchiveDir) FileSource = StrCat(LatestBackupDir, "\*.*") FileCopy(FileSource, ArchiveDir, @FALSE) ; ----- Advise ----- Beep() Delay(1) Beep() Delay(1) Beep() Return
_____________________________
(於 11/13/21 台北,台灣,中國退休)
|