Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
ADIR, SYS(2000) and Filer all returned wrong results
Message
De
01/12/2006 10:34:35
 
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Versions des environnements
Visual FoxPro:
VFP 8 SP1
OS:
Windows XP
Database:
Visual FoxPro
Divers
Thread ID:
01173982
Message ID:
01174094
Vues:
22
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.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform