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.