读取多个不同txt文件到编辑框的实现方法
根据某教程的源码在对话框定义文件中,有一个清单选框,会显示出指定档案的内容(全是中文字);当使用者选取清单中的项目时,该项目的中文字便会显示在下面的编辑框里(加在原有字符串的后面);当按下确定钮时,对话框结束,并使用TEXT指令将编辑框内的文字插入至绘图屏幕上.
最终读取到编辑框里出错,这个代码感觉逻辑不是很清晰。暂时脑袋有点短路,请路过的大虾看看还有其他方法读取多个不同txt文件到编辑框没
;主程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(DEFUN C:LBOX () (SETQ DCL_ID (LOAD_DIALOG (findfile "LBOX.DCL") ) CHK 0)
(NEW_DIALOG "LBOX" DCL_ID)
(ADDL)
(ACTION_TILE "LBOX_T" "(ADDL)") ;新增的下拉式选框组件动作
(ACTION_TILE "LBOX_L" "(SETQ TMP_R (ATOI (GET_TILE \"LBOX_L\")))(SETC)")
(ACTION_TILE "accept" "(SETQ CHK 1
TMP_S (GET_TILE \"LBOX_E\"))(DONE_DIALOG)")
(START_DIALOG) (UNLOAD_DIALOG DCL_ID)
(IF (= CHK 1)
(COMMAND "TEXT" (GETPOINT \"Select text insert point :") "0" TMP_S)
)
(PRINC))
(DEFUN ADDL()
(cond
(= (GET_TILE "LBOX_T") "0") ;检查选择了的主题
(SETQ F_ID (OPEN (findfile "TEXT1.txt")"r")) ;开启档案1
(= (GET_TILE "LBOX_T") "1")
(SETQ F_ID (OPEN (findfile "TEXT2.txt")"r")) ;开启档案2
(= (GET_TILE "LBOX_T") "2")
(SETQ F_ID (OPEN (findfile "TEXT3.txt")"r")) ;开启档案2
)
(SETQ TMP_T (READ-LINE F_ID) TMP_L (LIST ""))
(WHILE (/= TMP_T NIL)
(SETQ TMP_L (APPEND TMP_L (LIST TMP_T)))
(SETQ TMP_L (READ-LINE F_ID))
)
(CLOSE F_ID)
(SETQ TMP_L (LIST (CDR TMP_L)))
(START_LIST "LBOX_L" 3 0)
(MAPCAR 'ADD_LIST (CAR TMP_L))
(END_LIST))
(DEFUN SETC()
(cond
(= (GET_TILE "LBOX_T") "0") ;检查选择了的主题
(SETQ F_ID (OPEN (findfile "TEXT1.txt")"r")) ;开启档案1
(= (GET_TILE "LBOX_T") "1")
(SETQ F_ID (OPEN (findfile "TEXT2.txt")"r")) ;开启档案2
(= (GET_TILE "LBOX_T") "2")
(SETQ F_ID (OPEN (findfile "TEXT3.txt")"r")) ;开启档案2
)
(IF (> TMP_R 0)
(REPEAT TMP_R (READ-LINE F_ID)))
(SETQ TMP_S (GET_TILE "LBOX_E"))
(SETQ TMP_S (STRCAT TMP_S (READ-LINE F_ID)))
(CLOSE F_ID)
(SET_TILE "LBOX_E" TMP_S))
下面是对话框DCL代码
//对话框DCL代码;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LBOX:dialog
{ label="Create chinese" ;
:popup_list //下拉式清单选框组件
{ label="中文主题" ;
key="LBOX_T" ;
width=25;
fixed_width=true;
list="玻璃门窗\n五金配件\n其他";
}
:list_box //清单选框组件
{ label="中文字" ;
key="LBOX_L" ;
width=25;
height=8;
fixed_width=true;
fixed_height=true;
}
:edit_box //编辑框组件
{ label="中文字" ;
key="LBOX_E" ;
width=25;
fixed_width=true;
}
ok_cancel;
}
感谢分享源码 感謝分享源碼 感謝分享源碼
页:
[1]