首页 /  易语言

易语言读取编辑框指定行数内容到另一个编辑框

作者:僧豆
.版本 2
.支持库 iconv
.支持库 spec

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

.子程序 __启动窗口_创建完毕

编辑框1.内容 = 编码_Utf8到Ansi (读入文件 (“C:\Users\admin\Desktop\” + “测试1.txt”))



.子程序 _按钮1_被单击
.局部变量 局_提取数量, 整数型
.局部变量 局_原始内容, 文本型
.局部变量 局_内容数组, 文本型, , "0"
.局部变量 局_提取内容, 文本型
.局部变量 局_剩余内容, 文本型
.局部变量 局_源文件路径, 文本型
.局部变量 局_实际总行数, 整数型
.局部变量 局_计次, 整数型
.局部变量 局_保存结果, 逻辑型
.局部变量 局_新内容, 字节集

' 1. 读取提取数量并验证
局_提取数量 = 到整数 (编辑框3.内容)
.如果真 (局_提取数量 ≤ 0)
    信息框 (“请输入大于0的提取数量”, 0, “提示”, )
    返回 ()
.如果真结束

' 2. 读取编辑框1内容并验证
局_原始内容 = 编辑框1.内容
.如果真 (局_原始内容 = “”)
    信息框 (“编辑框1无内容可提取”, 0, “提示”, )
    返回 ()
.如果真结束

' 3. 定义源文件路径
局_源文件路径 = 取运行目录 () + “\测试1.txt”

' 4. 分割内容为行数组
局_内容数组 = 分割文本 (局_原始内容, #换行符, )
局_实际总行数 = 取数组成员数 (局_内容数组)

' 5. 处理提取数量超过实际行数的情况
.如果 (局_提取数量 > 局_实际总行数)
    局_提取数量 = 局_实际总行数
    信息框 (“提取数量超过实际行数,将提取全部内容”, 0, “提示”, )
.否则

.如果结束

' 6. 提取指定数量内容到编辑框2
局_提取内容 = “”
.计次循环首 (局_提取数量, 局_计次)
    .如果真 (局_计次 > 1)
        局_提取内容 = 局_提取内容 + #换行符
    .如果真结束
    局_提取内容 = 局_提取内容 + 局_内容数组 [局_计次]
.计次循环尾 ()
编辑框2.内容 = 局_提取内容

' 7. 计算剩余内容
局_剩余内容 = “”
.计次循环首 (局_实际总行数 - 局_提取数量, 局_计次)
    .如果真 (局_计次 > 1)
        局_剩余内容 = 局_剩余内容 + #换行符
    .如果真结束
    局_剩余内容 = 局_剩余内容 + 局_内容数组 [局_计次 + 局_提取数量]
.计次循环尾 ()

' 8. 用剩余内容更新源文件
局_保存结果 = 写到文件 (局_源文件路径, 到字节集 (编码转换 (到字节集 (局_剩余内容), #编码_GBK, #编码_UTF_8, )))
.如果真 (局_保存结果 = 假)
    信息框 (“源文件更新失败!”, 0, “错误”, )
    返回 ()
.如果真结束

' 9. 重新读取源文件并更新编辑框1
局_新内容 = 读入文件 (局_源文件路径)
.如果真 (局_新内容 = {  })
    信息框 (“重新读取源文件失败!”, 0, “错误”, )
    返回 ()
.如果真结束
编辑框1.内容 = 编码_Utf8到Ansi (读入文件 (“C:\Users\admin\Desktop\” + “测试1.txt”))

' 操作完成提示
调试输出 (“提取完成,已提取” + 到文本 (局_提取数量) + “行内容”)
信息框 (“提取完成,已更新源文件”, 0, “提示”, )

' 10. 编辑框2的新内容写入到合同文件中
写到文件 (“C:\Users\admin\Desktop\” + “测试2.txt”, 到字节集 (编码转换 (到字节集 (编辑框2.内容), #编码_GBK, #编码_UTF_8, )))
   视频  、  模板  、  工程  、  步骤  、  打包