Board logo

标题: [问题求助] [已解决]求VBS代码实现自动将不同剪切板内容,按每次[空行]复制到1个txt文档? [打印本页]

作者: 1139054012    时间: 2015-5-18 23:13     标题: [已解决]求VBS代码实现自动将不同剪切板内容,按每次[空行]复制到1个txt文档?

本帖最后由 1139054012 于 2015-5-22 12:29 编辑

能加个判断条件吗?
判断有日文的上面1行是空号,有日文的下面中文的不空行呢?
比如复制剪切板到TXT的内容是:
  1. 「その凶悪なる力を行使して、あたしたちを無理矢理授業や、部活や、テストに追い立てるのよ…」
  2. 「行使那個凶惡的力量、硬授課我們、社團活動、趕走在(到)試驗喲…」
  3. 「行使那凶惡的能力,強迫課、部活、測試攆走我們…」
  4. 「那個凶惡的力量行使,把我們強行上課,社團活動和、測試趕走。…」
复制代码
我想要的格式是:
  1. 「そう見えるけど…あいつは人間じゃない…」
  2. 「那樣能看見…那傢伙不是人類…」
  3. 「雖然看上去是那樣…那家夥不是人類…」
  4. 「その凶悪なる力を行使して、あたしたちを無理矢理授業や、部活や、テストに追い立てるのよ…」
  5. 「行使那個凶惡的力量、硬授課我們、社團活動、趕走在(到)試驗喲…」
  6. 「行使那凶惡的能力,強迫課、部活、測試攆走我們…」
  7. 「那個凶惡的力量行使,把我們強行上課,社團活動和、測試趕走。…」
复制代码
也就是判断有日文上面空行,下面的不空行呢?
有没大神能够帮忙

如果vbs代码无法实现,求ahk代码?
作者: CrLf    时间: 2015-5-18 23:28

[空号]是什么,空格键?
作者: 1139054012    时间: 2015-5-18 23:46

本帖最后由 1139054012 于 2015-5-19 02:48 编辑

回复 2# CrLf


    不还意思打错字了,是【空行】,正如我上面例子说明请问能否用vbs或ahk代码实现呢?

※和之前的前提条件相同,还是【自动复制剪切板文本并分行保存一个txt】

不过这次多了个条件,我希望能够有个判断条件?
1.有日文的上面空出2行
2.而有日文的下面中文的不空行呢?

仔细想想我说的太复杂了,简单说就是每次复制到剪切板导出到TXT文档,都默认【空2行】来,另外去除上下几行重复的句子。只留1句1行就好
这样应该就能实现我想要的了吧。
作者: CrLf    时间: 2015-5-19 00:03

本帖最后由 CrLf 于 2015-5-19 00:44 编辑

ahk 代码:
  1. ~^c up::
  2. text := trim(clipboard, " `t`r`n")
  3. FileAppend, %text%`r`n`r`n, 另存路径.txt, UTF-8
  4. return
复制代码

作者: 1139054012    时间: 2015-5-19 00:33

本帖最后由 1139054012 于 2015-5-19 00:35 编辑

回复 4# CrLf


  直接复制代码到txt改后缀ahk,打包exe双击运行,出现错误无法使用

---------------------------
1.exe
---------------------------
Error: Call to nonexistent function.

Specifically: trim(clipboard)

        Line#
--->        002: text := trim(clipboard)

The program will exit.
---------------------------
确定   
---------------------------
作者: CrLf    时间: 2015-5-19 00:44

已修改
作者: 1139054012    时间: 2015-5-19 00:49

回复 6# CrLf


    ---------------------------
2222.exe
---------------------------
Error: Call to nonexistent function.

Specifically: trim(clipboard, "        

")

        Line#
--->        002: text := trim(clipboard, "        

")

The program will exit.
---------------------------
确定   
---------------------------




打包exe运行还是这错误,是什么地方不对吗?
作者: tmplinshi    时间: 2015-5-19 22:07

你的 ahk 版本太低了。Trim() 函数需要 1.0.90 以上版本。
最新版下载地址: http://ahkscript.org
作者: 1139054012    时间: 2015-5-20 23:33

本帖最后由 1139054012 于 2015-5-21 00:22 编辑

回复 8# tmplinshi
谢谢,的确我之前一直用的是Ahk2Exe v1.0.47.06版本。换了高版本打包exe后成功运行.^O^

大神,能看下10楼吗?能否修改下代码,满足我的需要条件吗?
作者: 1139054012    时间: 2015-5-21 00:05

本帖最后由 1139054012 于 2015-5-21 00:25 编辑

回复 7# 1139054012


      感谢,是我的疏忽,一直使用旧版本都没更新。使用新版本打包能成功使用。

请问这代码只能手动复制,才能导出TXT。能像之前的代码,不用手动复制,默认自动将【剪切板】导出到TXT,并默认每次更换剪切板内容都空2行,若每次复制到剪切板里几行内容,就不换行导出呢?
若第一次剪切板自动复制的内容是
  1. 「その凶悪なる力を行使して、あたしたちを無理矢理授業や、部活や、テストに追い立てるのよ…」
  2. 「行使那個凶惡的力量、硬授課我們、社團活動、趕走在(到)試驗喲…」
  3. 「行使那凶惡的能力,強迫課、部活、測試攆走我們…」
  4. 「那個凶惡的力量行使,把我們強行上課,社團活動和、測試趕走。…」
复制代码
我希望运行exe导出到TXT是,去除每次复制到剪切板的空行和重复句子,只保留1句就好。
  1. 空行
  2. 空行
  3. 「その凶悪なる力を行使して、あたしたちを無理矢理授業や、部活や、テストに追い立てるのよ…」
  4. 「行使那個凶惡的力量、硬授課我們、社團活動、趕走在(到)試驗喲…」
  5. 「行使那凶惡的能力,強迫課、部活、測試攆走我們…」
  6. 「那個凶惡的力量行使,把我們強行上課,社團活動和、測試趕走。…」
复制代码
第二次自动复制剪切板内容,格式和上面一样
,空2行,剪切板的空行默认去掉
  1. 空行
  2. 空行
  3. 「その凶悪なる力を行使して、あたしたちを無理矢理授業や、部活や、テストに追い立てるのよ…」
  4. 「行使那個凶惡的力量、硬授課我們、社團活動、趕走在(到)試驗喲…」
  5. 「行使那凶惡的能力,強迫課、部活、測試攆走我們…」
  6. 「那個凶惡的力量行使,把我們強行上課,社團活動和、測試趕走。…」
  7. 空行
  8. 空行
  9. 「そう見えるけど…あいつは人間じゃない…」
  10. 「那樣能看見…那傢伙不是人類…」
  11. 「雖然看上去是那樣…那家夥不是人類…」
  12. 空行
  13. 空行
  14. 「その凶悪なる力を行使して、あたしたちを無理矢理授業や、部活や、テストに追い立てるのよ…」
  15. 「行使那個凶惡的力量、硬授課我們、社團活動、趕走在(到)試驗喲…」
  16. 「行使那凶惡的能力,強迫課、部活、測試攆走我們…」
  17. 「那個凶惡的力量行使,把我們強行上課,社團活動和、測試趕走。…」
  18. .......
复制代码
请问这样的格式,请问能否修改下代码呢?
作者: pcl_test    时间: 2015-5-21 12:53

本帖最后由 pcl_test 于 2015-5-22 08:09 编辑

回复 10# 1139054012
  1. #SingleInstance force
  2. ;按下Ctrl+C触发脚本开启自动保存,按 Win+Esc 退出脚本
  3. ~^c::
  4. loop{
  5. clipwait
  6. loop
  7. {
  8.     StringReplace, clipboard, clipboard, `r`n`r`n, `r`n, UseErrorLevel
  9.     if ErrorLevel = 0
  10.         break
  11. }
  12. text := f(clipboard)
  13. f(a,d:="`r`n"){
  14. a:=strsplit(a,d)
  15. b:={}
  16. c:=""
  17. for _,v in a
  18. if b[v]
  19. continue
  20. else
  21. b[v]:=true
  22. ,c.=v d
  23. return c
  24. }
  25. text := trim(text," `t`r`n")
  26. FileAppend,%text%`r`n`r`n`r`n, 另存路径.txt, UTF-8
  27. clipBoard =
  28. }
  29. ~#ESC::ExitApp
复制代码

作者: 1139054012    时间: 2015-5-22 05:13

本帖最后由 1139054012 于 2015-5-22 05:41 编辑

回复 11# pcl_test


   谢谢,虽然满足可了我的要求,= =||但怎么必须手动Ctrl+C的才能导出TXT文档,OTL.不能自动将剪切板的内容导出TXT和右键复制能直接导出TXT,请问能不能修改下代码,让它不是固定必须手动Ctrl+C才能,自动将剪切板导出TXT文档呢?

当前代码条件不变:
去除每次变更剪切板内容时去除重复行和空行,每次变更默认空2行、
作者: pcl_test    时间: 2015-5-22 08:02

本帖最后由 pcl_test 于 2015-5-22 08:04 编辑

回复 12# 1139054012

已修改,按下Ctrl+C触发脚本开启自动保存,按 Win+Esc 退出脚本
作者: ygqiang    时间: 2015-5-22 13:09

回复  1139054012
pcl_test 发表于 2015-5-21 12:53



    这个代码,编译有问题?谢谢

http://www.appinn.com/autohotkey-all-in-one/
从这里下载的编译器。。
http://pan.baidu.com/share/link?shareid=75383&uk=4010168515
作者: 1139054012    时间: 2015-5-22 14:10

本帖最后由 1139054012 于 2015-5-23 20:32 编辑

回复 14# ygqiang

版本太老,使用这个版本封包。下载新版本封包
http://www.bego.cc/file/95689399
http://www.bego.cc/file/95689402
作者: ygqiang    时间: 2015-5-22 14:39

回复  ygqiang

版本太老,使用这个版本封包。下载新版本封包
1139054012 发表于 2015-5-22 14:10



多谢。。。代码可用。。。
但是如果只想:复制某个rar文件,就不好用了。。
只能限制复制文字。。。
作者: ygqiang    时间: 2015-5-22 14:43

回复  1139054012
pcl_test 发表于 2015-5-21 12:53



    多谢。你这个代码。。

能否智能判断,

如果是复制的文字内容。。。就继续操作。
如果是复制rar或者别的扩展名的文件,就放弃操作。。。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2