OK here's my entry. Phew that took a long time! (The file access system that is) OK in it you can move the slider click under the slider to move it down, use the arrows, use the mouse wheel, use arrow keys, use the enter key, double click and go to the parent folder. The word counter includes progress, maximum file lenth, minimum file lenth, average file and past ten words scaned(just an extra thing to make it look nice) Here it is:
sync on
set display mode 400,300,16
rem If you want you can put window mode on
`set window on
dim wordlenth(1000000)
dim word$(10)
maxfiletypes=2
dim filetypes$(2)
dim file$(1)
filetypes$(1)="txt"
filetypes$(2)="dat"
directory$="C:documents and settingsabcmy documents"
do
if filename$="" then directory$="C:documents and settingsabcmy documents" else directory$=parentfolder$(filename$)
filename$=fileaccess(directory$,maxfiletypes)
words=0
undim wordlenth(1000000)
undim word$(10)
dim wordlenth(1000000)
dim word$(10)
word$=""
bytesscanes=0
open to read 1,filename$
while file end(1)=0
cls
word$=""
wordlenth=0
repeat
read byte 1,chrASCII
until letter(chrASCII)=1 or file end(1)=1
if file end(1)=1 then exit
repeat
wordlenth=wordlenth+1
word$=word$+chr$(chrASCII)
read byte 1,chrASCII
until letter(chrASCII)=0 or file end(1)=1
if file end(1)=1 then exit
words=words+1
for i=1 to 9
word$(i)=word$(i+1)
next i
word$(10)=word$
wordlenth(words)=wordlenth
maxlenth=0
minlenth=0
totallenth=0
for i=1 to words
if wordlenth(i)>maxlenth then maxlenth=wordlenth(i)
totallenth=totallenth+wordlenth(i)
next i
minlenth=maxlenth
for i=1 to words
if wordlenth(i)<minlenth then minlenth=wordlenth(i)
next i
avglenth=totallenth/words
for i=1 to 10
ink rgb(i*25,i*25,255),0
text 300-text width(word$(i)),i*15-15,word$(i)
next i
ink rgb(0,0,255),0
text 0,0,"words so far: "
text 0,15,"Maximum lenth so far: "
text 0,30,"Minimum lenth so far: "
text 0,45,"Average lenth so far: "
ink rgb(255,255,255),0
text 180-text width(str$(avglenth)),45,str$(avglenth)
text 180-text width(str$(minlenth)),30,str$(minlenth)
text 180-text width(str$(maxlenth)),15,str$(maxlenth)
text 180-text width(str$(words)),0,str$(words)
sync
endwhile
close file 1
cls
maxlenth=0
minlenth=0
totallenth=0
for i=1 to words
if wordlenth(i)>maxlenth then maxlenth=wordlenth(i)
totallenth=totallenth+wordlenth(i)
next i
minlenth=maxlenth
for i=1 to words
if wordlenth(i)<minlenth then minlenth=wordlenth(i)
next i
if words>0 then avglenth=totallenth/words
ink rgb(0,0,255),0
text 0,0,"words: "
text 0,15,"Maximum lenth: "
text 0,30,"Minimum lenth: "
text 0,45,"Average lenth: "
text 0,60,"Press space to scan another..."
ink rgb(255,255,255),0
text 180-text width(str$(avglenth)),45,str$(avglenth)
text 180-text width(str$(minlenth)),30,str$(minlenth)
text 180-text width(str$(maxlenth)),15,str$(maxlenth)
text 180-text width(str$(words)),0,str$(words)
suspend for key
loop
function letter(ASCII)
letter=0
if ASCII>=65 and ASCII<=90 or ASCII>=97 and ASCII<=122 or ASCII>=176 and ASCII<=255 then letter=1
endfunction letter
function fileaccess(directory$,maxfiletypes)
x=90
y=50
filename$=""
while filename$=""
decision=0
set dir directory$
perform checklist for files
nooffiles=checklist quantity()
undim file$(1)
dim file$(nooffiles)
sort1=1
for i=1 to nooffiles
temp$=checklist string$(i)
if getfiletype$(temp$)=temp$
file$(sort1)="[+]"+temp$
sort1=sort1+1
endif
next i
for i=1 to nooffiles
for j=1 to maxfiletypes
temp$=checklist string$(i)
if getfiletype$(temp$)=filetypes$(j)
file$(sort1)="[T]"+checklist string$(i)
sort1=sort1+1
endif
next i
next i
for i=1 to nooffiles
if (getfiletype$(checklist string$(i))=checklist string$(i))=0
for j=1 to maxfiletypes
if getfiletype$(checklist string$(i))=filetypes$(j) then goto Endfilesort
next i
file$(sort1)="[X]"+checklist string$(i)
sort1=sort1+1
endif
Endfilesort:
next i
file=1
list=1
select=1
while decision=0
cls
file=list+select-1
if upkey()=1 and file>1
if upK=0
upK=1
file=file-1
if select=1 and list>1 then list=list-1
if select>1 then select=select-1
Ucount=40
endif
Ucount=Ucount-1
if Ucount<0
file=file-1
if select=1 and list>1 then list=list-1
if select>1 then select=select-1
Ucount=2
endif
else
upK=0
endif
if downkey()=1 and file<nooffiles
if dnK=0
dnK=1
file=file+1
if select=10 and list<nooffiles then list=list+1
if select<10 then select=select+1
Dcount=40
endif
Dcount=Dcount-1
if Dcount<0
file=file+1
if select=10 and list<nooffiles then list=list+1
if select<10 then select=select+1
Dcount=2
endif
else
dnK=0
endif
if mousemovez()>oldmousemovez and file>1
file=file-1
if select=1 and list>1 then list=list-1
if select>1 then select=select-1
oldmousemovez=mousemovez()
endif
if mousemovez()<oldmousemovez and file<nooffiles
file=file+1
if select=10 and list<nooffiles then list=list+1
if select<10 then select=select+1
oldmousemovez=mousemovez()
endif
if returnkey()=1 and decisionmadetime<1 then decision=2
if mouseclick()=1
if mousex()>x-1 and mousey()>y+166 and mousex()<x+108 and mousey()<y+186 and decisionmadetime<1 then decision=1
if mousex()>x+108 and mousey()>y+166 and mousex()<x+215 and mousey()<y+186 and decisionmadetime<1 then decision=2
for i=1 to 10
if mousex()>x and mousey()>i*15+y and mousex()<200+x and mousey()<(i+1)*15+y
if doubleclickcount>0 and mouseclick=0 then decision=2
doubleclickcount=20
file=list+i-1
select=i
endif
next i
if mousex()>x+203 and mousey()>y+16+sliderpos# and mousex()<x+213 and mousey()<y+16+sliderpos#+slidersize# and nooffiles>19
sliderhold=1
endif
if mousex()>x+204 and mousey()>y+2 and mousex()<x+212 and mousey()<y+12 and file>1
file=file-1
if select=1 and list>1 then list=list-1
if select>1 then select=select-1
endif
if mousex()>x+204 and mousey()>y+153 and mousex()<x+212 and mousey()<y+163 and file<nooffiles
file=file+1
if select=10 and list<nooffiles then list=list+1
if select<10 then select=select+1
endif
if mousex()>x+201 and mousey()>y+14 and mousex()<x+215 and mousey()<y+150 and blankclick<1 and nooffiles>10
if mousey()<y+16+sliderpos#
if list>10
file=file-10
list=list-10
blankclick=10
else
if list=1
select=1
endif
list=1
file=1
blankclick=10
endif
tslider=0
endif
if mousey()>y+16+sliderpos#+slidersize#
if list<nooffiles-10
file=file+10
list=list+10
if list>nooffiles-9 then list=nooffiles-9
blankclick=10
else
list=nooffiles-9
file=nooffiles
select=10
blankclick=10
endif
bslider=0
endif
endif
endif
blankclick=blankclick-1
doubleclickcount=doubleclickcount-1
if mouseclick()=1 then mouseclick=1 else mouseclick=0
if mouseclick()<>1 then sliderhold=0
if sliderhold=1
mosy1#=mousey()-(y+16)
listsize#=(nooffiles-10)
temp#=mosy1#/122
listr#=temp#*listsize#
list=listr#
if list<1 then list=1
if list>nooffiles-10 then list=nooffiles-10
endif
set text font "system"
for i=1 to 10
if select=i
ink rgb(0,0,255),0
box x,i*15+y,200+x,(i+1)*15+y
endif
ink rgb(255,255,255),0
if (list+i-1)<=nooffiles then text x,i*15+y,file$(list+i-1)
next i
text (x+200)-text width(directory$+""),y,directory$+""
ink rgb(0,0,255),0
box x,y+168,x+106,y+184
box x+110,y+168,x+213,y+184
ink rgb(255,255,255),0
center text x+54,y+168,"Parent folder"
center text x+162,y+168,"OK"
ink 0,0
box 200+x,y,399,165+y
box 0,y,x,y+200
ink rgb(255,255,255),0
linebox(x-1,y+14,x+201,y+166)
linebox(x-1,y-1,x+201,y+14)
linebox(x+201,y+14,x+215,y+150)
linebox(x+201,y-1,x+215,y+14)
linebox(x+201,y+150,x+215,y+166)
linebox(x-1,y+166,x+108,y+186)
linebox(x+108,y+166,x+215,y+186)
linetriangle(x+204,y+12,x+212,y+12,x+208,y+2)
linetriangle(x+204,y+153,x+212,y+153,x+208,y+163)
if nooffiles>10
listr#=list
checklistquantityr#=nooffiles
sliderpos#=listr#/(checklistquantityr#-10)
if nooffiles<20 then sliderpos#=sliderpos#-1
sliderpos#=sliderpos#*122
slidersize#=10
if list=nooffiles-9 then sliderpos#=122
if sliderpos#>122 then sliderpos#=122
if sliderpos#<0 then sliderpos#=0
endif
if nooffiles>10 then box x+203,y+16+sliderpos#,x+213,y+16+sliderpos#+slidersize# else box x+203,y+16,x+213,y+148
ink rgb(0,0,255),0
if nooffiles>10
if tslider=1 then box x+203,y+16,x+213,y+14+sliderpos#
if bslider=1 then box x+203,y+18+sliderpos#+slidersize#,x+213,y+148
endif
tslider=1
bslider=1
decisionmadetime=decisionmadetime-1
sync
endwhile
if decision=1 then directory$=parentfolder$(directory$)
if decision=2
filen$=file$(file)
if left$(filen$,3)="[T]" then filename$=directory$+""+right$(filen$,len(filen$)-3) : goto endfileload
if left$(filen$,3)="[+]" then directory$=directory$+""+right$(filen$,len(filen$)-3) : goto endfileload
if left$(filen$,3)="[X]"
cls
ink rgb(0,0,255),0
center text 320,240,"Error - Invalid File type!"
sleep 2000
goto endfileload
endif
endif
endfileload:
decisionmadetime=10
sync
endwhile
endfunction filename$
function linebox(x1,y1,x2,y2)
line x1,y1,x1,y2
line x1,y2,x2,y2
line x2,y2,x2,y1
line x2,y1,x1,y1
endfunction
function linetriangle(x1,y1,x2,y2,x3,y3)
line x1,y1,x2,y2
line x2,y2,x3,y3
line x3,y3,x1,y1
endfunction
function getfiletype$(filename$)
filetype$=""
for i=len(filename$) to 1 step -1
if mid$(filename$,i)="." then goto filetypeend else filetype$=mid$(filename$,i)+filetype$
next i
filetypeend:
endfunction filetype$
function parentfolder$(directory$)
foldernamesize=0
for i=len(directory$) to 1 step -1
foldernamesize=foldernamesize+1
if mid$(directory$,i)="" or mid$(directory$,i)="/" then goto parentfolderend
next i
parentfolderend:
if foldernamesize=len(directory$) then foldernamesize=0
parentfolder$=left$(directory$,(len(directory$)-foldernamesize))
endfunction parentfolder$

Nothing is impossible...
No really, it isn't.