motee-z 发表于 2022-7-5 22:37:05

需要(书面)帮助

我有预定义的文本,我想把它写到一个文件中,我的问题在引号中
原文为:
标题
版本1.31
系统“徕卡测量办公室:坐标编辑器1.0”
分隔符','
终止符';'
单位
延米
末端装置
项目
名称“边界点”
创建日期:21-07-2012/15:07:45.0
结束项目
结束标题
 
 
数据库
点(点编号、点ID、代码、东、北、高程、类别)
1,“1”,“”,-302752.6800,164835.7600,,固定;
;;;;;;;;;;;;;;;;;;;;;;;
我写的代码是:
(write-line"SYSTEM       Leica SurveyOffice: Coordinate Editor 1.0
SEPARATOR    ','
TERMINATOR   ';'
UNITS
   LINEAR   METRE
END UNITS
PROJECT
   NAME         boundary-points
   CREATION_DATE21-07-2012/15:07:45.0
END PROJECT
END HEADER


DATABASE "file) .......
; 如果我使用strcat,我必须使用它吗?我在引号中遇到了问题
那么我怎么写引号或更短的方式呢

Tharwat 发表于 2022-7-5 22:40:51

嗨,莫蒂。
 
您从哪里检索这些字符串,以及如何检索?

motee-z 发表于 2022-7-5 22:46:03

谢谢tharwat的回复
实际上,我想创建一个文件,这个文件由另一个程序生成,这个程序现在不工作,但我知道这个文件的类型,它包含提到的头,然后我会添加另一个东西作为变量

eldon 发表于 2022-7-5 22:48:40

我认为该文件是由徕卡调查办公室生成的。
 
下面是一个类似的文件(文件名StarX.idx)
 
HEADER
VERSION      1.31
SYSTEM       "Leica SurveyOffice: Coordinate Editor 1.0"
SEPARATOR    ','
TERMINATOR   ';'
UNITS
   LINEAR   METRE
END UNITS
PROJECT
   NAME         "StarX"
   CREATION_DATE21-07-2014/16:21:45.0
END PROJECT
END HEADER


DATABASE
POINTS (PointNo,PointID,Code,East,North,Elevation,CLASS)
    1,"D",    "",100.000,   10.000,0.000,FIX;
    2,"P1",   "",   98.226,   20.444,0.000,FIX;
    3,"P2",   "",   98.756,   38.444,0.000,FIX;
    4,"P3",   "",   98.756,   56.944,0.000,FIX;
    5,"P4",   "",   98.756,   74.444,0.000,FIX;
    6,"P5",   "",100.618,   90.858,0.000,FIX;
    7,"P6",   "",103.193,108.673,0.000,FIX;
    8,"P7",   "",   96.668,126.065,0.000,FIX;
    9,"P8",   "",   97.020,128.500,0.000,FIX;
   10,"P9",   "",119.042,125.317,0.000,FIX;
   11,"P10","",118.690,122.882,0.000,FIX;
END POINTS
END DATABASE


Tharwat 发表于 2022-7-5 22:50:37

无论如何,你有权不直截了当地回答我的问题,但只要你是亲密的朋友,我就有动力帮助你。
 
将字符串转换为list,然后按如下方式返回。
 

(vl-list->string (vl-string->list "','"))

motee-z 发表于 2022-7-5 22:55:53

正是eldon,我想通过从图形中拾取点来生成具有idx扩展名的文件,并将其保留为idx文件,而无需使用徕卡geo office工具

motee-z 发表于 2022-7-5 22:56:34

你能用我的课文举例说明吗

BIGAL 发表于 2022-7-5 23:00:31

有时您需要执行strcat,但对单个字符使用(chr 34),例如“(strcat(chr 34)“Mytext”(chr 34))
58 = :

hanhphuc 发表于 2022-7-5 23:04:53

试试这个?

(setq file(open "C:\\DEMO\\test.txt" "w"))

(mapcar ''(( x ) (write-line x file))
'("HEADER"
"VERSION      1.31"
"SYSTEM       \"Leica SurveyOffice: Coordinate Editor 1.0\""
"SEPARATOR    ','"
"TERMINATOR   ';'"
"UNITS"
"    LINEAR   METRE"
"END UNITS"
"PROJECT"
"    NAME         \"StarX\""
"    CREATION_DATE21-07-2014/16:21:45.0"
"END PROJECT"
"END HEADER"
""
""
"DATABASE")
)

(close file)

motee-z 发表于 2022-7-5 23:07:57

我成功创建了文件,但与eldon文件不同
我的代码
(defun c:cc(/ in ndp ip serial file)
(setvar "cmdecho" 0)
(setq clyr(getvar"clayer"))
(if(null txth)
   (setq txth 1.25))
(setq txthnew(getreal(strcat"\nchange enter text hieght or press enter to accept defualt " "<"(rtos txth 2 3)">:")))
   (if txthnew(setq txth txthnew))
   (setq file-name(getfiled "filename" "" "IDX" 1))
   (setq file (open file-name "a"))
(mapcar ''(( x ) (write-line x file))
'("HEADER"
"VERSION      1.31"
"SYSTEM       \"Leica SurveyOffice: Coordinate Editor 1.0\""
"SEPARATOR    ','"
"TERMINATOR   ';'"
"UNITS"
"    LINEAR   METRE"
"END UNITS"
"PROJECT"
"    NAME         \"StarX\""
"    CREATION_DATE21-07-2014/16:21:45.0"
"END PROJECT"
"END HEADER"
""
""
"DATABASE"
"POINTS (PointNo,PointID,Code,East,North,Elevation,CLASS\)")
)
(setq serial 1)

   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   (setq in (getreal"\n enter first number:"));point number
(initget 5)
(setq ndp (getint "\n Number of decimal places for co-ordinates (0,1,2,3):"))
(setvar"dimadec"4)
   (while
(setq osmd(getvar "osmode"))
(setvar "osmode"0)
(initget 1)
(setq ip (getpoint "\n enter a point to write its coordinate:"));pick individule point
(if ip
   (progn
(setq osmd(getvar "osmode"))
(setvar "osmode"0)
(setvar "angdir"1)
(setvar "aunits"2)   
(setvar "angbase"1.5708)
(setvar "aunits"2)
(command "layer" "m" "points num" "")
(command "layer" "c" "7" "points num" "")
(command "color""bylayer")
(command "insert" "pcn.dwg" ip txth txth "" (rtos in 2 0))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(write-line(strcat"   "(rtos serial 2 0)","(rtos in 2 0)","(rtos(car ip)2 ndp)","(rtos(cadr ip)2 ndp)","(rtos(last ip)2 3)",") file)
(setq serial(+ 1 serial))
(setq in(+ 1 in))
)
(close file)
   
))
(princ)
)

感谢BIGAL和hanhphuc帮助阻止pcn。dwg必须添加到下一页所附的搜索路径
页: [1] 2
查看完整版本: 需要(书面)帮助