Load All Matrix Files From Folder

Menu "Load Waves"
    "Load All .dat Matrix Files From Folder", LoadAllMatrixFilesFromFolder("", ".dat", 0)
End

//  LoadAllMatrixFilesFromFolder(pathName, extension, makePlots)
//  This function loads each matrix file in a given file folder into Igor.
//  pathName is the name of an Igor symbolic path or "" to get a dialog.
//  The name of each matrix file is assumed to end with the specified file name extension.
//  The output wave name is the file name less the extension.
//  If makePlots is true, a new image plot is created for each matrix.
//
//  NOTE: You may need to change the LoadWave command to fit your file format.
//  Use Data->Load Waves->Load Waves to find the right command and then adjust the LoadWave command below.

Function LoadAllMatrixFilesFromFolder(pathName, extension, makePlots)
    String pathName             // Name of an Igor symbolic path or "" to get a dialog
    String extension                    // File name extension - e.g., "txt" or ".dat"
    Variable makePlots              // 1 to display each matrix in a plot
   
    if (strlen(pathName) == 0)
        NewPath/O/M="Choose a folder containing Matrix Files" LoadIndexedMatrixPath
        if (V_flag != 0)
            return -1               // User cancelled
        endif
        pathName = "LoadIndexedMatrixPath"
    endif
   
    String fileName
    Variable index
   
    index = 0
    do
        fileName = IndexedFile($pathName, index, extension)
        if (strlen(fileName) == 0)
            break           // No more files.
        endif
       
        String matrixName = CleanupName(fileName, 0)
        Variable existsCode = exists(matrixName)
        if (existsCode!=0 && existsCode!=1)
            // matrixName conflicts with some name other than a wave name so make it unique
            matrixName = UniqueName(matrixName, 1, 0)
        endif
       
        String columnInfoStr
        sprintf columnInfoStr, "N='%s';", matrixName
       
        LoadWave/G/D/P=$pathName/O/M/B=columnInfoStr fileName
        Wave matrix = $matrixName           // Create a wave reference
       
        if (makePlots)
            NewImage matrix
        endif
           
        index += 1
    while (1)
End

It is the very procedure I am now seeking. My matrix files (.spe) are generated by Princeton Instruments Camera.
I understand that I have to load .spe files instead of .dat by using this useful procedure "Load All .dat Matrix Files From Folder", and I also noticed that there was a procedure "Winspec.ipf" or "SpeLoader.ipf" available.It can help load .spe files. http://www.igorexchange.com/node/2756
My question here is how to combine these two together to get a new procedure to directly load .spe files. Many thanks.


Make some changes before you have to.

Forum

Support

Gallery

Igor Pro 9

Learn More

Igor XOP Toolkit

Learn More

Igor NIDAQ Tools MX

Learn More