精易论坛
标题: 求助,数组元素有相同的前缀项,并各自输出, [打印本页]
作者: filippo009 时间: 6 天前
标题: 求助,数组元素有相同的前缀项,并各自输出,
加入如下,我有几个数组,这里就举例两个,里面有元素内容如下:
数组1: a#0304#1,b#0304#2,c#0304#1,d#0304#1
数组2 :d#0305#1,a#0305#2,e#0305#1,f#0305#1
希望找出相同的,并输出#后面的内容:
输出 a.txt => 0304#1
0305#1
b.txt=> 0304#2
c.txt=> 0304#1
d.txt => 0304#1
0305#1
e.txt => 0305#1
f.txt => 0305#1
请教大神,这种要怎么处理呢,谢谢
作者: zainex 时间: 6 天前
这代码就是输出到多个文件里:
作者: Ruang 时间: 6 天前
你这数量好像挺大的
作者: zainex 时间: 6 天前
用 节点 实现,它会在桌面创建一个txt文件夹,文件会保存到里面:
窗口程序集名 | 保 留 | 保 留 | 备 注 |
窗口程序集_启动窗口 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
文本 | 文本型 | | |
数组 | 文本型 | | 0 |
正则 | 正则表达式 | | |
数 | 整数型 | | |
搜索结果 | 搜索结果 | | |
成员 | 文本型 | | |
节点 | 节点 | | |
名称 | 文本型 | | |
内容 | 文本型 | | |
临时 | 文本型 | | |
属性名 | 文本型 | | 0 |
目录 | 文本型 | | |
文本 = 文本 +
“a#0304#1 b#0304#2 c#0304#1 d#0304#1 ”文本 = 文本 +
“d#0305#1 a#0305#2 e#0305#1 f#0305#1 ”数组 =
分割文本 (文本,
“ ”,
)调试输出 (数组
)正则.
创建 (“([^#]+).(.+)”,
)
计次循环首 (取数组成员数 (数组
), 数
)
成员 = 数组
[数
]
搜索结果 = 正则.
搜索 (成员, 1,
)
名称 = 搜索结果.
取子匹配文本 (成员, 1,
)
内容 = 搜索结果.
取子匹配文本 (成员, 2,
)
如果真 (节点.
加入属性 (名称, 内容
) =
假)

节点.
取文本值 (名称, 临时
)

临时 = 临时 +
#换行符 + 内容


节点.
修改属性 (名称, 临时
)

计次循环尾 ()节点.
取全部属性名 (属性名
)目录 =
取特定目录 ( #系统桌面 ) +
“\txt”创建目录 (目录
)
计次循环首 (取数组成员数 (属性名
), 数
)
名称 = 属性名
[数
]
节点.
取文本值 (名称, 内容
)
写到文件 (目录 +
“\” + 名称 +
“.txt”,
到字节集 (内容
))
计次循环尾 ()|
RegEx |
EDataStructure |
spec |
shell |
作者: filippo009 时间: 6 天前
谢谢你,看正则我一直很晕,这是输出到一个.txt ,是要各自输出到txt, 有多少.txt,,,,,,比如a.txt b.txt。。。
作者: Ruang 时间: 6 天前
变量名 | 类 型 | 静态 | 数组 | 备 注 |
总数组 | 文本型 | | 0 |
计次1 | 整数型 | | |
计次2 | 整数型 | | |
前缀文本 | 文本型 | | |
后缀文本 | 文本型 | | |
节点 | 节点 | | |
节点名称 | 文本型 | | 0 |
临时 | 文本型 | | 0 |
是否存在 | 逻辑型 | | |
待加入文本 | 文本型 | | |
计次循环首 (取数组成员数 (参数_一
), 计次1
)
加入成员 (总数组, 参数_一
[计次1
])
计次循环尾 ()
计次循环首 (取数组成员数 (参数_二
), 计次1
)
加入成员 (总数组, 参数_二
[计次1
])
计次循环尾 ()
计次循环首 (取数组成员数 (总数组
), 计次1
) 
前缀文本 =
取文本左边 (总数组
[计次1
],
寻找文本 (总数组
[计次1
],
“#”, ,
假) - 1
)
后缀文本 =
子文本替换 (总数组
[计次1
],
取文本左边 (总数组
[计次1
],
寻找文本 (总数组
[计次1
],
“#”, ,
假) - 1
) +
“#”,
“”, , ,
真)
节点.
取全部属性名 (临时
)
计次循环首 (取数组成员数 (临时
), 计次2
)

是否存在 = 假


如果真 (临时
[计次2
] = 前缀文本
)


是否存在 = 真


跳出循环 ()



计次循环尾 ()
如果 (是否存在 =
假)

节点.
加入属性 (前缀文本, 后缀文本
)

节点.
取文本值 (前缀文本, 待加入文本
)

节点.
修改属性 (前缀文本, 待加入文本 +
“,” + 后缀文本
)

计次循环尾 ()节点.
取全部属性名 (节点名称
)
计次循环首 (取数组成员数 (节点名称
), 计次1
) 
节点.
取文本值 (节点名称
[计次1
], 待加入文本
)
临时 =
分割文本 (待加入文本,
“,”,
)
计次循环首 (取数组成员数 (临时
), 计次2
)

如果真 (计次2 = 1
)

调试输出 (节点名称
[计次1
] +
“.txt => ” + 临时
[计次2
])

到循环尾 ()
调试输出 (“ ” + 临时 [计次2])
计次循环尾 ()
计次循环尾 ()
节点方式
作者: Ruang 时间: 6 天前
输出结果图
-
截图20250504194325.png
(66.21 KB, 下载次数: 0)
作者: zainex 时间: 6 天前
如果你是不想用正则,那么可以把上面代码中的:
给换成:
下标 =
寻找文本 (成员,
“#”, ,
假)名称 =
取文本中间 (成员, 1, 下标 - 1
)内容 =
取文本中间 (成员, 下标 + 1,
取文本长度 (成员
))
这两段代码得到的结果是一样的。
作者: 你的猫 时间: 6 天前
变量名 | 类 型 | 静态 | 数组 | 备 注 |
数组1 | 文本型 | | 0 |
数组2 | 文本型 | | 0 |
i | 整数型 | | |
j | 整数型 | | |
元素1 | 文本型 | | |
元素2 | 文本型 | | |
前缀1 | 文本型 | | |
前缀2 | 文本型 | | |
内容1 | 文本型 | | |
内容2 | 文本型 | | |
文件号 | 整数型 | | |
文件名 | 文本型 | | |
已处理前缀 | 文本型 | | 0 |
k | 整数型 | | |
是否已处理 | 逻辑型 | | |
数组1 =
分割文本 (“a#0304#1,b#0304#2,c#0304#1,d#0304#1”,
“,”,
)数组2 =
分割文本 (“d#0305#1,a#0305#2,e#0305#1,f#0305#1”,
“,”,
)
计次循环首 (取数组成员数 (数组1
), i
)
元素1 = 数组1
[i
]
前缀1 =
取文本左边 (元素1,
寻找文本 (元素1,
“#”, ,
假) - 1
)
内容1 =
取文本右边 (元素1,
取文本长度 (元素1
) -
寻找文本 (元素1,
“#”, ,
假))

是否已处理 = 假

计次循环首 (取数组成员数 (已处理前缀
), k
)

如果真 (已处理前缀
[k
] = 前缀1
)


是否已处理 = 真


跳出循环 ()



计次循环尾 ()
如果真 (是否已处理 =
假)

加入成员 (已处理前缀, 前缀1
)


文件名 = 前缀1 +
“.txt”

文件号 =
打开文件 (文件名,
#重写, )

写文本行 (文件号, 内容1
)


计次循环首 (取数组成员数 (数组2
), j
)


元素2 = 数组2
[j
]


前缀2 =
取文本左边 (元素2,
寻找文本 (元素2,
“#”, ,
假) - 1
)


内容2 =
取文本右边 (元素2,
取文本长度 (元素2
) -
寻找文本 (元素2,
“#”, ,
假))



如果真 (前缀2 = 前缀1
)


写文本行 (文件号, 内容2
)





计次循环尾 ()
关闭文件 (文件号
)

计次循环尾 ()
计次循环首 (取数组成员数 (数组2
), i
)
元素2 = 数组2
[i
]
前缀2 =
取文本左边 (元素2,
寻找文本 (元素2,
“#”, ,
假) - 1
)
内容2 =
取文本右边 (元素2,
取文本长度 (元素2
) -
寻找文本 (元素2,
“#”, ,
假))

是否已处理 = 假

计次循环首 (取数组成员数 (已处理前缀
), k
)

如果真 (已处理前缀
[k
] = 前缀2
)


是否已处理 = 真


跳出循环 ()



计次循环尾 ()
如果真 (是否已处理 =
假)

加入成员 (已处理前缀, 前缀2
)


文件名 = 前缀2 +
“.txt”

文件号 =
打开文件 (文件名,
#重写, )

写文本行 (文件号, 内容2
)
关闭文件 (文件号
)

计次循环尾 ()
欢迎光临 精易论坛 (https://125.confly.eu.org/) |
Powered by Discuz! X3.4 |