Agnes,
Try this - seems to sort like windows explorer (if this does not work>> then plan C - Regular expressions)
ofs = CreateObject("Scripting.FileSystemObject")
folder = ofs.GetFolder('d:\tmp\')
for each file in folder.Files
?file.Name
endfor
>Hi Gregory,
>
>it was example only. ::)
>
>Anyway, it seems not that easy
>
>it sorts like
>0A.txt
>1.1.txt
>1.txt
>1A.txt
>9A.txt
>10.txt
>11A.txt
>111.txt
>A.txt
>
>so I can not simple swap the characters. Infact, I can not see a dynamic way like index to do this. It would require a "key column" and a special run to order it. (just like the explorer, it does not sort on the fly.
>
>
>Hm now I run into StrCmpLogicalW but this compares two strings, not sorting an array. Does this realy mean I have to do the sorting myself?
>
>>hi Agnes,
>>
>>I would include lower case as well (verify the strings)
>>
>>
>>>INDEX ON chrtran(c1,'ABCDEFGHIJKLMNIOQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789','0123456789ABCDEFGHIJKLMNIO0123456789ABCDEFGHIJKLMNIOQRSTUVWXYZ') TAG _c2
>>
>>
>>>Hi Gregory,
>>>
>>>that seems to be the start.
>>>
>>>I think I will simply use something like
>>>
>>>INDEX ON chrtran(c1,'ABCDEFGHIJKLMNIOQRSTUVWXYZ0123456789','0123456789ABCDEFGHIJKLMNIOQRSTUVWXYZ') TAG _c2
>>>
>>>
>>>> ...re-educate the customer...
>>>
>>>I have no idea what to teach them here.
>>>
>>>Agnes
>>>
>>>>Agnes,
>>>>
>>>>The sort order of the Windows Explorer is described here
http://windowsxp.mvps.org/xpsortorder.htm>>>>
>>>>The only way out for you is to have an extra field in your cursor with the filename strtran() in such a way that the digits come after the alphabet
>>>>eg map
>>>>a, A to hex 01
>>>>b, B to hex 02
>>>>...
>>>>
>>>>0 to 0x01 + 0x20 or so
>>>>
>>>>Then the index has to be Machine
>>>>
>>>>
>>>>Then you have to watch out for the accented chars + eszet
>>>>
>>>>You can try to re-educate the customer...
Gregory