如何将字符串值保存到标签组?

how to save string value to the tag group?

如何将字符串和数值保存到标签组中?我需要在用户标签下创建项目还是将其放在全局标签下?如果有一些代码示例,那将帮助我快速理解它。谢谢,

tagGroups 是一个对象。您可以在脚本中创建它们并按如下方式使用它们:

TagGroup myTags = NewTagGroup()
string str = "Hello"
number num = 123
myTags.TagGroupSetTagAsString( "Sub-branch:SubSub-Branch:My String", str )
myTags.TagGroupSetTagAsNumber( "My value", num )
myTags.TagGroupOpenBrowserWindow( "My Tags", 0 ) 

但是,与在脚本中创建任何其他对象(图像、字符串等)一样,一旦脚本完成,它们就会从内存中删除。 要将信息存储的时间超过脚本的生命周期,您需要将标签存储到 在内存中持久化 的任何 TagGroup 对象。

DigitalMicrograph 偏好就是这样一个TagGroup。只要 DigitalMicrograph 为 运行,此 TagGroup 就会保留在内存中,并在关机时保存到首选项中。这是存储其他重要内容的所有设置的标签组,因此请注意不要破坏现有标签!

不是创建一个新的 TagGroup,而是获取这个现有的 tagGorup 并像下面这样修改它:

TagGroup persistentTags = GetPersistentTagGroup()
string str = "Hello"
number num = 123
persistentTags.TagGroupSetTagAsString( "My Tags:Sub-branch:SubSub-Branch:My String", str )
persistentTags.TagGroupSetTagAsNumber( "My Tags:My value", num )

您还可以使用图像来存储标签。每个图像都有一个关联的 TagGroup。因此,只要图像在内存中,标签也会如此。示例:

image testImg := realImage( "Just a test", 4, 100, 100 )
testImg.ShowImage()
TagGroup imgTags = testImg.ImageGetTagGroup()
string str = "Hello"
number num = 123
imgTags.TagGroupSetTagAsString( "My Tags:Sub-branch:SubSub-Branch:My String", str )
imgTags.TagGroupSetTagAsNumber( "My Tags:My value", num )

最后,如果您像第一个示例一样创建自己的 tagsGroup 对象,您也可以将其保存到光盘(.gtg 文件)。:

TagGroup myTags = NewTagGroup()
string folder = "C:\Temp\"
string str = "Hello"
number num = 123
myTags.TagGroupSetTagAsString( "Sub-branch:SubSub-Branch:My String", str )
myTags.TagGroupSetTagAsNumber( "My value", num )

if( !DoesDirectoryExist(folder) )
    CreateDirectory(folder)

myTags.TagGroupSaveToFile( folder + "myTagFile.gtg" )

然后稍后加载它,如:

TagGroup myTags = NewTagGroup()
string Path = "C:\Temp\myTagFile.gtg"
if ( myTags.TagGroupLoadFromFile(path) )
    myTags.TagGroupOpenBrowserWindow( path, 1 )