File "ComicDir2Cbr.inc"
Path: /ComicDir2Cbr/inc/ComicDir2Cbr.inc
File size: 5.26 KB
MIME-type: text/plain
Charset: utf-8
'-------------------------------------------------------------------------------------
' 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
'-------------------------------------------------------------------------------------