level 3
vb程序所在目录aaa(即:“App.Path & "aaa”)中有若干个txt格式的文本文件,这些文件在最后一行都出现乱符。所以想统一把这些文件的最行一行删除。怎样做到?
2017年05月18日 01点05分
1
level 11
如果你会用vb删除一个txt的最后一行,我来告诉你这么删除左右的txt的最后一行
2017年05月18日 02点05分
2
level 15
说一下思路:
首先对于一个txt文件,要删掉最后一行,需要把原始文件所有内容读出,存入一个数组中(每个元素为一行内容),然后用Output方式打开原始文件(即把原始文件清空),把数组中除了最后一项以外的其余内容写入文件
然后,要处理所有文件,就是循环查找文件夹中的txt文件并进行同样操作
参考代码(未经测试):
dim fn as string,s() as string,i as integer
fn=dir(app.path & "\aaa\*.txt")
do while fn<>""
open app.path & "\aaa\" & fn for input as #1
s=split(strconv(inputb(lof(1),1),vbunicode),vbcrlf)
close #1
open app.path & "\aaa\" & fn for output as #1
for i=0 to ubound(s)-1
print #1,s(i)
next i
close #1
fn=dir
loop
2017年05月18日 02点05分
3
测试了,好像没有解决问题
2017年05月18日 05点05分
@webyouth 因为没有看到你的文件内容,所以不能确定乱码行是否确实是最后一行,可能看上去是最后一行,但后面还有换行符这样子;你试试多删一行(就是把ubound(s)-1改成ubound(s)-2),看有没有效果
2017年05月18日 05点05分
@初音✨七奈 大佬好,问一下如果需要消除的是最后一行的空行该怎么操作?
2020年12月19日 06点12分
@zzzzzzzz💤 虽然你挖坟了……不过我这个代码确实会有这样的问题:处理之后的文件最后会有一个空行;解决方法:循环写文件时先不写最后一行,循环之后写最后一行时后面加个分号(像这样:print #1,s(i);)
2020年12月19日 06点12分