'------------------------------------------------------------------------------------- ' Accessory functions/subs for ComicDir2Cbr '------------------------------------------------------------------------------------- ' FUNCTION EXIST(BYVAL fileOrFolder AS STRING) AS LONG ' SUB FILECOPYX (src AS STRING, dst AS STRING) ' if dst exist, replace it ' MACRO FOLDERCOPY(f, path) ' FUNCTION FNAME(fullpath AS STRING) AS STRING ' File Name ' FUNCTION DQP(fullpath AS STRING) AS STRING ' Double Quote Protect ' FUNCTION WHATSINQUOTE(str AS STRING) AS STRING ' FUNCTION FILESIZE(file AS STRING) AS LONG ' SUB REPLACEinFILE(file AS STRING, src AS STRING, tgt AS STRING) ' SUB DUMP2FILE(buf AS STRING, file AS STRING) ' FUNCTION SIZEKB(fs AS LONG) AS STRING ' File size, in B, KB or MB ' FUNCTION LocalAppData AS STRING ' FUNCTION RoamingAppData AS STRING ' FUNCTION HasPngs(folder AS STRING) AS LONG ' FUNCTION HasJpgs(folder AS STRING) AS LONG '------------------------------------------------------------------------------------- #INCLUDE ONCE "shfolder.inc" '------------------------------------------------------------------------------------- FUNCTION EXIST(BYVAL fileOrFolder AS STRING) AS LONG LOCAL Dummy& Dummy& = GETATTR(fileOrFolder) FUNCTION = (ERRCLEAR = 0) END FUNCTION '------------------------------------------------------------------------------------- SUB FILECOPYX (src AS STRING, dst AS STRING) IF EXIST(dst) THEN KILL dst FILECOPY src, dst END SUB '------------------------------------------------------------------------------------- MACRO FOLDERCOPY(f, path) MKDIR path + f t = DIR$(f + "*.*") WHILE LEN(t) > 0 FILECOPYX f + t, path + f + t t = DIR$(NEXT) WEND DIR$ CLOSE END MACRO '------------------------------------------------------------------------------------- FUNCTION FNAME(fullpath AS STRING) AS STRING ' File Name IF INSTR(fullpath, "\") = 0 THEN FUNCTION = fullpath ELSE _ FUNCTION = PARSE$(fullpath, "\", PARSECOUNT(fullpath, "\")) END FUNCTION '------------------------------------------------------------------------------------- FUNCTION DQP(fullpath AS STRING) AS STRING ' Double Quote Protect IF INSTR(fullpath, $SPC) > 0 THEN FUNCTION = $DQ + fullpath + $DQ ELSE FUNCTION = fullpath END FUNCTION '------------------------------------------------------------------------------------- FUNCTION WHATSINQUOTE(str AS STRING) AS STRING FUNCTION = PARSE$(str, $DQ, 2) END FUNCTION '------------------------------------------------------------------------------------- FUNCTION FILESIZE(file AS STRING) AS LONG LOCAL ff, fs AS LONG ff = FREEFILE OPEN file FOR BINARY ACCESS READ LOCK SHARED AS #ff fs = LOF(#ff) CLOSE #ff FUNCTION = fs END FUNCTION '------------------------------------------------------------------------------------- SUB REPLACEinFILE(file AS STRING, src AS STRING, tgt AS STRING) LOCAL ff AS LONG LOCAL buf AS STRING ff = FREEFILE OPEN file FOR BINARY ACCESS READ LOCK SHARED AS #ff : GET$ #ff, LOF(#ff), buf : CLOSE #ff REPLACE src WITH tgt IN buf KILL file ff = FREEFILE OPEN file FOR BINARY ACCESS WRITE AS #ff : PUT$ #ff, buf : CLOSE #ff END SUB '------------------------------------------------------------------------------------- SUB DUMP2FILE(buf AS STRING, file AS STRING) LOCAL ff AS LONG KILL file ff = FREEFILE OPEN file FOR BINARY ACCESS WRITE AS #ff : PUT$ #ff, buf : CLOSE #ff END SUB '------------------------------------------------------------------------------------- FUNCTION SIZEKB(fs AS LONG) AS STRING ' File size, in B, KB or MB LOCAL n AS LONG n = fs ' filesize IF n < 1024 THEN FUNCTION = FORMAT$(n) + " B" ELSE n \= 1024 IF n < 1024 THEN FUNCTION = FORMAT$(n) + " KB" ELSE n \= 1024 FUNCTION = FORMAT$(n) + " MB" END IF END IF END FUNCTION '------------------------------------------------------------------------------------- FUNCTION LocalAppData AS STRING LOCAL szBaseFolder AS ASCIIZ * %MAX_PATH ShGetFolderPath (BYVAL 0, %CSIDL_LOCAL_APPDATA, BYVAL 0, BYVAL 0, szBaseFolder) FUNCTION = TRIM$(szBaseFolder) + "\" END FUNCTION '------------------------------------------------------------------------------------- FUNCTION RoamingAppData AS STRING LOCAL e AS STRING e = LCASE$(LocalAppData()) REPLACE "\local\" WITH "\roaming\" IN e FUNCTION = e END FUNCTION '------------------------------------------------------------------------------------- FUNCTION HasExt(folder AS STRING, extension AS STRING) AS LONG LOCAL f, xt, e AS STRING LOCAL n AS LONG f = RTRIM$(folder, "\") + "\" xt = "." + LTRIM$(extension, ".") e = DIR$(f + "*" + xt) WHILE ISTRUE LEN(e) AND n <= 1 INCR n e = DIR$(NEXT) WEND DIR$ CLOSE FUNCTION = (n > 1) END FUNCTION '------------------------------------------------------------------------------------- FUNCTION HasPngs(folder AS STRING) AS LONG FUNCTION = HasExt(folder, ".png") END FUNCTION '------------------------------------------------------------------------------------- FUNCTION HasJpgs(folder AS STRING) AS LONG FUNCTION = HasExt(folder, ".jpg") END FUNCTION '-------------------------------------------------------------------------------------