Changeset 9


Ignore:
Timestamp:
Dec 8, 2006 4:47:50 PM (16 years ago)
Author:
ajj
Message:

Imported Main_USANS from existing v2.11 sources.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/USANSReduction/branches/AJJ-branch1/Put in User Procedures Folder/USANS Procedures v2.00/Main_USANS.ipf

    r8 r9  
    2121Menu "USANS" 
    2222        "USANS Reduction Panel",ShowUSANSPanel() 
     23        "New USANS Reduction Panel",ShowUSANSPanelNew() 
    2324        "Build USANS Notebook" 
    2425        "Desmear USANS Data",Desmear() 
     
    3435Proc ShowUSANSPanel() 
    3536        //version number 
    36         Variable/G root:USANS_RED_VERSION=2.00                  //distribution as of 01MAY06 
     37        Variable/G root:USANS_RED_VERSION=2.11                  //distribution as of 01MAY06 
    3738         
    3839        Init_MainUSANS() 
     
    4344End 
    4445 
     46Proc ShowUSANSPanelNew() 
     47        //version number 
     48        Variable/G root:USANS_RED_VERSION=2.11          //distribution as of OCT06 
     49         
     50        Init_MainUSANS() 
     51        DoWindow/F USANS_Panel_NG 
     52        if(V_Flag==0) 
     53                USANS_Panel_NG() 
     54        Endif 
     55End 
     56 
    4557// initializes the folders and globals for use with the USANS_Panel 
    4658// waves for the listboxes must exist before the panel is drawn 
     
    5264        NewDataFolder/O/S root:Globals:MainPanel 
    5365         
    54         Make/O/T/N=1 fileWave,samWave,empWave 
     66        Make/O/T/N=1 fileWave,samWave,empWave,curWave //Added curWave Sept 06 A. Jackson 
    5567        fileWave="" 
    5668        samWave="" 
    5769        empWave="" 
     70        curWave="" //Added Sept 06 A. Jackson 
     71        //Wave for handling Current Data AJJ Sept 06 
     72        Make/O/N=1 SAMisCurrent,EMPisCurrent 
     73        SAMisCurrent = 0 
     74        EMPisCurrent = 0 
    5875        Make/O/T/N=5 statusWave="" 
    5976        Make/O/B/U/N=1 selFileW 
     77        Make/O/B/U/N=1 cselFileW 
    6078        //for the graph control bar 
    6179        Variable/G gTransWide = 1 
     
    6583        Variable/G gThick = 0.1 
    6684        Variable/G gTypeCheck=1 
     85        //Text filter for data files AJJ Sept 06 
     86        String/G FilterStr 
    6787         
    6888        SetDataFolder root: 
     
    91111        Variable/G  root:Globals:MainPanel:gDQv = 0.117         //divergence, in terms of Q (1/A)  (NOV 2004) 
    92112 
     113         
     114 
    93115End 
    94116 
    95117//draws the USANS_Panel, the main control panel for the macros 
    96118// 
     119 
     120Window USANS_Panel_NG() : Panel 
     121        DoWindow/K USANS_Panel 
     122        DoWindow/K USANS_Panel_NG 
     123        PauseUpdate; Silent 1           // building window... 
     124        NewPanel /W=(501,44,915,493)/K=1 as "USANS_Panel" 
     125        SetDrawLayer UserBack 
     126        SetDrawEnv fstyle= 1 
     127        DrawText 12,53,"Data Files" 
     128        SetDrawEnv fstyle= 1 
     129        DrawText 157,192,"Empty Scans" 
     130        SetDrawEnv fstyle= 1 
     131        DrawText 154,54,"Sample Scans" 
     132        DrawLine 6,337,398,337 
     133        DrawLine 5,33,393,33 
     134        SetDrawEnv fstyle= 1 
     135        DrawText 140,357,"Raw Data Header" 
     136        SetDrawEnv fstyle= 1 
     137        DrawText 293,55,"Current Data" 
     138        ListBox fileLB,pos={5,55},size={110,230},proc=FileListBoxProc 
     139        ListBox fileLB,listWave=root:Globals:MainPanel:fileWave 
     140        ListBox fileLB,selWave=root:Globals:MainPanel:selFileW,mode= 4 
     141        ListBox samLB,pos={149,55},size={110,90},listWave=root:Globals:MainPanel:samWave 
     142        ListBox samLB,mode= 1,selRow= -1 
     143        Button ClearSamButton,pos={224,148},size={35,21},proc=ClearButtonProc,title="Clr" 
     144        Button ClearSamButton,help={"Clears the list of sample scans"} 
     145        Button ClearEmpButton,pos={227,286},size={35,20},proc=ClearButtonProc,title="Clr" 
     146        Button ClearEmpButton,help={"Clears the list of empty scans"} 
     147        Button RefreshButton,pos={9,310},size={104,20},proc=RefreshListButtonProc,title="Refresh" 
     148        Button RefreshButton,help={"Refreshes the list of raw ICP data files"} 
     149        Button DelSamButton,pos={186,148},size={35,20},proc=DelSamButtonProc,title="Del" 
     150        Button DelSamButton,help={"Deletes the selected file(s) from the list of sample scans"} 
     151        Button DelEmpButton,pos={190,286},size={35,20},proc=DelEmpButtonProc,title="Del" 
     152        Button DelEmpButton,help={"Deletes the selected file(s) from the list of empty scans"} 
     153        ListBox empLB,pos={151,194},size={110,90} 
     154        ListBox empLB,listWave=root:Globals:MainPanel:empWave,mode= 1,selRow= 0 
     155        Button toSamList,pos={118,55},size={25,90},proc=toSamListButtonProc,title="S->" 
     156        Button toSamList,help={"Adds the selected file(s) to the list of sample scans"} 
     157        Button toEmpList,pos={120,195},size={25,90},proc=toEmptyListButtonProc,title="E->" 
     158        Button toEmpList,help={"Adds the selected file(s) to the list of empty (cell) scans"} 
     159        ListBox StatusLB,pos={11,358},size={386,77} 
     160        ListBox StatusLB,listWave=root:Globals:MainPanel:statusWave 
     161        Button pickPathButton,pos={6,8},size={80,20},proc=PickBT5PathButton,title="DataPath..." 
     162        Button pickPathButton,help={"Select the data folder where the raw ICP data files are located"} 
     163        Button PlotSelectedSAMButton,pos={148,148},size={35,20},proc=PlotSelectedSAMButtonProc,title="Plot" 
     164        Button PlotSelectedSAMButton,help={"Plot the selected sample scattering files in the COR_Graph"} 
     165        Button PlotSelectedEMPButton,pos={152,286},size={35,20},proc=PlotSelectedEMPButtonProc,title="Plot" 
     166        Button PlotSelectedEMPButton,help={"Plot the selected empty cell scattering files in the COR_Graph"} 
     167        Button pickSavePathButton,pos={97,8},size={80,20},proc=PickSaveButtonProc,title="SavePath..." 
     168        Button pickSavePathButton,help={"Select the data folder where data is to be saved to disk"} 
     169        Button USANSHelpButton,pos={341,6},size={50,20},proc=USANSHelpButtonProc,title="Help" 
     170        Button USANSHelpButton,help={"Show the USANS reduction help file"} 
     171        Button RefreshCurrent,pos={298,310},size={95,20},proc=RefreshCurrentButtonProc,title="Refresh" 
     172        Button RefreshCurrent,help={"Updates data files on Charlotte and gets current data file name"} 
     173        Button AddCurrToSAM,pos={264,55},size={25,90},proc=CurtoSamListButtonProc,title="<-S" 
     174        Button AddCurrToSAM,help={"Adds the current data file to the list of sample scans"} 
     175        Button AddCurrToEMP,pos={265,194},size={25,90},proc=CurtoEmptyListButtonProc,title="<-E" 
     176        Button AddCurrToEMP,help={"Adds the current data file to the list of empty scans"} 
     177        ListBox CurFileBox,pos={295,55},size={100,230},proc=FileListBoxProc 
     178        ListBox CurFileBox,listWave=root:Globals:MainPanel:curWave,mode=1 
     179        SetVariable FilterSetVar,pos={8,289},size={106,18},title="Filter",fSize=12 
     180        SetVariable FilterSetVar,value= root:Globals:MainPanel:FilterStr 
     181EndMacro 
     182 
    97183Proc USANS_Panel() 
     184        DoWindow/K USANS_Panel_NG 
     185        DoWindow/K USANS_Panel 
    98186        PauseUpdate; Silent 1           // building window... 
    99         NewPanel /W=(501,44,925,391)/K=1 as "USANS_Panel" 
     187        NewPanel /W=(501,44,925,391) /K=1 as "USANS_Panel" 
    100188        DoWindow/C USANS_Panel 
    101189        SetDrawLayer UserBack 
     
    198286        //use the listBox wave directly 
    199287        Wave/T listW=$"root:Globals:MainPanel:empWave" 
     288        //Wave for indication of current data set AJJ Sept 2006 
     289        Wave isCurrent = $"root:Globals:MainPanel:EMPisCurrent" 
    200290        Variable ii,num=numpnts(listW) 
    201         String fname="",fpath="" 
     291        String fname="",fpath="",curPathStr="" 
    202292        PathInfo bt5PathName 
    203293        fpath = S_Path 
    204          
     294        PathInfo bt5CurPathName 
     295        curPathStr = S_Path 
     296                 
    205297        if(cmpstr("",listW[0])==0) 
    206298                return(0)               //null item in 1st position, exit 
     
    210302        //loop over the number of items in the list 
    211303        for(ii=0;ii<num;ii+=1) 
    212                 fname = fpath + listw[ii] 
     304                 
     305                //Check to see if file is current data set AJJ Sept 06 
     306                if (isCurrent[ii] ==  1) 
     307                        fname = curPathStr + listw[ii] 
     308                else  
     309                        fname = fpath + listw[ii] 
     310                endif 
     311 
     312                 
    213313                LoadBT5File(fname,"SWAP")       //overwrite what's in the SWAP folder 
    214314                Convert2Countrate("SWAP") 
     
    261361        //use the listBox wave directly 
    262362        Wave/T listW=$"root:Globals:MainPanel:samWave" 
     363        //Wave for indication of current data set AJJ Sept 2006 
     364        Wave isCurrent = $"root:Globals:MainPanel:SAMisCurrent" 
    263365        Variable ii,num=numpnts(listW) 
    264         String fname="",fpath="" 
     366        String fname="",fpath="",curPathStr="" 
    265367        PathInfo bt5PathName 
    266368        fpath = S_Path 
     369        PathInfo bt5CurPathName 
     370        curPathStr = S_Path 
    267371         
    268372        if(cmpstr("",listW[0])==0) 
     
    274378        for(ii=0;ii<num;ii+=1) 
    275379                fname = fpath + listw[ii] 
     380                 
     381                //Check to see if file is current data set AJJ Sept 06 
     382                if (isCurrent[ii] ==  1) 
     383                        fname = curPathStr + listw[ii] 
     384                else  
     385                        fname = fpath + listw[ii] 
     386                endif 
     387                                 
    276388                LoadBT5File(fname,"SWAP")       //overwrite what's in the SWAP folder 
    277389                Convert2Countrate("SWAP") 
     
    458570                return(1) 
    459571        else 
     572                NewPath/O bt5CurPathName, getCurrentPath(S_Path) 
    460573                return(0)               //no error 
    461574        endif 
     
    469582Function PlotRawButtonProc(ctrlName) : ButtonControl 
    470583        String ctrlName 
    471          
    472         //Print "PlotRaw Button" 
    473         //take the selection, and simply plot the counts vs. angle - don't save the data anyplace special 
    474         //get the selected wave 
    475         Wave/T fileWave=$"root:Globals:MainPanel:fileWave" 
    476         Wave sel=$"root:Globals:MainPanel:selFileW" 
    477         Variable ii=0,num=numpnts(sel),err 
     584 
    478585        String fname="" 
    479586         
    480         PathInfo bt5PathName 
    481         fname = S_Path 
    482         do 
    483                 if(sel[ii] == 1) 
    484                         fname+=filewave[ii] 
    485                         break 
    486                 endif 
    487                 ii+=1 
    488         while(ii<num) 
     587        if (cmpstr(ctrlName,"FileLB") == 0) 
     588                //Print "PlotRaw Button" 
     589                //take the selection, and simply plot the counts vs. angle - don't save the data anyplace special 
     590                //get the selected wave 
     591                Wave/T fileWave=$"root:Globals:MainPanel:fileWave" 
     592                Wave sel=$"root:Globals:MainPanel:selFileW" 
     593                Variable ii=0,num=numpnts(sel),err 
     594 
     595                 
     596                PathInfo bt5PathName 
     597                fname = S_Path 
     598                do 
     599                        if(sel[ii] == 1) 
     600                                fname+=filewave[ii] 
     601                                break 
     602                        endif 
     603                        ii+=1 
     604                while(ii<num) 
     605        elseif (cmpstr(ctrlName,"CurFileBox" )== 0) 
     606                Wave/T fileWave=$"root:Globals:MainPanel:curWave" 
     607                PathInfo bt5CurPathName 
     608                fname = S_Path 
     609                fname+=filewave[0] 
     610        endif 
    489611        //Print fname 
    490612        err = LoadBT5File(fname,"RAW") 
     
    507629End 
    508630 
    509  
    510631// action procedure for the raw data listbox 
    511632// responds to selection or (shift)selection events 
     
    518639        Variable row,col,event 
    519640         
    520         //event == 4 is a selection 
    521         //event == 5 is a selection + shift key 
    522         if( (event==4) || (event==5) ) 
    523                 StatusButtonProc("StatusButton")                //act as if status button was pressed 
    524                 PlotRawButtonProc("")                                   //automatically plots the raw data 
    525         Endif 
    526         return(0) 
     641        if (cmpstr(ctrlName, "fileLB") == 0) 
     642                //event == 4 is a selection 
     643                //event == 5 is a selection + shift key 
     644                if( (event==4) || (event==5) ) 
     645                        StatusButtonProc(ctrlName)              //act as if status button was pressed 
     646                        PlotRawButtonProc(ctrlName)                                     //automatically plots the raw data 
     647                Endif 
     648                return(0) 
     649        elseif (cmpstr(ctrlName,"CurFileBox") == 0) 
     650                //print "Selected current data" 
     651                if  (event == 4) 
     652                        StatusButtonProc(ctrlName) 
     653                        PlotRawButtonProc(ctrlName) 
     654                endif 
     655                return(0) 
     656        endif 
     657        return(1) 
    527658End 
    528659 
     
    534665Function StatusButtonProc(ctrlName)  
    535666        String ctrlName 
    536          
    537         //Print "Status Button"  
    538         //display the (first) selected wave 
    539         Wave/T fileWave=$"root:Globals:MainPanel:fileWave" 
    540         Wave sel=$"root:Globals:MainPanel:selFileW" 
    541         Variable ii=0,num=numpnts(sel) 
    542667        String fname="" 
    543          
    544         PathInfo bt5PathName 
    545         fname = S_Path 
    546         do 
    547                 if(sel[ii] == 1) 
    548                         fname+=filewave[ii] 
    549                         break 
    550                 endif 
    551                 ii+=1 
    552         while(ii<num) 
     668 
     669        if(cmpstr(ctrlName,"fileLB")==0) 
     670                //Print "Status Button"  
     671                //display the (first) selected wave 
     672                Wave/T fileWave=$"root:Globals:MainPanel:fileWave" 
     673                Wave sel=$"root:Globals:MainPanel:selFileW" 
     674                Variable ii=0,num=numpnts(sel) 
     675                 
     676                PathInfo bt5PathName 
     677                fname = S_Path 
     678                do 
     679                        if(sel[ii] == 1) 
     680                                fname+=filewave[ii] 
     681                                break 
     682                        endif 
     683                        ii+=1 
     684                while(ii<num) 
     685        elseif(cmpstr(ctrlName,"CurFileBox")==0) 
     686                Wave/T fileWave=$"root:Globals:MainPanel:curWave" 
     687                PathInfo bt5CurPathName 
     688                fname = S_Path 
     689                fname+=filewave[0] 
     690        endif            
    553691        //Print fname 
    554692        ReadBT5Header(fname) 
     
    566704        Wave/T samWave=$"root:Globals:MainPanel:samWave" 
    567705        Wave sel=$"root:Globals:MainPanel:selFileW" 
     706        //Wave to indicate Current status 
     707        Wave isCurrent = $"root:Globals:MainPanel:SAMisCurrent" 
     708 
    568709         
    569710        Variable num=numpnts(sel),ii=0 
     
    573714                        InsertPoints lastPt,1, samWave 
    574715                        samWave[lastPt]=filewave[ii] 
     716                        InsertPoints lastPt, 1, isCurrent 
     717                        isCurrent[lastPt] = 0 
    575718                        lastPt +=1 
    576719                endif 
     
    583726                if(cmpstr(samWave[ii],"") ==0) 
    584727                        DeletePoints ii,1,samWave 
     728                        DeletePoints ii,1,isCurrent 
    585729                        num -= 1 
    586730                Endif 
     
    601745        Wave/T empWave=$"root:Globals:MainPanel:empWave" 
    602746        Wave sel=$"root:Globals:MainPanel:selFileW" 
     747        //Wave to indicate Current status 
     748        Wave isCurrent = $"root:Globals:MainPanel:EMPisCurrent" 
     749 
     750 
    603751         
    604752        Variable num=numpnts(sel),ii=0 
     
    608756                        InsertPoints lastPt,1, empWave 
    609757                        empWave[lastPt]=filewave[ii] 
     758                        InsertPoints lastPt, 1, isCurrent 
     759                        isCurrent[lastPt] = 0 
    610760                        lastPt +=1 
    611761                endif 
     
    618768                if(cmpstr(empWave[ii],"") ==0) 
    619769                        DeletePoints ii,1,empWave 
     770                        DeletePoints ii,1,isCurrent 
    620771                        num -= 1 
    621772                Endif 
     
    636787        Wave lw=$(S_DataFolder + S_Value) 
    637788        DeletePoints selRow,1,lw         
     789        //Clear out current flag AJJ Sept O6 
     790        Wave isCurrent = $"root:Globals:MainPanel:SAMisCurrent" 
     791        DeletePoints selRow, 1, isCurrent        
    638792End 
    639793 
     
    648802        Variable selRow=V_Value 
    649803        Wave lw=$(S_DataFolder + S_Value) 
    650         DeletePoints selRow,1,lw         
     804        DeletePoints selRow,1,lw 
     805        //Clear out current flag AJJ Sept O6 
     806        Wave isCurrent = $"root:Globals:MainPanel:EMPisCurrent" 
     807        DeletePoints selRow, 1, isCurrent        
    651808End 
    652809 
     
    661818Function RefreshListButtonProc(ctrlName) : ButtonControl 
    662819        String ctrlName 
     820         
     821        SVAR FilterStr = root:Globals:MainPanel:FilterStr 
     822        String filter 
    663823         
    664824        //check for path and force user to pick a path 
     
    671831        while(V_Flag==0) 
    672832         
     833        //Get the filter and determine the match string required AJJ Sept06 
     834        if (stringmatch(FilterStr,"!")) 
     835                filter = FilterStr+"*.bt5*" 
     836        else 
     837                filter = "*.bt5*" 
     838        endif 
     839         
    673840        //get all the files, then trim the list 
    674841        String list=IndexedFile(bt5PathName,-1,"????") 
     
    677844        for(ii=0;ii<num;ii+=1) 
    678845                item = StringFromList(ii, list  ,";") 
    679                 if( stringmatch(item,"*.bt5*") )                //ONLY keep files with ".bt5" in the name (NOT case-sensitive)  
     846                 
     847                if( stringmatch(item,filter) )          //ONLY keep files that match the filter + *.bt5 AJJ Sept 06 
    680848                        newlist += item + ";" 
    681849                endif 
     
    708876                        Make/O/T/N=1 samWave 
    709877                        samWave="" 
     878                        //Clear out current flags AJJ Sept O6 
     879                        Make/O/N=1 SAMisCurrent,EMPisCurrent 
     880                        SAMisCurrent = 0 
     881                        EMPisCurrent = 0 
    710882                        //clear the graph, then the data folders as well 
    711883                        CleanOutGraph("SAM") 
     
    717889                        Make/O/T/N=1 empWave 
    718890                        empWave="" 
     891                        //Clear out current flags AJJ Sept O6 
     892                        Make/O/N=1 SAMisCurrent,EMPisCurrent 
     893                        SAMisCurrent = 0 
     894                        EMPisCurrent = 0 
    719895                        //clear the graph, then the data folders as well 
    720896                        CleanOutGraph("EMP") 
     
    9141090        endif 
    9151091End 
     1092 
     1093//Edits by AJJ, September 2006 
     1094//Add functions to get data from Current Folder 
     1095 
     1096Function RefreshCurrentButtonProc(ctrlName) : ButtonControl 
     1097        String ctrlName 
     1098         
     1099        //Prod the web update page 
     1100        //This is a horrible kludge that doesn't really work as the  
     1101        //webscript does not update the current run as of Sept 26 2006 
     1102        //Will get Nick M to look into it 
     1103        BrowseURL/Z "http://www-i.ncnr.nist.gov/icpdata/recent.php?action=1&instr=bt5" 
     1104         
     1105        Print "Waiting 20s for update..." 
     1106        Sleep/S 20 
     1107        Print "Waited 20s, new file should be there." 
     1108         
     1109        //check for path and force user to pick a path 
     1110        //assume that if bt5PathName has been assigned, so has bt5CurPathName 
     1111        do 
     1112                PathInfo bt5PathName 
     1113                if(V_Flag) 
     1114                        break 
     1115                Endif 
     1116                PickBT5Path() 
     1117        while(V_Flag==0) 
     1118                 
     1119        //get all the files, then trim the list 
     1120        String list=IndexedFile(bt5CurPathName,-1,"????") 
     1121        String newList="",item="" 
     1122        Variable num=ItemsInList(list,";"),ii 
     1123        for(ii=0;ii<num;ii+=1) 
     1124                item = StringFromList(ii, list  ,";") 
     1125                if( stringmatch(item,"*.bt5*") )                //ONLY keep files with ".bt5" in the name (NOT case-sensitive)  
     1126                        newlist += item + ";" 
     1127                endif 
     1128                //print "ii=",ii 
     1129        endfor 
     1130        newList = SortList(newList,";",0)       //get them in order 
     1131        num=ItemsInList(newlist,";") 
     1132        Wave/T curWave = $" root:Globals:MainPanel:curWave" 
     1133        Redimension/N=(num) curWave 
     1134        curWave="" 
     1135        curWave = StringFromList(p,newlist,";") //  ! quick and easy assignment of the list 
     1136        Sort curwave,curwave 
     1137         
     1138End 
     1139 
     1140//Reduced version of toSamListButtonProc for putting current data into Sample data 
     1141Function CurtoSamListButtonProc(ctrlName) : ButtonControl 
     1142        String ctrlName 
     1143 
     1144        Wave/T curWave=$"root:Globals:MainPanel:curWave" 
     1145        Wave/T samWave=$"root:Globals:MainPanel:samWave" 
     1146        Wave isCurrent = $"root:Globals:MainPanel:SAMisCurrent" 
     1147         
     1148        Variable num, ii = 0 
     1149        variable lastPt=numpnts(samWave) 
     1150         
     1151        InsertPoints lastPt,1, samWave 
     1152        samWave[lastPt]=curwave[ii] 
     1153        InsertPoints lastPt, 1, isCurrent 
     1154        isCurrent[lastPt] = 1 
     1155         
     1156        //clean out any (null) elements 
     1157        num = numpnts(samwave) 
     1158        for(ii=0;ii<num;ii+=1) 
     1159                if(cmpstr(samWave[ii],"") ==0) 
     1160                        DeletePoints ii,1,samWave 
     1161                        DeletePoints ii,1,isCurrent 
     1162                        num -= 1 
     1163                Endif 
     1164        Endfor 
     1165         
     1166        return(0) 
     1167End 
     1168 
     1169//Reduced version of toEmptyListButtonProc for putting current data into Empty data 
     1170Function CurtoEmptyListButtonProc(ctrlName) : ButtonControl 
     1171        String ctrlName 
     1172 
     1173        Wave/T curWave=$"root:Globals:MainPanel:curWave" 
     1174        Wave/T empWave=$"root:Globals:MainPanel:empWave" 
     1175        Wave isCurrent = $"root:Globals:MainPanel:EMPisCurrent" 
     1176                 
     1177        Variable num, ii=0 
     1178        variable lastPt=numpnts(empWave) 
     1179 
     1180        InsertPoints lastPt,1, empWave 
     1181        empWave[lastPt]=curwave[ii] 
     1182        InsertPoints lastPt, 1, isCurrent 
     1183        isCurrent[lastPt] = 1 
     1184 
     1185         
     1186        //clean out any (null) elements 
     1187        num=numpnts(empwave) 
     1188        for(ii=0;ii<num;ii+=1) 
     1189                if(cmpstr(empWave[ii],"") ==0) 
     1190                        DeletePoints ii,1,empWave 
     1191                        DeletePoints ii,1,isCurrent 
     1192                        num -= 1 
     1193                Endif 
     1194        Endfor 
     1195         
     1196         
     1197        return(0) 
     1198End 
     1199 
     1200//Function to get path for Current file 
     1201Function/S getCurrentPath(inPath) 
     1202        String inPath 
     1203         
     1204        Variable pos=0,mpos = 0 
     1205        Variable i = 0,j = 0 
     1206        // The saga continues... 
     1207        // Originally used ParseFilePath - not in Igor 4 
     1208        // Switched to strsearch, but useful searching from end of string not in Igor 4 
     1209        // Now have ugly loops going through the string, but should work. 
     1210 
     1211        for( i = 0;i<4; i+=1)    
     1212                do 
     1213                        pos = strsearch(inPath,":",j) 
     1214                        if (pos != -1) 
     1215                                mpos = pos 
     1216                        endif 
     1217                        j = pos+1 
     1218                while (pos !=-1) 
     1219                 
     1220                inPath = inPath[0,mpos -1] 
     1221                pos = 0 
     1222                mpos = 0 
     1223                j = 0 
     1224        endfor 
     1225         
     1226        inPath = inPath + ":current:" 
     1227 
     1228        return inPath 
     1229         
     1230End 
Note: See TracChangeset for help on using the changeset viewer.