标题: [问题求助] 求修改VBS代码:读取TXT第一行到剪贴板,并删除该TXT第一行(合并同类项) [打印本页]
作者: 我来了 时间: 2013-5-11 10:59 标题: 求修改VBS代码:读取TXT第一行到剪贴板,并删除该TXT第一行(合并同类项)
原因是这样的。我用按键精灵编了一个小程序。
(由于TXT文件有点大,结果用按键编出来的程序,读取的时候速度太慢,换成了VBS的代码简直就像飞。。。,罪过,又说了不少费话。
我想让它中转一下,所以出现上面的题目:
这个是按行读取的
On Error Resume Next
strFileName = "H:\列表.txt"
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFile = oFSO.OpenTextFile(strFileName)
If Err Then
WScript.Echo Err.Number & vbCrLf & Err.Description
Err.Clear
WScript.Quit
End If
Do Until oFile.AtEndOfLine
WScript.Echo oFile.ReadLine
Loop
这个是随机读取一行的:
randomize
set fso = CreateObject("Scripting.Filesystemobject")
set a = CreateObject("Scripting.Dictionary")
set file = fso.OpenTextFile("G:\读取的.txt")
do while file.AtendofStream<>true
m = m + 1
a.add m,file.readline
loop
file.close
h=int(rnd * m)
CreateObject("WScript.Shell").Run "G:\nircmd.exe clipboard set " & chr(34) & a(h) & chr(34)这段中,我只对这句感兴趣。
帮助我修改下VBS代码:
最后只要做到:
读取c:\test.txt第一行到剪贴板,并删除该TXT第一行,就算OK了。
只因学生太饭桶~~~,老师见笑了~~
作者: Demon 时间: 2013-5-11 11:15
发错版块了
作者: 我来了 时间: 2013-5-11 11:18
回复 2# Demon
罪过,罪过,主儿啊,饶恕我的无知吧。
作者: sz1121 时间: 2013-5-11 17:18
exe的行不?
作者: 我来了 时间: 2013-5-11 18:37
最好原VBS基础上改改。
不过先发上来应下急也行。
作者: apang 时间: 2013-5-11 19:19
本帖最后由 apang 于 2013-5-11 19:28 编辑
- strFileName = "d:\test.txt"
- Set ws = CreateObject("WScript.Shell")
- Set fso = CreateObject("Scripting.FileSystemObject")
- Set file = fso.OpenTextFile(strFileName,1)
-
- ws.Run "G:\nircmd.exe clipboard set "&chr(34)&file.ReadLine&chr(34),,True
-
- Do Until file.AtEndOfStream
- str = str & file.ReadLine & vbCrLf
- Loop
-
- file.close
- fso.OpenTextFile(strFileName,2).Write str
- MsgBox "OK"
复制代码
作者: 我来了 时间: 2013-5-11 19:54
本帖最后由 我来了 于 2013-5-11 20:16 编辑
谢谢楼上,
我把最后一句去了。
成功是成功了,但有个后遗症:进程中有大量的脚本未停止 从内存中释放啊。。。
作者: 我来了 时间: 2013-5-11 20:15
Dim fso,openFile
Set fso=CreateObject("Scripting.FileSystemObject")
Set openFile=fso.OpenTextFile("c:\软件名1.txt",1,True)
a=openFile.Readline
str=a
Set ws = wscript.createobject("wscript.shell")
ws.run "mshta vbscript:clipboardData.SetData("+""""+"text"+""""+","+""""&str&""""+")(close)",0,true
Text = CreateObject("scripting.filesystemobject").opentextfile("c:\软件名1.txt").readall
txtArray = Split(Text,vbcrlf)
Text = Replace(Text, txtArray(0) & vbcrlf, "")
const forwriting=2
set writefile=fso.opentextfile("c:\软件名1.txt",forwriting)
writefile.writeline(Text)
writefile.close
上边这个是我从另外一个论坛得到的代码,不存在上面的问题,发上来,
学习下。但读取下面的文本:
BMPArray = Plugin.BGCP2_02.LoadBMP("D:\pic\1.bmp|D:\pic\2.bmp|D:\pic\3.bmp")
For i = 0 To UBound(BMPArray)
TracePrint BMPArray(i)
Next
就会报错。
希望大帅出手,让两个均一百分。
作者: apang 时间: 2013-5-11 21:02
不明白什么意思。最后一句是显示"OK"的对话框,点击“确定”后WScript.exe进程就会消失。
作者: sz1121 时间: 2013-5-11 21:04
http://url.cn/FNfzj3
作者: 我来了 时间: 2013-5-11 21:20
回复 9# apang
WScript.exe是的,就是它在内存中有好多个,希望运行完了,马上结束。
所以,我直接把最后 一句弹框的给去掉了。
作者: 我来了 时间: 2013-5-11 21:23
回复 10# sz1121
大哥啊,我的目的是为了在按键精灵中调用结果,你这个在软件中,我还得搞个wm_command事件,或再抓取。。。就太麻烦了。
作者: sz1121 时间: 2013-5-13 17:00
回复 12# 我来了
还没解决???- Set clip=CreateObject("application.clipboard")
- clip.ShowMode=&HF0F0
- WScript.Echo clip.Clip("D:\abc.txt",1)
复制代码
'第一个参数为文件路径
'第二个参数为行数
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |