明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1292|回复: 3

读取多个不同txt文件到编辑框的实现方法

[复制链接]
发表于 2019-1-30 21:41 | 显示全部楼层 |阅读模式
根据某教程的源码
在对话框定义文件中,有一个清单选框,会显示出指定档案的内容(全是中文字);当使用者选取清单中的项目时,该项目的中文字便会显示在下面的编辑框里(加在原有字符串的后面);当按下确定钮时,对话框结束,并使用TEXT指令将编辑框内的文字插入至绘图屏幕上.
最终读取到编辑框里出错,这个代码感觉逻辑不是很清晰。暂时脑袋有点短路,请路过的大虾看看还有其他方法读取多个不同txt文件到编辑框没

  1. ;主程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

  2. (DEFUN C:LBOX ()     (SETQ DCL_ID (LOAD_DIALOG (findfile "LBOX.DCL") ) CHK 0)
  3. (NEW_DIALOG "LBOX" DCL_ID)
  4. (ADDL)
  5. (ACTION_TILE "LBOX_T" "(ADDL)")                ;新增的下拉式选框组件动作
  6. (ACTION_TILE "LBOX_L" "(SETQ TMP_R (ATOI (GET_TILE "LBOX_L")))(SETC)")
  7. (ACTION_TILE "accept" "(SETQ CHK 1
  8.     TMP_S (GET_TILE "LBOX_E"))(DONE_DIALOG)")
  9. (START_DIALOG) (UNLOAD_DIALOG DCL_ID)
  10. (IF (= CHK 1)
  11.                (COMMAND "TEXT" (GETPOINT "Select text insert point :") "0" TMP_S)
  12. )
  13. (PRINC))


  14. (DEFUN ADDL()

  15. (cond
  16.   
  17.   (= (GET_TILE "LBOX_T") "0")                ;检查选择了的主题
  18.     (SETQ F_ID (OPEN (findfile "TEXT1.txt")  "r"))         ;开启档案1
  19.   (= (GET_TILE "LBOX_T") "1")
  20.     (SETQ F_ID (OPEN (findfile "TEXT2.txt")  "r"))         ;开启档案2
  21.   (= (GET_TILE "LBOX_T") "2")
  22.     (SETQ F_ID (OPEN (findfile "TEXT3.txt")  "r"))         ;开启档案2
  23. )        
  24.   (SETQ TMP_T (READ-LINE F_ID) TMP_L (LIST ""))
  25.   (WHILE (/= TMP_T NIL)
  26.       (SETQ TMP_L (APPEND TMP_L (LIST TMP_T)))
  27.     (SETQ TMP_L (READ-LINE F_ID))
  28.   )
  29.   (CLOSE F_ID)
  30.   (SETQ TMP_L (LIST (CDR TMP_L)))
  31.   (START_LIST "LBOX_L" 3 0)
  32.   (MAPCAR 'ADD_LIST (CAR TMP_L))
  33.   (END_LIST))
  34.   
  35. (DEFUN SETC()
  36.   
  37. (cond
  38.   
  39.   (= (GET_TILE "LBOX_T") "0")                ;检查选择了的主题
  40.     (SETQ F_ID (OPEN (findfile "TEXT1.txt")  "r"))         ;开启档案1
  41.   (= (GET_TILE "LBOX_T") "1")
  42.     (SETQ F_ID (OPEN (findfile "TEXT2.txt")  "r"))         ;开启档案2
  43.   (= (GET_TILE "LBOX_T") "2")
  44.     (SETQ F_ID (OPEN (findfile "TEXT3.txt")  "r"))         ;开启档案2
  45. )
  46.   (IF (> TMP_R 0)   
  47.          (REPEAT TMP_R (READ-LINE F_ID)))   
  48.   (SETQ TMP_S (GET_TILE "LBOX_E"))   
  49.   (SETQ TMP_S (STRCAT TMP_S (READ-LINE F_ID)))   
  50.   (CLOSE F_ID)   
  51.   (SET_TILE "LBOX_E" TMP_S))  
复制代码
下面是对话框DCL代码
  1. //对话框DCL代码;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  2. LBOX:dialog
  3. {   label="Create chinese" ;
  4.   :popup_list   //下拉式清单选框组件
  5.   {   label="中文主题" ;
  6.     key="LBOX_T" ;
  7.     width=25;
  8.     fixed_width=true;
  9.     list="玻璃门窗\n五金配件\n其他";
  10.   }
  11.   :list_box   //清单选框组件
  12.   {   label="中文字" ;
  13.     key="LBOX_L" ;
  14.     width=25;
  15.     height=8;
  16.     fixed_width=true;
  17.     fixed_height=true;
  18.   }
  19.   :edit_box   //编辑框组件
  20.   {   label="中文字" ;
  21.     key="LBOX_E" ;
  22.     width=25;
  23.     fixed_width=true;
  24.   }
  25.   ok_cancel;
  26. }







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
发表于 2019-7-24 00:32 | 显示全部楼层
感谢分享源码
发表于 2022-7-21 16:26 | 显示全部楼层
感謝分享源碼
发表于 2022-8-31 15:57 | 显示全部楼层
感謝分享源碼
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 20:40 , Processed in 0.358396 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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