Ignore:
Timestamp:
Jan 30, 2010 12:09:44 AM (13 years ago)
Author:
ajj
Message:

Modifications to NSORT to use data folder methods for dataset handling

  • XML input supported
  • No XML output yet, but preparation work done.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Common/NIST_XML_v40.ipf

    r607 r625  
    1212// Dec 2008 :  
    1313//                       Caveats - Assumes Q in /A and I in /cm 
    14 function LoadNISTXMLData(filestr,doPlot) 
    15         String filestr 
    16         Variable doPlot 
     14// Takes outStr as output name. If outStr is specified then we must load only the first SASData in the firstSASEntry,  
     15// since anything else doesn't make sense. This is a bit of a hack to support NSORT. 
     16 
     17 
     18function LoadNISTXMLData(filestr,outStr,doPlot,forceOverwrite) 
     19        String filestr,outStr 
     20        Variable doPlot,forceOverwrite 
    1721         
    1822         
     
    3539                        String xmlDataFolder,xmlDataSetFolder 
    3640                         
    37                         for (i = 0; i < CountObjects(xmlReaderFolder,4); i+=1) 
     41                        Variable numSASEntries 
     42                         
     43                        if(!cmpStr(outStr,"")) 
     44                                //no outStr defined 
     45                                numSASEntries = CountObjects(xmlReaderFolder,4) 
     46                        else 
     47                                numSASEntries = 1 
     48                        endif 
     49                         
     50                        for (i = 0; i < numSASEntries; i+=1) 
    3851                                                                 
    3952                                xmlDataFolder = xmlReaderFolder+GetIndexedObjName(xmlReaderFolder,4,i)+":" 
    40                                 numDataSets = CountObjects(xmlDataFolder,4) 
     53                                if (!cmpstr(outstr,"")) 
     54                                        numDataSets = CountObjects(xmlDataFolder,4) 
     55                                else 
     56                                        numDataSets = 0 
     57                                endif 
     58                                 
    4159                                if (numDataSets > 0) 
    4260                                        //Multiple SASData sets in this SASEntry 
     
    4866                                         
    4967                                                basestr = CleanupName(getXMLDataSetTitle(xmlDataSetFolder,j),0) 
     68                                                 
    5069                                                //String basestr = ParseFilePath(3, ParseFilePath(5,filestr,":",0,0),":",0,0)                            
    5170                                                fileName =  ParseFilePath(0,ParseFilePath(5,filestr,":",0,0),":",1,0) 
     
    5776                                                //print "fileName: ",fileName 
    5877                                                //remove the semicolon AND period from files from the VAX 
     78                                                print basestr 
    5979                                                w0 = basestr + "_q" 
    6080                                                w1 = basestr + "_i" 
     
    6585                                                 
    6686                                                if(DataFolderExists("root:"+baseStr)) 
     87                                                        if(!forceOverwrite) 
    6788                                                                DoAlert 1,"The data set " + basestr + " from file "+fileName+" has already been loaded. Do you want to load the new data file, overwriting the data in memory?" 
    6889                                                                if(V_flag==2)   //user selected No, don't load the data 
     
    7394                                                                        return  0       //quits the macro 
    7495                                                                endif 
    75                                                                 SetDataFolder $("root:"+baseStr) 
     96                                                        endif 
     97                                                        SetDataFolder $("root:"+baseStr) 
    7698                                                else 
    7799                                                        NewDataFolder/S $("root:"+baseStr) 
     
    81103                                                Duplicate/O $(xmlDataSetFolder+"Isas") $w1 
    82104                                                Duplicate/O $(xmlDataSetFolder+"Idev") $w2 
    83                  
    84                  
    85                                                          
     105 
     106                                                 
    86107                                                if (exists(xmlDataSetFolder+"Qdev")) 
    87108                                                        Wave Qsas = $(xmlDataSetFolder+"Qsas") 
     
    173194                                        print xmlDataFolder 
    174195                                         
    175                                         basestr = CleanupName(getXMLDataSetTitle(xmlDataFolder,0),0) 
     196                                        //if outstr has been specified, we'll find ourselves here.... 
     197                                        if (!cmpstr(outstr,"")) 
     198                                                basestr = CleanupName(getXMLDataSetTitle(xmlDataFolder,0),0) 
     199                                        else 
     200                                                basestr = CleanupName(outstr,0) 
     201                                        endif 
     202                                         
    176203                                        //String basestr = ParseFilePath(3, ParseFilePath(5,filestr,":",0,0),":",0,0)                            
    177204                                        fileName =  ParseFilePath(0,ParseFilePath(5,filestr,":",0,0),":",1,0) 
     
    186213                                         
    187214                                        if(DataFolderExists("root:"+baseStr)) 
     215                                                if(!forceOverwrite) 
    188216                                                        DoAlert 1,"The data set " + basestr + " from file "+fileName+" has already been loaded. Do you want to load the new data file, overwriting the data in memory?" 
    189217                                                        if(V_flag==2)   //user selected No, don't load the data 
     
    194222                                                                return  0       //quits the macro 
    195223                                                        endif 
    196                                                         SetDataFolder $("root:"+baseStr) 
     224                                                endif 
     225                                                SetDataFolder $("root:"+baseStr) 
    197226                                        else 
    198227                                                NewDataFolder/S $("root:"+baseStr) 
     
    963992End 
    964993 
     994 
     995 
     996 
    965997#else   // if( Exists("XmlOpenFile") ) 
    966998        // No XMLutils XOP: provide dummy function so that IgorPro can compile dependent support code 
     
    9861018                return(-6) 
    9871019        end 
    988          
     1020 
    9891021        Function ReWrite1DXMLData(folderStr) 
    9901022                String folderStr 
Note: See TracChangeset for help on using the changeset viewer.