开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 165|回复: 8
收起左侧

[已解决] 求助,数组元素有相同的前缀项,并各自输出,

 关闭 [复制链接]
结帖率:100% (2/2)
发表于 昨天 17:38 | 显示全部楼层 |阅读模式   江苏省苏州市
5精币
加入如下,我有几个数组,这里就举例两个,里面有元素内容如下:
数组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


请教大神,这种要怎么处理呢,谢谢

最佳答案

查看完整内容

这代码就是输出到多个文件里:

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:100% (1/1)
发表于 昨天 17:38 | 显示全部楼层   浙江省温州市
这代码就是输出到多个文件里:
1.png

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:100% (12/12)

签到天数: 5 天

发表于 昨天 17:47 | 显示全部楼层   江苏省盐城市
你这数量好像挺大的
回复

使用道具 举报

结帖率:100% (1/1)
发表于 昨天 18:35 | 显示全部楼层   浙江省温州市
用 节点 实现,它会在桌面创建一个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”, 到字节集 (内容))
计次循环尾 ()


i支持库列表   支持库注释   
RegEx正则表达式支持库
EDataStructure数据结构支持库
spec特殊功能支持库
shell操作系统界面功能支持库

评分

参与人数 1好评 +1 精币 +3 收起 理由
企鹅号525150138 + 1 + 3 YYDS~!

查看全部评分

回复

使用道具 举报

结帖率:100% (2/2)

签到天数: 2 天

 楼主| 发表于 昨天 19:20 | 显示全部楼层   江苏省苏州市
zainex 发表于 2025-5-4 18:35
用 节点 实现,它会在桌面创建一个txt文件夹,文件会保存到里面:
[e=1].版本 2
.支持库 RegEx

谢谢你,看正则我一直很晕,这是输出到一个.txt ,是要各自输出到txt, 有多少.txt,,,,,,比如a.txt b.txt。。。
回复

使用道具 举报

结帖率:100% (12/12)

签到天数: 5 天

发表于 昨天 19:42 | 显示全部楼层   江苏省盐城市
  
子程序名返回值类型公开备 注
功能_数据归类  
参数名类 型参考可空数组备 注
参数_一文本型
参数_二文本型
变量名类 型静态数组备 注
总数组文本型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])
计次循环尾 ()
计次循环尾 ()


i支持库列表   支持库注释   
EDataStructure数据结构支持库
spec特殊功能支持库



节点方式
回复

使用道具 举报

结帖率:100% (12/12)

签到天数: 5 天

发表于 昨天 19:43 | 显示全部楼层   江苏省盐城市
输出结果图
截图20250504194325.png
回复

使用道具 举报

结帖率:100% (1/1)
发表于 昨天 20:44 | 显示全部楼层   浙江省温州市
如果你是不想用正则,那么可以把上面代码中的:
  
搜索结果 = 正则.搜索 (成员, 1, )
名称 = 搜索结果.取子匹配文本 (成员, 1, )
内容 = 搜索结果.取子匹配文本 (成员, 2, )

给换成:
  
变量名类 型静态数组备 注
下标整数型 
下标 = 寻找文本 (成员, “#”, , )
名称 = 取文本中间 (成员, 1, 下标 - 1)
内容 = 取文本中间 (成员, 下标 + 1, 取文本长度 (成员))

这两段代码得到的结果是一样的。
回复

使用道具 举报

结帖率:89% (39/44)

签到天数: 5 天

发表于 昨天 21:03 | 显示全部楼层   河北省衡水市
  
子程序名返回值类型公开备 注
比较数组并输出  
变量名类 型静态数组备 注
数组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
计次循环首 (取数组成员数 (数组1), i)
元素1 = 数组1 [i]
前缀1 = 取文本左边 (元素1, 寻找文本 (元素1, “#”, , ) - 1)
内容1 = 取文本右边 (元素1, 取文本长度 (元素1)寻找文本 (元素1, “#”, , ))
' 检查是否已经处理过这个前缀
是否已处理 = 假
计次循环首 (取数组成员数 (已处理前缀), k)
如果真 (已处理前缀 [k] = 前缀1)
是否已处理 = 真
跳出循环 ()

计次循环尾 ()
如果真 (是否已处理 = )
' 添加到已处理列表
加入成员 (已处理前缀, 前缀1)
' 创建对应文件
文件名 = 前缀1 + “.txt”
文件号 = 打开文件 (文件名, #重写, )
' 写入当前内容
写文本行 (文件号, 内容1)
' 检查数组2中是否有相同前缀
计次循环首 (取数组成员数 (数组2), j)
元素2 = 数组2 [j]
前缀2 = 取文本左边 (元素2, 寻找文本 (元素2, “#”, , ) - 1)
内容2 = 取文本右边 (元素2, 取文本长度 (元素2)寻找文本 (元素2, “#”, , ))
如果真 (前缀2 = 前缀1)
写文本行 (文件号, 内容2)

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

计次循环尾 ()
' 处理数组2中未被处理的前缀
计次循环首 (取数组成员数 (数组2), i)
元素2 = 数组2 [i]
前缀2 = 取文本左边 (元素2, 寻找文本 (元素2, “#”, , ) - 1)
内容2 = 取文本右边 (元素2, 取文本长度 (元素2)寻找文本 (元素2, “#”, , ))
' 检查是否已经处理过这个前缀
是否已处理 = 假
计次循环首 (取数组成员数 (已处理前缀), k)
如果真 (已处理前缀 [k] = 前缀2)
是否已处理 = 真
跳出循环 ()

计次循环尾 ()
如果真 (是否已处理 = )
' 添加到已处理列表
加入成员 (已处理前缀, 前缀2)
' 创建对应文件
文件名 = 前缀2 + “.txt”
文件号 = 打开文件 (文件名, #重写, )
' 写入当前内容
写文本行 (文件号, 内容2)
关闭文件 (文件号)

计次循环尾 ()

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表