Jebus_kfc 发表于 2022-7-6 10:36:48

字符串需要帮助。。。

我正在帮助一位朋友开发一个程序,该程序将某些信息记录在word文件中,它将以军用时间显示时间,而他更希望以标准时间显示。所以我想我可以修复它,但我坚持这个strcat函数。如果有人能帮忙,我将不胜感激。问题如下:
 
 
(defun c:轨迹(/V1 TM TIME MO DAY YR hour minute DATE LN DP DN TX)
(setq DES(getstring T“\n输入所执行工作的简要描述:”)
(setq V1(menucmd“M=$(edtime,$(getvar,date),DDDD)”)
TM(menucmd“M=$(edtime,$(getvar,date),hh:mm:ss)”)
MO(menucmd“M=$(edtime,$(getvar,date),MOnth)”)
日(menucmd“M=$(edtime,$(getvar,date),DD)”)
YR(menucmd“M=$(edtime,$(getvar,date),yyyy)”)
小时(ATOI(substr TM 1 2))
分钟(atoi(substr TM 3 2))
;;; 日期(ATOI(strcat V1”,“MO”,“DAY”,“YR))
)
(条件
((
(>12小时)(setq时间(-12小时)))
);康德
;;;(setq DATE(itoa(strcat V1”,“MO”“DAY”“YR”“TIME:“分钟)))
 
(setq日期(strcat V1”,“MO”“DAY”“YR”“TIME MINUTE))
(setq LN(getvar“loginname”))
(setq DP(getvar“dwgprefix”))
(setq DN(getvar“dwgname”))
(setq TX(打开“c:\\logs\\track.txt”“a”)
(写入行“TX”)
(写入行“------------------------------”TX)
(写入行“TX”)
(写入行日期TX)
(写入行LN TX)
(写入线DP-TX)
(写入线DN TX)
(写入行“TX”)
(写行“描述:”TX)
(写入行DES TX)
(关闭TX)
(普林斯)
);eop

Lee Mac 发表于 2022-7-6 10:50:11

给这个一个投篮搭档:
 

(defun c:track ( / Desc f )
;; © Lee Mac 2010
(setq Desc (getstring t "\n Enter Brief Description of Work Performed: "))

(cond ( (setq f (open "c:\\logs\\track.txt" "a"))
      
         (mapcar '(lambda ( s ) (write-line s f))
         (list "" "-----------------------------------" "" (toDate "DDDD MO.DD.YYYY HH:MM")
             (getvar 'loginname) (strcat (getvar 'dwgprefix) (getvar 'dwgname)) "" "Description: " Desc
         )
         )
         (close f)
       )
)
(princ)
)

(defun toDate ( format ) (menucmd (strcat "m=$(edtime,$(getvar,DATE)," format ")")))

 
您的问题是将小时和分钟转换回字符串。
 
顺便说一句,请记住代码假设文件夹“logs”存在-也许可以查看vl mkdir
 

Lee Mac 发表于 2022-7-6 10:59:45

哦,看看这里:
 
http://www.cadtutor.net/forum/showthread.php?9184-代码发布指南

Jebus_kfc 发表于 2022-7-6 11:07:38

谢谢你的提示。。。
你给的节目效果很好,除了我
想把军事时间改为
标准时间。。。仅适用于out put,例如:从13:48到1:48。
如果我们可以将小时作为一个变量,那么:
(cond
   ((< HOUR 12) (setq TIME HOUR))
   ((> HOUR 12) (setq TIME (- HOUR 12)))
);cond

可以用来改变它。
-谢谢

Lee Mac 发表于 2022-7-6 11:16:49

我更喜欢“军事时间”

Lee Mac 发表于 2022-7-6 11:20:25


(defun c:track ( / Desc f )
;; © Lee Mac 2010
(setq Desc (getstring t "\n Enter Brief Description of Work Performed: "))

(cond ( (setq f (open "c:\\logs\\track.txt" "a"))
      
         (mapcar '(lambda ( s ) (write-line s f))
         (list "" "-----------------------------------" ""
             (strcat (toDate "DDDD MO.DD.YYYY") " "
               ((lambda ( h ) (itoa (if (< 12 h) (- h 12) h))) (atoi (toDate "HH"))) (toDate ":MM")
             )
             (getvar 'loginname) (strcat (getvar 'dwgprefix) (getvar 'dwgname)) "" "Description: " Desc
         )
         )
         (close f)
       )
)
(princ)
)

(defun toDate ( format ) (menucmd (strcat "m=$(edtime,$(getvar,DATE)," format ")")))

Jebus_kfc 发表于 2022-7-6 11:30:42

哇!很好,它工作了。。。非常感谢。。。有网上景点吗
或者你可以参考我的书来了解更高级的编程???

Lee Mac 发表于 2022-7-6 11:43:07

不客气伙计
 
我在这里发布了一系列链接,其中一些可能有用:
http://www.cadtutor.net/forum/showthread.php?49515-有用的LISP链接
页: [1]
查看完整版本: 字符串需要帮助。。。