Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
ADIR, SYS(2000) and Filer all returned wrong results
Message
From
01/12/2006 10:34:35
 
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 8 SP1
OS:
Windows XP
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01173982
Message ID:
01174094
Views:
21
This message has been marked as a message which has helped to the initial question of the thread.
Hi Naomi,

We encountered a similar problem using file masks on folders with > 10,000 files. The issue was related to short file names that were automatically generated. The short file name(8.3) matched the mask even though the long file name did not. We resolved by setting the registry key to disable short file name generation.

>Hi everybody,
>
>I decided to start a new thread, which is a continuation of "Invalid subscript reference" thread.
>
>I re-coded my program a minute ago to use sys(2000) instead of ADIR. I have a directory with more than 13K jpg files and I'm trying to search for *e4*.jpg. ADIR, Filer and SYS(2000) all return 112 files where 9 of them do not have e4 as part of the name.
>
>Here are the wrong files returned:
>
>K-NK1648PS.JPG
>W-PT9144OX.JPG
>W-ER3953D.JPG
>W-ER3963D.JPG
>W-TB2302D.JPG
>W-TB2123D.JPG
>W-TB2332D.JPG
>W-TB1207D.JPG
>W-PT9216D.JPG
>
>and here is the test program
>
>	#define crlf CHR(13) + CHR(10)
>*!*	oMyFiler = CREATEOBJECT('Filer.FileUtil')
>*!*	oMyFiler.SearchPath = "t:\jpg"
>*!*	oMyFiler.FileExpression = '*e4*.jpg'
>*!*	oMyFiler.Find(0)
>*!*	=MESSAGEBOX(oMyFiler.Files.Count)
>*!*	_cliptext = ""
>*!*	FOR EACH loFile IN oMyFiler.Files
>*!*		_cliptext = _cliptext + loFile.Name + CRLF
>*!*	NEXT
>=MESSAGEBOX(DIRECTORY("t:\jpg"))
>ltTime = DATETIME()
>_cliptext = ""
>CREATE CURSOR crsTest (FieldName C(50))
>lcFileName = SYS(2000,[t:\jpg\*e4*.jpg]) && All files
>DO WHILE NOT EMPTY(lcFileName)
>*!*	   IF LIKE(UPPER(myStemPart), UPPER(JUSTSTEM(lcFileName))) OR;
>*!*	      LIKE(UPPER(myExtPart), UPPER(JUSTEXT(lcFileName)))
>*!*	
>*!*	   ENDIF
>	WAIT WINDOW NOWAIT m.lcFileName
>	IF NOT "E4" $ UPPER(m.lcFileName)
>		_cliptext = _cliptext + m.lcFileName + CRLF
>		INSERT INTO crsTest VALUES (m.lcFileName)
>	endif
>   lcFileName = SYS(2000,[t:\jpg\*e4*.jpg],1)
>ENDDO
>=MESSAGEBOX(DATETIME() - m.ltTime)
>=MESSAGEBOX(RECCOUNT('crsTest'))
>
>I'm accessing this computer through LogMeIn and the computer is connected to terminal server where the files reside. The connection with the server is not very good from our place.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform