开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 267|回复: 9
收起左侧

[易语言] 易语言实现文本赋值

[复制链接]
结帖率:50% (4/8)
发表于 昨天 00:25 | 显示全部楼层 |阅读模式   浙江省金华市
100精币
如下文本文件(大概1000行,只列举3行内容):
army = 1,role_张三,role_李四1,role_李四12,role_李四23,role_李四64,role_李5,role_李四56,role_李四7,role_李四28,role_李434(10个role_)
army = 2,role_张三,role_李四1,role_李四12,role_李四23,role_李四64,role_李5,role_李四56,role_李四7,role_李四28,role_李434,role_李四73,role_李四27(12个role_)
army = 5,role_张三,role_李四1,role_李四12,role_李四23,role_李四64,role_李5,role_李四56,role_李四7,role_李四28,role_李434,role_李四73,role_李四73,role_李四73(13个role_)


要对每一行的role_人名 分别赋固定的值,比如第1行(10个role_)分别赋10个固定的数,第2行(12个role_)分别赋12个固定的数,,,,以此类推,每一行固定的数组可以自己设置比如:

army = 1,role_张三,1221,role_李四1,1211,role_李四12,1212121,role_李四23,121,role_李四64,11211,role_李5,121,role_李四56,11,role_李四7,1212121,role_李四28,122221,role_李434,1111111  (数组为:1221,1211,1212121,121,11211,121,11,1212121,122221,1111111)

army = 2,role_张三,12221,role_李四1,12211321,role_李四12,12621,role_李四23,12421,role_李四64,12621,role_李5,12721,role_李四56,12821,role_李四7,12291,role_李四28,123321,role_李434,124421,role_李四73,122121,role_李四27,125621

army = 5,role_张三,124221,role_李四1,142221,role_李四12,1245221,role_李四23,12221,role_李四64,124221,role_李5,1222561,role_李四56,1226721,role_李四7,122521,role_李四28,122721,role_李434,124221,role_李四73,1256221,role_李四73,1224521,role_李四73,1245221


要求 通过易语言 先分别设置好10个role_、12个role_、13个role_的数值组,通过查找 “army =”的编号(可以向上、向下查找),统计出 该编号的 role_ 数量,然后点击按钮自动(编号太多,最好不要选择)将对应数量的role_的数值组里面的数值 自动赋给该行的每一个role_(不同数量role_的数值组中,每个role_数值大小以及占百分比可以在文本框中显示出来)

求大神解答


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

签到天数: 10 天

发表于 昨天 02:15 | 显示全部楼层   福建省厦门市
你在说啥?
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 3 天

发表于 昨天 02:31 | 显示全部楼层   河北省石家庄市
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
role数值组_10文本型10 
role数值组_12文本型12 
role数值组_13文本型13 
当前行内容文本型  
当前行号整数型  
总行数整数型  
文件内容文本型0 

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
' 初始化10个role的数值组
role数值组_10 = { "1221", "1211", "1212121", "121", "11211", "121", "11", "1212121", "122221", "1111111" }

' 初始化12个role的数值组
role数值组_12 = { "12221", "12211321", "12621", "12421", "12621", "12721", "12821", "12291", "123321", "124421", "122121", "125621" }

' 初始化13个role的数值组
role数值组_13 = { "124221", "142221", "1245221", "12221", "124221", "1222561", "1226721", "122521", "122721", "124221", "1256221", "1224521", "1245221" }

' 读取文件内容
编辑框_文件内容.内容 = 读入文件 ("data.txt")
文件内容 = 分割文本 (编辑框_文件内容.内容, #换行符, )
总行数 = 取数组成员数 (文件内容)

' 显示百分比信息
显示百分比信息 ()
子程序名返回值类型公开备 注
_按钮_处理_被单击  
.局部变量 i, 整数型
.局部变量 当前role数量, 整数型
.局部变量 行内容, 文本型
.局部变量 role列表, 文本型, , "0"
.局部变量 新行内容, 文本型

计次循环首 (总行数, i)
行内容 = 文件内容[i]

' 检查是否是army行
如果 (寻找文本 (行内容, "army =", , ) > 0)
当前行内容 = 行内容
当前行号 = i

' 统计role数量
role列表 = 分割文本 (行内容, ",", )
当前role数量 = 取数组成员数 (role列表) - 1  ' 减去army部分

' 根据role数量选择对应的数值组
判断 (当前role数量 = 10)
新行内容 = 生成新行内容 (role列表, role数值组_10)
判断 (当前role数量 = 12)
新行内容 = 生成新行内容 (role列表, role数值组_12)
判断 (当前role数量 = 13)
新行内容 = 生成新行内容 (role列表, role数值组_13)
信息框 ("不支持的role数量:" + 到文本 (当前role数量), 0, , )
到循环尾 ()

' 更新文件内容
文件内容[i] = 新行内容
' 不是army行,跳过

计次循环尾 ()

' 更新显示
编辑框_文件内容.内容 = 合并文件内容 ()
信息框 ("处理完成!", 0, , )
子程序名返回值类型公开备 注
生成新行内容文本型 
DLL命令名返回值类型公开备 注
(暂未填写DLL命令名)   
DLL库文件名:
(未填写库文件名)
在DLL库中对应命令名:
(未填写命令名)
参数名类 型传址数组备 注
role列表文本型
数值组文本型
.局部变量 i, 整数型
.局部变量 新行内容, 文本型

新行内容 = role列表[1]  ' army部分

计次循环首 (取数组成员数 (数值组), i)
新行内容 = 新行内容 + "," + role列表[i + 1] + "," + 数值组[i]
计次循环尾 ()

返回 新行内容
子程序名返回值类型公开备 注
合并文件内容文本型 
.局部变量 结果, 文本型
.局部变量 i, 整数型

计次循环首 (总行数, i)
如果 (i = 1)
结果 = 文件内容[i]
结果 = 结果 + #换行符 + 文件内容[i]

计次循环尾 ()

返回 结果
子程序名返回值类型公开备 注
显示百分比信息  
.局部变量 总数值, 长整数型
.局部变量 i, 整数型
.局部变量 百分比信息, 文本型

' 显示10个role的百分比
总数值 = 0
计次循环首 (10, i)
总数值 = 总数值 + 到长整数 (role数值组_10[i])
计次循环尾 ()

百分比信息 = "10个role的数值组:" + #换行符
计次循环首 (10, i)
百分比信息 = 百分比信息 + "role" + 到文本 (i) + ": " + role数值组_10[i] + " (" + 到文本 (到长整数 (role数值组_10[i]) × 100 ÷ 总数值) + "%)" + #换行符
计次循环尾 ()

' 显示12个role的百分比
总数值 = 0
计次循环首 (12, i)
总数值 = 总数值 + 到长整数 (role数值组_12[i])
计次循环尾 ()

百分比信息 = 百分比信息 + #换行符 + "12个role的数值组:" + #换行符
计次循环首 (12, i)
百分比信息 = 百分比信息 + "role" + 到文本 (i) + ": " + role数值组_12[i] + " (" + 到文本 (到长整数 (role数值组_12[i]) × 100 ÷ 总数值) + "%)" + #换行符
计次循环尾 ()

' 显示13个role的百分比
总数值 = 0
计次循环首 (13, i)
总数值 = 总数值 + 到长整数 (role数值组_13[i])
计次循环尾 ()

百分比信息 = 百分比信息 + #换行符 + "13个role的数值组:" + #换行符
计次循环首 (13, i)
百分比信息 = 百分比信息 + "role" + 到文本 (i) + ": " + role数值组_13[i] + " (" + 到文本 (到长整数 (role数值组_13[i]) × 100 ÷ 总数值) + "%)" + #换行符
计次循环尾 ()

编辑框_百分比信息.内容 = 百分比信息
子程序名返回值类型公开备 注
_按钮_保存文件_被单击  
如果 (写到文件 ("output.txt", 编辑框_文件内容.内容))
信息框 ("文件保存成功!", 0, , )
信息框 ("文件保存失败!", 0, , )

回复

使用道具 举报

结帖率:50% (4/8)

签到天数: 2 天

 楼主| 发表于 昨天 08:09 | 显示全部楼层   浙江省金华市
huayuanderen 发表于 2025-8-10 02:31
[e=0].版本 2

.程序集 窗口程序集_启动窗口

能否把源码发上来

补充内容 (2025-8-10 09:31):
百分比能不能保留小数点后2位

补充内容 (2025-8-10 09:42):
并且 赋值的数组 是通过程序窗口 插入进去的  因为行数很多,每一行role数量都不一样
回复

使用道具 举报

结帖率:100% (8/8)

签到天数: 10 天

发表于 昨天 09:31 | 显示全部楼层   安徽省六安市
自定义数据类型  不行么
回复

使用道具 举报

结帖率:50% (4/8)

签到天数: 2 天

 楼主| 发表于 昨天 09:48 | 显示全部楼层   浙江省金华市
花间一壶酒 发表于 2025-8-10 09:31
自定义数据类型  不行么

如何自定义
回复

使用道具 举报

结帖率:100% (8/8)

签到天数: 10 天

发表于 昨天 12:30 | 显示全部楼层   安徽省六安市
这样子么

11.e

3.88 KB, 下载次数: 0

1.png
2.png
回复

使用道具 举报

结帖率:50% (4/8)

签到天数: 2 天

 楼主| 发表于 昨天 13:05 | 显示全部楼层   浙江省金华市

不是  ,是将值赋给姓名 (按照一行为一组),每一组的姓名、数量多少可以自己添加,每一组的每个姓名的赋值也可以自己定义,不知道能不能实现
回复

使用道具 举报

签到天数: 10 天

发表于 昨天 16:25 | 显示全部楼层   广东省阳江市
用数据库挺好,效率会高点。 QQ20250810-162421.png
回复

使用道具 举报

结帖率:50% (4/8)

签到天数: 2 天

 楼主| 发表于 昨天 16:57 | 显示全部楼层   浙江省金华市
cobi 发表于 2025-8-10 16:25
用数据库挺好,效率会高点。

大佬能帮忙做一个吗
回复

使用道具 举报

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

本版积分规则 致发广告者

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

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

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