
The waves in the legend are out of order.

calichem
I understand that this depends on the order that the waves were loaded into the program.
Is there an alternative to IndexedFile($pathName, index, "????") that would return waves in an abc# order? Or will I have to reorder the list on my own?
For example, currently Print IndexedFile($pathName,-1,"????") returns
il040904_4.txt;
il040904_1.txt;
il040904_2.txt;
il040904_3.txt;
il040904_9.txt;
il040904_8.txt;
il040904_5.txt;
il040904_10.txt; etc
Function LoadYWavesFromFolder(pathName) String pathName //get file path if (strlen(pathName) == 0) NewPath/O/M="Choose a folder containing dat files. . . " IndexedFilePath if (V_flag != 0) return -1 // User cancelled endif pathName = "IndexedFilePath" endif Variable index = 0 do String fileName = IndexedFile($pathName, index, "????") if (strlen(fileName) == 0) break // No more files. endif LoadWave/J/D/O/Q/K=1/L={0,0,0,1,1}/N=temp/P=$pathName fileName //parsing filename if (V_flag > 0) String name = StringFromList(0, S_waveNames) Wave w = $name String tempName = S_fileName tempName = ParseFilePath(3, S_fileName, ":", 0, 0) // Copy basename tempName = LowerStr(tempName) String extension = ParseFilePath(4,S_filename,":",0,0) // Copy extension extension = LowerStr(extension) String desiredName desiredName = tempName + "_" + extension + "y" if (Exists(desiredName) != 0) desiredName = UniqueName(desiredName, 1, 0) endif Rename w, $desiredName endif index += 1 while (1) printf ":: Done Loading\r" return 0 End
The order in which IndexedFile returns the files depends on the operating system.
You can sort the list and process the files in sorted order like this:
April 10, 2012 at 12:11 pm - Permalink
:: Thumbs up
April 10, 2012 at 06:02 pm - Permalink
I wrote this:
I should have written this:
To see the difference, execute:
This prints:
The examples for SortList show that the numeric sort (2) is intended for when the list contains only numbers while the other one (16) is intended for cases like yours where you have a name followed by a number and you want the number to be treated numerically rather than alphabetically in the sort if the name for two items is the same.
April 12, 2012 at 11:18 am - Permalink