symbolic paths and opening files

Here is the Macro I wrote. It  calls loadtrace on all files in folder called pathname, then load and process all files in a given folder.

However, when I type the command for example loadODMRtraces("C:\Users\BurkeLab\Desktop\070824"), it gives me an error saying that no symbolic path of that name. How could I fix this bug. Thanks!

Macro loadODMRtraces(pathname)
	// calls loadtrace on all files in folder called pathname
	// Load and process all files in a given folder.
	//   The folder is specified by pathName which becomes a dialog	
	//   if no input is given.
	//   YOU MUST INCLUDE #include <Strings as Lists>
	//   SOMEWHERE IN YOUR PROCEDURE, AS THIS MACRO
	//   CALLS SUBROUTINES FROM THAT INCLUDE FILE.
	String pathName	//  name of symbolic path or "" to get dialog
	variable/d numfiles
	String filename
	PauseUpdate; Silent 1	// Processing files . . . 
	Variable index=0
	variable/d tracenum
	if (strlen(pathName)==0)			// if no path specified, create one
		NewPath/O temporaryPath		// this will put up a dialog
		pathName = "temporaryPath"
	endif
	print IndexedFile($pathName,-1,"????")
	do
		fileName = IndexedFile($pathName, index, ".csv")
		if (strlen(fileName)==0)
			break // break out of loop
		endif
//		Assume file name is of form mmddyyc.xxxx, where x is a number. Strip off the number.
		tracenum = str2num(filename[7,10])
		loadODMRtrace(tracenum,filename,pathname)
		print index,filename,tracenum
		index += 1
	while(1)
	if (Exists("temporaryPath"))			// kill temp path if it exists
		KillPath temporaryPath
	endif
EndMacro

 

You are confusing symbolic path names with file path values.

Enter this command for a more thorough explanation that I can give here:

DisplayHelpTopic "Symbolic Paths"

Also, this comment:

    //   YOU MUST INCLUDE #include <Strings as Lists>
    //   SOMEWHERE IN YOUR PROCEDURE, AS THIS MACRO
    //   CALLS SUBROUTINES FROM THAT INCLUDE FILE.

Is relevant to only a very ancient version of Igor, and hasn't been needed since Igor 3 or so.

Now, maybe loadODMRtrace() does rely on that ancient Strings as Lists procedure file; it should be updated to use the built-in functions such as StringFromList() and ItemsInList(), etc.