Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* $VER: FCount.e v1.00 by Zeb/SLP (09-May-2019) */
- OPT OSVERSION=37
- ENUM ARG_DIR,ARG_PATTERN,ARG_DIRS,ARG_FILES,NUMARGS
- MODULE 'dos/dos'
- DEF dir,dirw[100]:STRING,patw[100]:STRING,dirmode=FALSE,filemode=FALSE,
- rdargs=NIL,args[NUMARGS]:LIST,x,templ,lock,fib:fileinfoblock,rc=0,
- pattern[256]:STRING,er,pat,found=0
- PROC main()
- FOR x:=0 TO NUMARGS-1 DO args[x]:=0
- templ:='DIR,PATTERN,DIRS/S,FILES/S'
- IF (rdargs:=ReadArgs(templ,args,NIL))
- IF args[ARG_DIRS] THEN dirmode:=TRUE
- IF args[ARG_FILES] THEN filemode:=TRUE
- IF (dirmode=FALSE) AND (filemode=FALSE) THEN filemode:=TRUE
- dir:=args[ARG_DIR]
- pat:=args[ARG_PATTERN]
- IF (dir=FALSE) OR (pat=FALSE)
- WriteF('ERROR: required arguments missing\n');
- rc:=20;
- ELSE
- StrCopy(dirw,dir,ALL)
- StrCopy(patw,pat,ALL)
- ParsePatternNoCase(patw,pattern,256)
- IF (lock:=Lock(dirw,ACCESS_READ))
- Examine(lock,fib)
- WHILE (ExNext(lock,fib))
- IF MatchPatternNoCase(pattern,fib.filename)
- IF (fib.direntrytype>0) AND dirmode THEN INC found
- IF (fib.direntrytype<0) AND filemode THEN INC found
- ENDIF
- ENDWHILE
- UnLock(lock)
- WriteF('\d\n',found)
- IF (found>0) THEN rc:=5
- ENDIF
- ENDIF
- FreeArgs(rdargs)
- ENDIF
- ENDPROC rc
- -> $VER: FCount.e v1.00 by Zeb/SLP (09-May-2019)
- CHAR '$VER: FCount v1.00 by Zeb/SLP (09-May-2019)\0'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement