UtterAccess.com
X   Site Message
(Message will auto close in 2 seconds)

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> Select File With Highest Suffix    
 
   
kespicer
post Dec 17 2007, 09:13 AM
Post #1

UtterAccess Enthusiast
Posts: 87
From: Ft Worth TX



In VBA, I want to use DIR to go thru a folder and return the file which has the highest alphabetical suffix, with "no suffix" being the lowest value.

FILES:

111.doc
222.doc
222A.doc
333.doc
333A.doc
333B.doc

For the examples above, it would return 111.doc (which has no suffix), 222A.doc and 333B.doc.

How can this be done?
Go to the top of the page
 
+
doctor9
post Dec 17 2007, 11:41 AM
Post #2

UtterAccess VIP
Posts: 9,430
From: Wisconsin



This isn't the most memory-efficient logic, but it should work:

1. Set up an array of strings to store all of your filenames, called "strFileName()" for example.
2. Set up an array of strings to store a list of filenames that share the same suffix. Call it strSelectedFiles().
3. Set up an array of strings to be returned as the list of files that have the highest alphabetical suffix, called strReturnedFilenames().
***Find the "no suffix" filenames:
3. Using Left(Right(strFileName(x),5),1) as a way to grab the last character of the filename (assuming all files have a three-character extension), you can determine whether the "suffix" is a letter or a number.
4. If it's a number, add it to the strSelectedFiles() array.
5. Once all of the "no suffix" filenames are in the strSelectedFiles() array, sort them alphabetically, and add the first one in the list to the strReturnedFilenames() array.
6. Clear the strSelectedFiles() array.
***Find the first filename with each lettered suffix:
7. Loop from A to Z
8. Using Left(Right(strFileName(x),5),1) as a way to grab the last character of the filename, determine whether the suffix matches the current letter in the loop.
9. If it's a match, add the filename to the strSelectedFiles() array.
10. Once all of the files have been evaluated, sort the strSelectedFiles() array alphabetically, and add the first one in the list to the strReturnedFilenames() array.
11. End of loop
12. Return the list of filenames in strReturnedFilenames().

Of course, it's not necessary for the strSelectedFiles() array and the strReturnedFilenames() array to contain redundant string data. Instead, you can store an integer that represents the index of the filename in the strFilename() array.

Hope this helps,

Dennis
Go to the top of the page
 
+

Thank you for your support! Reply to this topicStart new topic

Jump To Forum:
 



RSS Go to Top  ·  Lo-Fi Version Time is now: 19th June 2013 - 07:41 AM