DataBrowser Folder Versioning Button
jjweimer
// This installs or removes a VersionFolder button in the DataBrowser
// The VersionFolder button will create a duplicate of the currently selected data folder
// with a date+time stamp appended to it: 'folder name'YYMMDDHHSS
// Copy this to the procedure window, compile, open a Data Browser,
// and then type InstallVersions() on the command line
// Select a data folder to version and click the VersionFolder button
// Remove the button by typing RemoveVersions() at the command line
// This also works with multiple data folders selected ... it will parse and run the command on each one
// It may choke on data folders with long names!
#pragma rtGlobals=1
Function InstallVersions()
Execute/P/Q/Z "ModifyBrowser appendUserButton={VersionFolder,\"StoreFolderVersion(%s)\"}"
return 0
end
Function RemoveVersions()
Execute/Q/Z "ModifyBrowser deleteUserButton=VersionFolder"
return 0
end
Function StoreFolderVersion(df)
DFREF df
// return if this is not a data folder
if (DataFolderRefStatus(df)==0)
return 0
endif
// uncomment this next portion if you would like to avoid versioning the Packages data folder
// if (DataFolderRefsEqual(df,root:Packages))
// return 0
// endif
// get information about the data folder
string cdf = ParseFilePath(1,GetDataFolder(1,df),":",1,0)
string sdf = ReplaceString("'",GetDataFolder(0,df),"")
// create the new data folder name
string currDTS, vdf
sprintf currDTS, "%s%s",secs2date(DateTime,-2,":")[2,9],secs2time(DateTime,2)
sprintf currDTS "%s%s" sdf, ReplaceString("'",ReplaceString(":",currDTS,""),"")
sprintf vdf, "%s%s", cdf, PossiblyQuoteName(currDTS)
// if the new already exists, do not overwrite
if (DataFolderExists(vdf))
return 0
endif
// make the new data folder
DuplicateDataFolder df, $vdf
return 0
end
// The VersionFolder button will create a duplicate of the currently selected data folder
// with a date+time stamp appended to it: 'folder name'YYMMDDHHSS
// Copy this to the procedure window, compile, open a Data Browser,
// and then type InstallVersions() on the command line
// Select a data folder to version and click the VersionFolder button
// Remove the button by typing RemoveVersions() at the command line
// This also works with multiple data folders selected ... it will parse and run the command on each one
// It may choke on data folders with long names!
#pragma rtGlobals=1
Function InstallVersions()
Execute/P/Q/Z "ModifyBrowser appendUserButton={VersionFolder,\"StoreFolderVersion(%s)\"}"
return 0
end
Function RemoveVersions()
Execute/Q/Z "ModifyBrowser deleteUserButton=VersionFolder"
return 0
end
Function StoreFolderVersion(df)
DFREF df
// return if this is not a data folder
if (DataFolderRefStatus(df)==0)
return 0
endif
// uncomment this next portion if you would like to avoid versioning the Packages data folder
// if (DataFolderRefsEqual(df,root:Packages))
// return 0
// endif
// get information about the data folder
string cdf = ParseFilePath(1,GetDataFolder(1,df),":",1,0)
string sdf = ReplaceString("'",GetDataFolder(0,df),"")
// create the new data folder name
string currDTS, vdf
sprintf currDTS, "%s%s",secs2date(DateTime,-2,":")[2,9],secs2time(DateTime,2)
sprintf currDTS "%s%s" sdf, ReplaceString("'",ReplaceString(":",currDTS,""),"")
sprintf vdf, "%s%s", cdf, PossiblyQuoteName(currDTS)
// if the new already exists, do not overwrite
if (DataFolderExists(vdf))
return 0
endif
// make the new data folder
DuplicateDataFolder df, $vdf
return 0
end
Forum
Support
Gallery
Igor Pro 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More