这个问题有两个部分。
您想查找名称中包含这些部分的变量
您要导出为 .csv 文件
另一个人可能能够以更好的方式进行扩展,但对于 1.,目前唯一想到的方法是:
遍历模块中的属性(for ad in m do {})并获取属性名称的字符串。
我假设您的属性值是 _I_、_O_ 或 _OI_?像 alpha = "_I_"?这些是枚举值吗?
如果是,那么您只需要检查每个对象的属性值。如果其中一个是属性值,则将其添加到诸如跳过列表之类的内容中。在这里有一个计数器会很有用,可能每个属性都有一个,例如 countI、countO、countOI,然后您可以将计数器用作跳过列表的 put() 函数的键。
找到所有属性后,您就可以继续写入 csv
Stream out = write("filepathname/filename.csv") // to declare the stream
out << "_I_, _O_, _OI_\n"
然后你可以同时遍历你的跳过列表
int ijk = 0; bool finito = false
while(!finito) do {
if(ijk<countI) {
at = get(skipListI, ijk)
out << at.name ","
}
else out << ","
if(ijk<countO) {
at = get(skipListO, ijk)
out << at.name ","
}
else out << ","
if(ijk<countOI) {
at = get(skipListOI, ijk)
out << at.name "\n"
}
else out << "\n"
ijk++
// check if the next iteration would be outside of bounds on all lists
if(ijk >= countI && ijk >= countO && ijk >= countIO) finito = true
}
或者代替 at.name,您可以打印出您想要的属性的任何部分。名称、值、“名称:值”或其他任何内容。
我还没有运行这个,所以你需要做任何故障排除。
--
我希望这个想法能让你开始,先在纸上写下你想要的东西,然后按照这个计划去做。我在这里提到的有用的关键内容是跳过列表和流写入(或追加,如果您想继续添加)。
以后,请考虑让您的问题更清楚。您是在属性名称中还是在属性值中寻找那些搜索词。您是要打印出名称或值,还是什么?您将使用哪种格式的 .csv?任何信息都将有助于回答您的问题。