明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3444|回复: 14

[下载][原创]cad看小说

  [复制链接]
发表于 2010-11-10 13:00:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2010-11-10 20:12:30 编辑

最近亚运比较闲,做了个看小说的lsp,就是在命令行里阅读txt文档

欢迎大家下载使用

如果大家有意见可以提出,或自行修改

其实这个lisp是一个双击鼠标的反应器

加载后第一次双击会要求打开一txt文本

然后再双击则逐行在命令行显示文本内容

在c盘会有一个阅读记录,记录你当前阅读到第几行

方便下次接着看

 

中午上传得太仓促

(defun opentext()
写成了

(defun C:opentext()

我把阅读的时候设成了一次显示两行

如果想只显示一行,找到这句可以自行修改

(setq n 2);一次阅读的行数

 

 

;忙里偷闲看书器
(if vlr-mouse-reactor1 (vlr-remove vlr-mouse-reactor1))
(setq vlr-mouse-reactor1 (vlr-mouse-reactor "DATA" '((:vlr-beginDoubleClick . mouse))) )

(defun mouse (vlrobj Lst)

(IF txt_path
(progn
(princ "\n")
(repeat n
 
 (SETQ PRINC_TEXT NIL)

 (WHILE (= PRINC_TEXT NIL)
  (get_page)
 
  (SETQ txt_ID (OPEN txt_path "r"))
  (REPEAT page (SETQ WORD (read-line txt_ID)) )
  (if WORD
   (if (/= word "")
   (progn
    (princ page)
    (princ word)
    (SETQ PRINC_TEXT "T")
   );end progn
   );end if
  (SETQ PRINC_TEXT "T")
  );end if
  (CLOSE txt_ID )
  (princ "\n")
 
  (reading_record)
 );end while

);end repeat

(if (= word nil) (princ "\n你的文档已经阅读完毕!"))
(princ "\n")
);end progn

(opentext)

);end if
(princ)
);end defun

 

(defun opentext()
(setq txt_path (getfiled "选择要阅读的小说" "C:/Temp/" "txt" 0))
(setq n 2);一次阅读的行数
(princ)
)

 

(defun reading_record()

(SETQ temp1_ID (OPEN "C://阅读记录.txt" "r"))
(SETQ temp2_ID (OPEN "C://temp.txt" "w"))

(if temp1_ID
(while (/= (SETQ TXT (read-line temp1_ID)) NIL)
 (IF (/= TXT "")
 (WRITE-LINE TXT temp2_ID)
 )
);end while
);end if

(if temp1_ID (CLOSE temp1_ID ) )
(if temp2_ID (CLOSE temp2_ID ) )

(SETQ temp1_ID (OPEN "C://阅读记录.txt" "w"))
(SETQ temp2_ID (OPEN "C://temp.txt" "r"))

(setq txt_name (car (cdr (fnsplitl txt_path))))
(setq txt_record nil)

(if temp2_ID
 (while (/= (SETQ TXT (read-line temp2_ID)) NIL)
 (IF (/= TXT "")
 (PROGN
  (if (AND (vl-string-search txt_name TXT) (= txt_record nil) )
   (progn
   (WRITE-LINE (STRCAT txt_name (ITOA page) ) temp1_ID)
   (setq txt_record "t")
   );end progn
   (WRITE-LINE TXT temp1_ID)
  );end if
 );END PROGN
 );END IF
 );end while
);end if

(if (= txt_record nil) (WRITE-LINE (STRCAT txt_name (ITOA page) ) temp1_ID) )

(if temp1_ID (CLOSE temp1_ID ) )
(if temp2_ID (CLOSE temp2_ID ) )

(vl-file-delete "C://temp.txt")

);end defun


(defun get_page()

(setq txt_name (car (cdr (fnsplitl txt_path))))
(SETQ temp1_ID (OPEN "C://阅读记录.txt" "r"))
(setq page nil)

(if temp1_ID
 (while (/= (SETQ TXT (read-line temp1_ID)) NIL)
  (IF (vl-string-search txt_name TXT)
  (setq page (ATOI (SUBSTR TXT (1+ (STRLEN txt_name)))) )
  )
 );end while
);end if

(IF (= page NIL)
(SETQ page 0)
(SETQ page (1+ page))
);end if

(if temp1_ID (CLOSE temp1_ID ) )

);end defun


 

发表于 2010-11-10 19:41:00 | 显示全部楼层

什么?没看明白,干什么用的?

发表于 2010-11-12 19:46:00 | 显示全部楼层
太不错了,牛人,什么时候弄个更好玩的出来玩玩,像QQ之类的是最好了。
发表于 2010-11-13 10:16:00 | 显示全部楼层
很有创意,适合上班族!
发表于 2010-11-13 10:16:00 | 显示全部楼层
啥时 再弄个 局域网 聊天器?

点评

这个是能搞出来的  发表于 2011-9-13 21:50
发表于 2011-4-21 17:25:30 | 显示全部楼层
怎么关闭这个反应器啊
发表于 2011-4-21 17:35:19 | 显示全部楼层
回复 egos 的帖子

把CAD关了
发表于 2011-4-21 23:14:18 | 显示全部楼层
这个东东好,谢谢楼主
发表于 2011-4-28 18:54:19 | 显示全部楼层
如何用呀,说清楚点好吗,好像不能用啊
发表于 2011-4-29 01:01:07 | 显示全部楼层
很有创意,适合上班族
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-26 09:38 , Processed in 0.293612 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表