home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 8
/
CDASC08.ISO
/
MAJ
/
2046
/
SAMPLE10.BAS
< prev
next >
Wrap
BASIC Source File
|
1993-10-07
|
4KB
|
191 lines
rem
rem Here is another program which is fairly standard in it's
rem use of the Basic language, but which uses some of the advanced
rem Directory commands of BasicBasic.
rem
rem windows size 10,5,70,14
REM THIS PROGRAM ALLOWS THE USER TO SEARCH A DISK LOOKING FOR
REM A GIVEN FILE NAME. IT WILL SEARCH ALL FILES BELOW THE USER
REM ENTERED PATHNAME
REM THIS PROGRAM CAN BE EASILY MODIFIED TO SEARCH ALL FILES FOR
REM A PARTICULAR SEQUENCE OF BYTES
COLOR 7,1
cls
rem
rem Initialize some variables
rem
maxlevel=20
direc=0
dim direc(maxlevel)
dim direcname$(maxlevel)
dlevel=0
numfiles=0
numfound=0
rem
rem get starting directory to search
rem and string to search for
rem
getinput:
LOCATE 5,34
COLOR 1,7
PRINT "FIND FILE";
COLOR 7,1
locate 8,15
print "Enter file name to search for:";
locate 7,15
input "Enter Starting Path: ";firstlevel$
if firstlevel$="" then stop
if len(firstlevel$)=1 then
firstlevel$=firstlevel$+":\"
end if
if right$(firstlevel$,1)<>"\" then
firstlevel$=firstlevel$+"\"
end if
locate 8,15
input "Enter file name to search for: ";st$
ST$=UCASE$(ST$)
sd$=firstlevel$
rem
rem here is where we would check to make sure input strings are OK
rem
newdirectory:
rem
rem Look for first file in new directory
rem
sd$=firstlevel$
for i=1 to dlevel
sd$=sd$+direcname$(i)+"\"
next i
ffname$ = DIR$(sd$+"*.*")
rem
rem Now search each regular file in this directory (there may be none)
rem
nextfile:
IF ffname$ <> "" THEN
numfiles=numfiles+1
locate 10,15
print ffname$;" ";
if ffname$=st$ then
numfound=numfound+1
locate 12,15
print "Found in directory: ";sD$;
locate 13,15
print "Press any key to continue search";
250 if inkey$="" then goto 250
locate 13,15
print " ";
end if
rem
rem If we wanted to look for text in file open it here and search
rem
if inkey$<>"" then stop
ffname$ = DIR$
GOTO nextfile
END IF
rem
rem out of files at this level, look for next subdirectory at this level
rem
lookforsub:
if direc(dlevel)=0 then
rem
rem Look for first sub directory from this level
rem
sd$=firstlevel$
for i=1 to dlevel
sd$=sd$+direcname$(i)+"\"
next i
direc(dlevel)=1
ffname$ = DIR$(sd$+"*.*",5)
if ffname$="." then
ffname$ = DIR$
end if
if ffname$=".." then
ffname$=dir$
end if
else
rem
rem Look for next sub directory from this level
rem
sd$=firstlevel$
for i=1 to dlevel
sd$=sd$+direcname$(i)+"\"
next i
direc(dlevel)=direc(dlevel)+1
ffname$=dir$(sd$+"*.*",5)
if ffname$="." then
ffname$=dir$
end if
if ffname$=".." then
ffname$=dir$
end if
for i=2 to direc(dlevel)
ffname$=dir$
next i
end if
if ffname$="" then
rem
rem come here if no more sub directories at this level
rem
direc(dlevel)=0
direcname$(dlevel)=""
dlevel=dlevel-1
if dlevel>=0 then goto lookforsub
rem
rem come here if no more directories at all
rem
beep
beep
locate 12,15
print "Search Completed . ";numfiles;" files searched ";numfound;" found.";
400 if inkey$="" then goto 400
stop
else
rem
rem come here if have another sub-directory at this level
rem
dlevel=dlevel+1
direcname$(dlevel)=ffname$
goto newdirectory
end if