Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Collate problem
Message
From
17/02/2009 07:54:32
 
 
To
17/02/2009 07:29:08
Lutz Scheffler
Lutz Scheffler Software Ingenieurbüro
Dresden, Germany
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Title:
Environment versions
Visual FoxPro:
VFP 9 SP2
Miscellaneous
Thread ID:
01382300
Message ID:
01382314
Views:
27
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
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform