...做一个易语言软件,把csv格式文件里的某个单元格的内容做一下修改...
发布网友
发布时间:2023-12-23 09:00
我来回答
共1个回答
热心网友
时间:2024-03-11 13:52
CSV也是TXT文本文件~用记事本打开就一目了然了~
写了个子程序,填进去调用就行了~
.版本 2
.子程序 修改CSV数据, 逻辑型
.参数 CSV文件名, 文本型, , 全路径文件名或当前目录内的文件名
.参数 CSV行号, 整数型, , 第几行
.参数 CSV列号, 整数型, , 第几列
.参数 CSV文本, 文本型, , 修改后的数据
.局部变量 CSV文件号, 整数型
.局部变量 Dpos, 整数型
.局部变量 Lpos, 整数型
.局部变量 Cpos, 整数型
.局部变量 Clng, 整数型
.局部变量 char, 字节型
CSV文件号 = 打开文件 (CSV文件名, , )
.如果真 (CSV文件号 = 0)
' 打开文件失败
返回 (假)
.如果真结束
移到文件首 (CSV文件号)
' 移动到目标行号
.计次循环首 (CSV行号 - 1, )
读入一行 (CSV文件号)
.如果真 (是否在文件尾 (CSV文件号, 真))
返回 (假)
.如果真结束
处理事件 ()
.计次循环尾 ()
Lpos = 取读写位置 (CSV文件号)
' 移动到目标列号
char = 0
Dpos = 0
.如果真 (CSV列号 > 1) ' 当目标列号=1时其实就是在行首
.判断循环首 (char ≠ 13) ' 是否换行
读入数据 (CSV文件号, char)
.如果真 (char = 44) ' 到分隔符
Dpos = Dpos + 1
.如果真 (Dpos = CSV列号 - 1)
' 已经移动到目标列号的位置
跳出循环 ()
.如果真结束
.如果真结束
处理事件 ()
.判断循环尾 ()
.如果真 (char = 13) ' 到行尾也没有到达目标列号 出错
返回 (假)
.如果真结束
.如果真结束
Cpos = 取读写位置 (CSV文件号) ' <需要修改的数据的位置
' 计算数据长度
char = 0
Clng = 0
.判断循环首 (char ≠ 13) ' 是否换行
读入数据 (CSV文件号, char)
.如果真 (char = 44) ' 到分隔符 跳出
跳出循环 ()
.如果真结束
Clng = Clng + 1
处理事件 ()
.判断循环尾 ()
' 开始修改
移动读写位置 (CSV文件号, 1, Cpos)
.如果真 (Clng > 0) ' 该位置有数据,删除
删除数据 (CSV文件号, Clng)
' 执行删除操作后读写位置会移动到文件尾部 所以要再移回去
移动读写位置 (CSV文件号, 1, Cpos)
.如果真结束
插入文本 (CSV文件号, CSV文本)
关闭文件 (CSV文件号)
返回 (真)
调用例子:
修改CSV数据 (“CSVTEST.CSV”, 到整数 (编辑框1.内容), 到整数 (编辑框2.内容), 编辑框3.内容)