我有一个包含大量正式模块的文件夹,我想知道哪些模块至少有1个基线。我开始尝试这样的事情:
Item icurr
Folder scr = current Folder
Baseline b = baseline(1, 0, null)
for icurr in scr do
{
if( baselineExists(icurr, b) )
{
print name(icurr)
}
}
此代码的问题是baselineExists()仅接受Module对象作为第一个参数,当我将icurr声明为Module而不是Item for for循环时,这不会识别任何模块。
答案 0 :(得分:0)
我认为最简单的方法是使用for baseline in module
循环。
循环遍历所有项目,使用for item in folder
(不包括子文件夹中的项目,您将需要循环遍历所有找到的文件夹的递归函数)或使用for item in project
(将自动遍历递归)所有包含的文件夹和项目)。
对于每个项目,使用if 'Formal' == type i then {}
检查它是否是(正式)模块。如果是这样,从项目中获取模块变量。通常,我使用Module m = read (fullName i, false, true); if !null m then...
执行此操作。
然后,当您打开模块时,请使用
Baseline b = null
for b in m do {break} // stop loop at first found baseline
if (!null b) {
print "found a baseline in module " fullName(m) ": " major(b) "." minor(b) " ("suffix(b)")\n"
}
评估后不要忘记关闭每个模块,否则脚本会占用大量内存