开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 261|回复: 2
收起左侧

[完成] 有点麻烦的文本查找和复制文件,求助指导

 关闭 [复制链接]
结帖率:91% (10/11)
发表于 2026-2-14 20:16:33 | 显示全部楼层 |阅读模式   黑龙江省哈尔滨市
100精币
1.首先文件夹1里多个文本
2.编辑框1里输入 0257709,找到第三行里的有0257709,先找到文件夹里包含这7位数字的所有文本,比如有3个这样的文本都复制都到文件夹2里

3.然后文本1里可以看到0257709对应的是CL,3这行,当然文本2里可能会对应CL,5
4.以文本1为例:CL,3又对应第二段和第三段里的,ZC,3,
5.文本1里包含ZC,3,第二段4条,第三段4条,共有8条
6.从文本1里可以看出这8条又分别对应8个文件名:

                  260209018BFT1PR_0009.v
                  260209018BFT1PR_0010.v
                  260209018BFT1PR_0011.v
                  260209018BFT1PR_0012.v
                  260209018BFT1DT_0009.v
                  260209018BFT1DT_0010.v
                  260209018BFT1DT_0011.v
                  260209018BFT1DT_0012.v
7.再从文件夹3里把这8个文件也复制到文件夹2里
8.所以如果在文件夹1里找到3个包含0257709的文本,那么就应该复制出24个.v文件和3个文本文件




1.txt

1.97 KB, 下载次数: 3, 下载积分: 精币 -1 枚

最佳答案

查看完整内容

[e=0].版本 2 .支持库 shell .支持库 iext .程序集 窗口程序集_启动窗口 .程序集变量 文件夹1路径, 文本型 .程序集变量 文件夹2路径, 文本型 .程序集变量 文件夹3路径, 文本型 .程序集变量 搜索数字, 文本型 .程序集变量 找到的文本文件, 文本型, , "0" .子程序 __启动窗口_创建完毕 ' 设置默认路径(请根据实际情况修改) 文件夹1路径 = “C:\文件夹1\” 文件夹2路径 = “C:\文件夹2\” 文件夹3路径 = “C:\文件夹3\” .子 ...
结帖率:96% (26/27)

签到天数: 2 天

发表于 2026-2-14 20:16:34 | 显示全部楼层   湖南省郴州市
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
文件夹1路径文本型  
文件夹2路径文本型  
文件夹3路径文本型  
搜索数字文本型  
找到的文本文件文本型0 

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
' 设置默认路径(请根据实际情况修改)
文件夹1路径 = “C:\文件夹1\”
文件夹2路径 = “C:\文件夹2\”
文件夹3路径 = “C:\文件夹3\”
子程序名返回值类型公开备 注
_按钮_开始_被单击  
变量名类 型静态数组备 注
文件名数组文本型0
i整数型 
文件内容文本型 
行数组文本型0
j整数型 
行内容文本型 
第三行文本型 
CL值文本型 
ZC数组文本型0
k整数型 
ZC值文本型 
文件名前缀文本型 
数字部分文本型 
生成的文件名文本型 
找到的V文件文本型0
文件号整数型 
' 清空找到的文本文件数组
重定义数组 (找到的文本文件, 假, 0)
' 获取搜索数字
搜索数字 = 编辑框1.内容
如果 (搜索数字 = “”)
信息框 (“请输入搜索数字!”, #警告图标, “提示”)
返回
结束如果
' 确保文件夹2存在
创建目录 (文件夹2路径)
' 遍历文件夹1中的所有文本文件
文件名数组 = 寻找文件 (文件夹1路径 + “*.txt”, 1 + 4 + 16 + 32)
如果 (取数组成员数 (文件名数组) = 0)
信息框 (“文件夹1中没有找到文本文件!”, #警告图标, “提示”)
返回
结束如果
' 第一步:查找包含搜索数字的文本文件
计次循环首 (取数组成员数 (文件名数组), i)
文件内容 = 到文本 (读入文件 (文件夹1路径 + 文件名数组 [i]))
行数组 = 分割文本 (文件内容, #换行符, )

如果 (取数组成员数 (行数组) ≥ 3)
第三行 = 行数组 [3]
如果 (寻找文本 (第三行, 搜索数字, , ) ≠ -1)
' 找到包含数字的文本文件
加入成员 (找到的文本文件, 文件名数组 [i])

' 复制到文件夹2
复制文件 (文件夹1路径 + 文件名数组 [i], 文件夹2路径 + 文件名数组 [i])
结束如果
结束如果
计次循环尾 ()
如果 (取数组成员数 (找到的文本文件) = 0)
信息框 (“没有找到包含 ” + 搜索数字 + “ 的文本文件!”, #警告图标, “提示”)
返回
结束如果
' 第二步:处理每个找到的文本文件,找出对应的V文件
重定义数组 (找到的V文件, 假, 0)
计次循环首 (取数组成员数 (找到的文本文件), i)
文件内容 = 到文本 (读入文件 (文件夹1路径 + 找到的文本文件 [i]))
行数组 = 分割文本 (文件内容, #换行符, )

' 获取第三行中的CL值
如果 (取数组成员数 (行数组) ≥ 3)
第三行 = 行数组 [3]
CL值 = 取文本右边 (第三行, 取文本长度 (第三行)寻找文本 (第三行, 搜索数字 + “对应的是”, , )取文本长度 (搜索数字 + “对应的是”) + 1)
' 假设CL值格式为 "CL,3"

' 查找包含 ZC 的行
计次循环首 (取数组成员数 (行数组), j)
行内容 = 行数组 [j]
如果 (寻找文本 (行内容, “ZC,”取文本右边 (CL值, 取文本长度 (CL值) - 3), , ) ≠ -1)
' 找到ZC行,提取ZC值
' 假设格式为 "ZC,3,第二段4条,第三段4条"
ZC值 = 取文本右边 (行内容, 取文本长度 (行内容)寻找文本 (行内容, “ZC,”, , ) + 3)

' 提取ZC值中的数字部分(逗号后面的数字)
数字部分 = 取文本右边 (ZC值, 取文本长度 (ZC值)寻找文本 (ZC值, “,”, , ))
数字部分 = 取文本左边 (数字部分, 寻找文本 (数字部分, “,”, , ) - 1)

' 生成8个文件名
文件名前缀 = “260209018BFT1”
计次循环首 (4, k)
生成的文件名 = 文件名前缀 + “PR_”取重复文本 (4 - 取文本长度 (到文本 (8 + k - 1)), “0”)到文本 (8 + k - 1)“.v”
加入成员 (找到的V文件, 生成的文件名)

生成的文件名 = 文件名前缀 + “DT_”取重复文本 (4 - 取文本长度 (到文本 (8 + k - 1)), “0”)到文本 (8 + k - 1)“.v”
加入成员 (找到的V文件, 生成的文件名)
计次循环尾 ()

跳出循环 ()
结束如果
计次循环尾 ()
结束如果
计次循环尾 ()
' 第三步:从文件夹3复制V文件到文件夹2
计次循环首 (取数组成员数 (找到的V文件), i)
如果 (文件是否存在 (文件夹3路径 + 找到的V文件 [i]))
复制文件 (文件夹3路径 + 找到的V文件 [i], 文件夹2路径 + 找到的V文件 [i])
否则
输出调试文本 (“文件不存在: ” + 文件夹3路径 + 找到的V文件 [i])
结束如果
计次循环尾 ()
信息框 (“处理完成!找到文本文件 ”到文本 (取数组成员数 (找到的文本文件)) + “ 个,复制V文件 ”到文本 (取数组成员数 (找到的V文件)) + “ 个。”, #信息图标, “完成”)
子程序名返回值类型公开备 注
寻找文件文本型 递归查找文件
参数名类 型参考可空数组备 注
路径文本型
属性整数型
变量名类 型静态数组备 注
文件文本型 
文件数组文本型0
子目录数组文本型0
i整数型 
' 查找文件
文件 = 寻找文件 (路径, 属性)
判断循环首 (文件 ≠ “”)
如果 (文件 ≠ “.” 文件 ≠ “..”)
如果 (取文本右边 (文件, 4)“.txt”)
加入成员 (文件数组, 文件)
结束如果
结束如果
文件 = 寻找文件 (, 属性)
判断循环尾 ()
返回 (文件数组)
子程序名返回值类型公开备 注
创建目录  
参数名类 型参考可空数组备 注
目录路径文本型
创建目录 (目录路径)


i支持库列表   支持库注释   
shell操作系统界面功能支持库
iext扩展界面支持库一

回复

使用道具 举报

结帖率:80% (4/5)

签到天数: 2 天

发表于 2026-2-14 22:11:08 | 显示全部楼层   上海市上海市
  
子程序名返回值类型公开备 注
_按钮1_被单击  
变量名类 型静态数组备 注
文件数组文本型0
i整数型 
临时_文本文本型 
文件_枚举 (“./文件夹1”, “*.txt”, 文件数组, 假, , )
调试输出 (文件数组)
计次循环首 (取数组成员数 (文件数组), i)
临时_文本 = 到文本 (读入文件 (“./文件夹1\” + 文件数组 [i]))
如果真 (文本_寻找文本 (临时_文本, 编辑框1.内容, , ) ≠ -1)
调试输出 (文件数组 [i])
文件_复制 (“./文件夹1\” + 文件数组 [i], “./文件夹2\” + 文件数组 [i], )

计次循环尾 ()


i支持库列表   支持库注释   
spec特殊功能支持库

回复

使用道具 举报

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

本版积分规则 致发广告者

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

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

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