程序:

- ;z、x、y为正数,且z=x+y
- ;将形式Dz]* x/y变成形式Dx]*/y]*如
- ;D12]25 6/6变成D6]25/6]25
- ;D12]25 4/8变成D4]25/8]25
- ;D9]20 4/5变成D4]20/5]20
- ;D7]22 3/4变成D3]22/4]22
- ;;晓东 zxq0220
- (DEFUN C:CHSTR4 ()
- (IF (SETQ SS (SSGET "X" '((0 . "TEXT") (1 . "D*]*/*")))) (PROGN
- (SETQ I 0)
- (REPEAT (SSLENGTH SS)
- (SETQ ENT (ENTGET (SSNAME SS I)) I (1+ I)
- STR (CDR (ASSOC 1 ENT))
- STL (STRLEN STR)
- J 2)
- (IF (NOT (WCMATCH STR "D*]*/*]*")) (PROGN
- (WHILE (AND (< J STL) (/= (SUBSTR STR J 1) "]")) (SETQ J (1+ J)))
- (SETQ Z (SUBSTR STR 2 (- J 2)) K (1+ J))
- (WHILE (AND (< J STL) (/= (SUBSTR STR J 1) " ")) (SETQ J (1+ J)))
- (SETQ SSTT (SUBSTR STR K (- J K)) K (1+ J))
- (WHILE (AND (< J STL) (/= (SUBSTR STR J 1) "/")) (SETQ J (1+ J)))
- (SETQ X (SUBSTR STR K (- J K)))
- (SETQ Y (SUBSTR STR (1+ J)))
- (IF (= (+ (ATOI X) (ATOI Y)) (ATOI Z)) (PROGN
- (SETQ STR (STRCAT "D" X "]" SSTT "/" Y "]" SSTT))
- (SETQ ENT (SUBST (CONS 1 STR) (ASSOC 1 ENT) ENT))
- (ENTMOD ENT)
- ))
- ))
- )
- ))
- (PRINC)
- )
|