Bulk kill and duplicate

Average rating
(1 vote)

Function bduplicate(prefix, filter)
//@@@@@@@@@@@@@@@@@@@@@@@@@
//---------------------------------
// filter waves with wildcards to duplicate particular waves
// additonal options for filter:
// set "all" to duplicate every wave in current data folder
// set "onGraph" to duplicate the traces on a graph
// no string set for filter defaults to the "onGraph" setting.
// V2.0
	String prefix, filter		// prefix to append and filter or wildcard string
	String wName, newName
 
 	String list
 	if(strlen(filter)==0)
 		list = TraceNameList("",";",1)
 		printf ": duplicating waves from graph\r"
	elseif(cmpstr(filter, "onGraph")==0)
     		list = TraceNameList("",";",1)
     		printf ": duplicating waves from graph\r"
     	elseif(cmpstr(filter, "all")==0)
		list = WaveList("*",";","")
		printf ": duplicating all waves in current folder\r"
	else
		list = WaveList(filter,";","")
		printf ": duplicating waves filtered by the wildcard " + filter + "\r"
	endif
 
 	if (strlen(prefix)==0)
     		prefix = "corr_" 
	endif
 
 	Variable numItems = ItemsInList(list)
 	if (numItems == 0)
 		return 0
 	endif
 
 	Variable index	
 	for (index=0;index<numItems; index+=1)
 		wName = StringFromList(index,list)
 		sprintf newName, "%s%s", prefix, wName
 		Duplicate/O $wName $newName
 	endfor
End
 
Function bkill(filter)
//@@@@@@@@@@@@@@@@@@@@@@@@@
//---------------------------------
// filter waves with wildcards to kill particular waves
	String filter
	String list = WaveList(filter,";","")
	printf ": killing waves filtered by the wildcard " + filter + "\r"
 	Variable numList = ItemsInList(list)
 	if (numList == 0)
 		return 0
 	endif
 
 	Variable index	
 	for (index=0;index<numList;index+=1)
 		KillWaves/Z $(StringFromList(index, list))
 	endfor
End

Back to top