vbs如何在已存在的文本文件中某一行插入内容?

曲建华 2018-12-14 04:13:00

假如我想在已经存在的文本文件中,图中第三行的第五个字符后面加入一个变量“k”,并保存,该如何写代码? “*”号代表任意内容?????
...全文
419 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
曲建华 2018-12-17
  • 打赏
  • 举报
回复
引用 6 楼 笨狗先飞 的回复:
文件全读进内存变量里,操作完,然后保存回文件里,多省事
虽然听不太懂,但还是很感谢,谁让我是菜鸟呢 我研究研究
曲建华 2018-12-17
  • 打赏
  • 举报
回复
引用 5 楼 舉杯邀明月 的回复:
忘记了………… 之前给你的那些“示例代码”,都是用的 TextStream对象来操作的。 刚才查了一下,我还真没有找到这玩意儿“定位到开头”的接口方法。 估计它只支持“向后跳”,不支持“回头”吧。 看来用这个,只有“关闭、再重新创建”了。
好的 谢谢! 我研究研究
舉杯邀明月 2018-12-14
  • 打赏
  • 举报
回复
说的也是,一般象几MB、十来MB的文本文件,都很适合全部读到内存中再说……
甚至上百M的都可以全读到内存再处理。

如果要“按行处理”,用字符串数组来存储每一行就行了。
笨狗先飞 2018-12-14
  • 打赏
  • 举报
回复
文件全读进内存变量里,操作完,然后保存回文件里,多省事
舉杯邀明月 2018-12-14
  • 打赏
  • 举报
回复
忘记了…………
之前给你的那些“示例代码”,都是用的 TextStream对象来操作的。
刚才查了一下,我还真没有找到这玩意儿“定位到开头”的接口方法。


估计它只支持“向后跳”,不支持“回头”吧。
看来用这个,只有“关闭、再重新创建”了。
舉杯邀明月 2018-12-14
  • 打赏
  • 举报
回复
引用 3 楼 曲建华 的回复:
[quote=引用 1 楼 舉杯邀明月 的回复:]
简单说一下:
…………

好的谢谢!那假如这个文件我已经从头读到尾了,如何再重新读一遍呢?[/quote]

简单粗暴的方法: 关闭文件,再重新打开。



比较“正经”的方法: 执行一句 seek #fn , 1
fn 是你打开时的文件号,如果在VB/VBA 中使用,这儿的“fn”跟相应的Open语句用相同的常数/变量 就行。

不知道VBS中能否通用,但我感觉是可以用的,尤其是文件号用常数的时候。
比如说,你打开文件时是 open "XXXXXX" for input as #5
那么不管后面读到哪了,执行 seek #5, 1 就可以“从头再来”读……
曲建华 2018-12-14
  • 打赏
  • 举报
回复
引用 1 楼 舉杯邀明月 的回复:
简单说一下: 参考你最开始的那个处理XML文件的例子,在“读文件”时用一个变量来计数,看当前读的是第几行了。 到了你“要处理的那行”,假设那行内容读到变量 strTemp 中了: strTemp = left(strtemp ,5) & k & mid(strtemp ,6) 执行这句后,strTemp 的值,就是“前5个字符 + 变量k 的内容 + 原来第6个字符到结尾全部”的内容了。 再写入文件即可…………
好的谢谢!那假如这个文件我已经从头读到尾了,如何再重新读一遍呢?
舉杯邀明月 2018-12-14
  • 打赏
  • 举报
回复
字符串函数,都是按“字符数”来算的。
在ANSI编码(通常的txt类型都是这种编码)的文本文件中,
 1个英文在文件中占1字节,是1个字符;1个汉字要占2字节,它仍然是1个字符。
舉杯邀明月 2018-12-14
  • 打赏
  • 举报
回复
简单说一下:

参考你最开始的那个处理XML文件的例子,在“读文件”时用一个变量来计数,看当前读的是第几行了。
到了你“要处理的那行”,假设那行内容读到变量 strTemp 中了:

strTemp = left(strtemp ,5) & k & mid(strtemp ,6)
执行这句后,strTemp 的值,就是“前5个字符 + 变量k 的内容 + 原来第6个字符到结尾全部”的内容了。
再写入文件即可…………
2007-6-19 VER 1.5.0.65
1.增加Cjpeg 的 GetBytes 函数,可以对图片数据动态获取
2.增加了 clsStringArray 的Byte数组管理功能,可插入字节、字节集,查找字节,得到或设置字节集等功能
3.增加了 网络服务器和客户端的 Connection 对象的Tag属性 和 GetNewConnection函数,用于克隆自身
2007-6-18 VER 1.5.0.54
1.增加库 CWebCam 对摄像头进行控制
2.增加 CJpeg 库可对图像进行JPG格式的转换
3.增加 CDIBSection 库对点阵图进行操作
4.修正了 CConfig 库的 WriteString 方法的Bug
5.执行了安装命令后,增加了环境变量 ,增加 /uninstall 卸载命令,并提供了对文件类型的反注册功能
6.网络客户端 CClient库增加了GetIPAddress功能,可对主机名进行IP转换
2007-6-14 VER 1.5.0.40
1.增加示例:系统服务管理器.sps(未全部完成,但提供类模块 ServiceManager.CPS 文件,完全控制服务)
2.修正了部分 BUG
2007-6-13 VER 1.5.0.19
1.增加支持库 CServices 可对WinNT以上系统服务进行如果下操作:
1)安装:可将任何可执行文件安装为系统服务
2)卸载:可卸载指定服务
3)查询:可查询任何指定服务的状态,返回如 正在停止,已停止,正在运行,正在启动等
4)设置:可设置任何服务的启动方式,如设置为 系统、自动、手动、已禁用等
5)枚举:可枚举系统内所有已安装的服务,以及对应的显示名称、描述、映像路径等
2.修正注册表支持库 并且更名为 CConfig 意为配置
3.增强 CWin32 库 新增函数:FindChildWindow 用于查找指定窗口的子窗口
   新增函数:EnumAllChildWindows 枚举指定窗口的所有子窗口(包含子窗口的子窗口)
增加函数:GetChildWindows 枚举指定窗口的所有子窗口(不包含子窗口的子窗口)
新增函数:WindowsList 枚举所有系统正在运行的顶级窗口
 新增例程:SuperSPY ++ 演示以上功能
2007-6-12 VER 1.5.0.9
1.针对 ActiveX EXE 公开了 CForm 对象 和 CScriptEngine 对象
2.CScriptEngine 对象增加了 ExecuteCode 方法,可以运行字符串代码,这样就修补了 ExecuteFile 的不灵活
2007-6-11 VER 1.5.0.0
1.重要更新:
支持编译命令 /c
可编译所支持的脚本源文件(*.sps,*.sss,*.vbs,*.js)为EXE独立文件
在 *.sps ,*.sss 文件上点击右键弹出菜单有加入“编译”命令
说明:编译器不自动搜索相关文件,如果需相关文件,请保证在运行时存在
2.修正了网络发送文件的BUG(发送的文件总是少一字节,导致某些文件传送后无法使用)
2007-6-8 VER 1.3.0.94
1.修正 CFileIO 的 WriteToFile 函数名为 WriteTextFile 修正BUG
2.全面改变 CFileIO 的接口函数,原有函数名将都已被替换:参数:fNumber 未指定将用 Openfile 打开的句柄
'打开文件,返回一个文件号
OpenFile(文件名[,xType As String = "output"])

'写入二进制内容 Put->WriteBytes(Data()[,offset = 1][,fNumbe = 0])
'读二进制内容 Get->ReadBytes([offset = 1][,Length = -1][,fNumbe = 0])'参数:offset 位置'参数:Length 读入长度'
'移动读写位置 Seek->SeekTo
'写文本 Print->PrintText (what[,fNumber])
'读取字符 ReadStr([lCount=0][,fNumber])
'读入一行 ReadLine
'读入行数 ReadLines(NumberOfLines[, fNumber = 0]) 参数:NumberOfLines 指定要读取多少行
'读取从某行到某行 ReadLinesEx([StartLine = 1][,[EndLine = -1][,fNumber = 0])
'读取由文件名指定的文本文件 ReadTextFile(FileName)
'写文本文件 WriteTextFile(FileName,Texts)
'一行一行文本文件 ReadFileLineByLine([fNumber])
'关闭文件 Close->CloseFile([fNumber])

3.修正 SControl 的背景色与前景色设置
2007-6-4 VER 1.3.0.83
1.增加了Zlib压缩解压缩支持库,并在 EncryptFile.sps 示例增加了演示
虚拟机会检查 System 路径和程序路径下是否存在Zlib.dll文件
如果不存在,程序会在 System32 路径下释放此文件
(Zlib.Dll是国外著名的开源压缩程序,压缩率仅次于Winrar,而且速度很快)
2.修正了对VBS和JS文件的程序对象支持,现在可以在VBS脚本或JS脚本使用App全局对象了
2007-6-3 VER 1.3.0.71
1.修正了窗体 CtrlItems 对象的 DrawControl 捕获错误能力,如果提供了不被支持的控件,将会结束程序
2.增加了著名的几个加密 及解密 控件 SEncrypt.DLL 和示例 EncryptFile.sps
3.增加了窗体关闭时的事件捕捉及取消关闭窗口的能力,同时 所有的 vbscript 窗体过程必须写为 function 形式,对原有的 sub 形式不再支持

2007-6-2 VER 1.3.0.63
1.增强了同一脚本程序的多脚本语言功能,真正实现了同一脚本里使用多种语言
2.增加例程 javascript学习.sps 演示了VBS调用JS的函数并得到返回值
3.修正了多语言脚本的Code代码段读取分析问题
2007-6-1 VER 1.3.0.50
1.增加了Base64加密类支持
2.修整了网络服务器和网络客户端的示例
3.增加了网络服务器监听指定IP地址的功能,现在已经可以捕捉监听出错
4.增加了网络客户端连接时出错的捕获,连接超时为15秒
2007-3-27 VER 1.2.0.3
1.超级脚本虚拟机发布
第1章Range(单元格)对象8 技巧1单元格的引用方法8 1-1使用Range属性8 1-2使用Cells属性9 1-3使用快捷记号9 1-4使用Offset属性10 1-5使用Resize属性11 1-6使用Union方法12 1-7使用UsedRange属性12 1-8使用CurrentRegion属性13 技巧2选定单元格区域的方法13 2-1使用Select方法13 2-2使用Activate方法14 2-3使用Goto方法15 技巧3获得指定行、列的最后一个非空单元格15 技巧4定位单元格18 技巧5查找单元格19 5-1使用Find方法19 5-2使用Like运算符23 技巧6替换单元格内字符串24 技巧7复制单元格区域25 技巧8仅复制数值到另一区域28 8-1使用选择性粘贴28 8-2直接赋值的方法29 技巧9单元格自动进入编辑状态30 技巧10禁用单元格拖放功能30 技巧11单元格格式操作31 11-1单元格字体格式设置31 11-2设置单元格内部格式33 11-3为单元格区域添加边框34 11-4灵活设置单元格的行高列宽36 技巧12单元格的数据有效性37 12-1在单元格建立数据有效性37 12-2判断单元格是否存在数据有效性39 12-3动态的数据有效性39 12-4自动展开数据有效性下拉列表41 技巧13单元格的公式42 13-1在单元格写入公式42 13-2检查单元格是否含有公式43 13-3判断单元格公式是否存在错误44 13-4取得单元格公式的引用单元格45 13-5将单元格的公式转换为数值46 技巧14单元格的批注47 14-1判断单元格是否存在批注47 14-2为单元格添加批注48 14-3删除单元格的批注49 技巧15合并单元格操作50 15-1判断单元格区域是否存在合并单元格50 15-2合并单元格时连接每个单元格的文本51 15-3合并内容相同的连续单元格52 15-4取消合并单元格时在每个单元格保留内容54 技巧16高亮显示单元格区域55 技巧17双击被保护单元格时不显示提示消息框56 技巧18重新计算工作表指定区域58 技巧19录入数据后单元格自动保护58 技巧20工作表事件Target参数的使用方法60 20-1使用单元格的Address 属性60 20-2使用Column属性和Row属性61 20-3使用Intersect方法61 第2章Worksheet(工作表)对象63 技巧21引用工作表的方式63 21-1使用工作表的名称63 21-2使用工作表的索引号63 21-3使用工作表的代码名称64 21-4使用ActiveSheet属性引用活动工作表64 技巧22选择工作表的方法65 技巧23遍历工作表的方法66 23-1使用For...Next 语句66 23-2使用For Each...Next 语句68 技巧24在工作表上下翻页69 技巧25工作表的添加与删除70 技巧26禁止删除指定工作表74 技巧27自动建立工作表目录76 技巧28工作表的深度隐藏78 技巧29防止更改工作表的名称80 技巧30工作表一次插入多行81 技巧31删除工作表的空行82 技巧32删除工作表的重复行84 技巧33定位删除特定内容所在的行86 技巧34判断是否选整行87 技巧35限制工作表的滚动区域88 技巧36复制自动筛选后的数据区域89 技巧37使用高级筛选获得不重复记录91 技巧38工作表的保护与解除保护92 技巧39奇偶页打印95 第3章Wordbook(工作簿)对象97 技巧40工作簿的引用方法97 40-1使用工作簿的名称97 40-2使用工作簿的索引号97 40-3使用ThisWorkbook98 40-4使用ActiveWorkbook99 技巧41新建工作簿文件99 技巧42打开指定的工作簿101 技巧43判断指定工作簿是否打开104 43-1遍历Workbooks集合方法104 43-2错误处理方法104 技巧44禁用宏则关闭工作簿105 技巧45关闭工作簿不显示保存对话框109 45-1使用Close方法关闭工作簿109 45-2单击工作簿关闭按钮关闭工作簿111 技巧46禁用工作簿的关闭按钮111 技巧47保存工作簿的方法113 47-1使用Save方法113 47-2直接保存为另一文件名113 47-3保存工作簿副本113 技巧48保存指定工作表为工作簿文件114 技巧49打印预览时不触发事件116 技巧50设置工作簿文档属性信息118 技巧51不打开工作簿取得其他工作簿数据119 51-1使用公式119 51-2使用GetObject函数120 51-3隐藏Application对象121 51-4使用ExecuteExcel4Macro

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧