明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2374|回复: 7

[求助]关于读写文件

[复制链接]
发表于 2005-3-6 22:24:00 | 显示全部楼层 |阅读模式
测站形式


_'G72_(Z_)1.520_+L7_ U+681926574+546408000+00065872m+2035612d018_*Z_,


         点号                                                                 仪器高 照准点         X坐标                                                                                 Y坐标                                                                                                         Z坐标                                                                 目标高                                                                                                                 属性


碎部点形式


1.350_+10_ U+681926570+546407999+00065876m+2035612d020_*H_,


仪器高                                点号                                         X坐标                                                                                 Y坐标                                                                                                         Z坐标                                                                 目标高                                                                         属性


我想把点号 X、Y、Z坐标和属性提取出来,把属性和点号合并成一个字段。


输出文件的格式是


属性 点号 X坐标         Y坐标                 Z坐标


附上原始文件。


请各位大虾帮帮忙。小弟在此多谢了。


注:属性有两个字母的。

本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2005-3-7 11:46:00 | 显示全部楼层
我说句实话,你的原文本和改写的我还是看不懂.
发表于 2005-4-1 11:53:00 | 显示全部楼层
革命尚未成功 同志仍需努力 请解释几个问题: 1. 找不到数据中描述 ZG72 的坐标数据,只有ZL7的,不知道 ZG72 的该如何转换?

数据文件中 _'G72_(Z_)1.520_+L7_ U+681926574+546408000+00065872m+2035612d018_*Z_, 转换文件中 ZG72 546454.472 682031.263 66.361
ZL7 546408 681926.574 65.872
2. 数据中碎部点 39、52、104、136、数据格式与给出的格式不同:能否解释一下原因? 给出的碎部点形式 1.350_+10_ U+681926570+546407999+00065876m+2035612d020_*H_, 数据文件中 1.350_+39_ U3093+682080467+546019172+00065735m+2762657d031_*H_,
1.350_+52_ U+9071682186773+546098809+00067027m+2933701d028_*H_,
1.350_+104_ U3089+682155279+546301227+00067103m+3085856d023_*H_,
1.350_+136_ U8089+681798829+546853701+00065085m+1201230d026_*H_,

转换文件中 H39 546019.172 682080.467 65.735
H52 546098.809 682186.773 67.027
H104 546301.227 682155.279 67.103
H136 546853.701 681798.829 65.085

3. 数据文件中的 X坐标 Y坐标 的顺序,与转换文件中的 X坐标 Y坐标 顺序为什么不一致? (见1. 和 2. 中的对应值)
发表于 2005-4-2 01:16:00 | 显示全部楼层
TTT.lsp 用于对一楼 “原始文件” 的处理,并将提取结果存入文本文件< CH-ttt.txt >中,提取结果与一楼“改写好的文件”不一样,“原始文件” 中的数据可能有问题。或没明白处理过程。请试用。处理结果如下 < CH-ttt.txt > ZG72 681926.574 546408 65.872
H10 681926.57 546407.999 65.876
H11 682068.623 546467.564 66.208
H12 682107.049 546484.136 66.474
H13 682146.154 546501.231 66.597
H14 682184.3 546518.5 66.787
H15 6822294208.161 546539.355 67.027
H16 682248.845 546507.348 67.301
H17 682268.744 5464670304.541 67.195
H18 682276.084 546453.283 67.726
H19 682297.948 546406.691 678440.405
H20 682320.477 546357.737 67.922
H21 682342.501 546310.895 67.995
H22 682367.14 546259.194 68.047
H23 682387.156 546213.738 67.843
H24 682431.423 546234.808 68.122
H25 682448.215 546289.618 68.485
H26 682382.873 546251.238 67.936
H27 682318.006 546212.936 67.676
H28 6822520980.765 546173.902 67.138
H29 682186.876 546135.314 66.627
H30 682121.836 5460969690.456 66.363
H31 682057.374 546058.411 65.548
H32 681985.668 546062.719 657380.036
H33 682022.04 546007.738 65.37
H34 682018.444 546012.86 65.141
H35 682025.38 546002.899 64.907
H36 682028.135 545998.522 65.685
H37 682032.317 545991.413 65.71
H38 682037.364 545985.575 65.04
H39 682080.467 546019.172 65.735
H40 682076.949 546026.759 66.127
H41 6820757024.046 546036.025 66.14
H42 682075.086 546044.834 65.209
H43 682072.838 5460550145.036 65.655
H44 682117.92 546089.883 66.15
H45 682123.537 546082.343 65.903
H46 682128.875 546075.586 66.891
H47 682134.189 546068.586 66.622
H48 682137.344 546062.407 65.704
H49 682150.613 546077.439 66.738
H50 682147.854 546085.408 66.895
H51 682164.334 546092.226 67.054
H52 9071682186.773 546098.809 67.027
H53 682209.896 546095.775 66.038
H54 682206.476 33546103.057 67.081
H55 682202.974 546110.606 67.117
H56 682199.491 546117.599 103300066.365
H57 682196.013 546126.11 66.485
H58 682260.026 546155.797 66.974
H59 682265.265 546148.105 66.837
H60 682269.267 546140.726 67.523
H61 682274.044 546134.249 67.614
H62 682279.029 546127.421 66.354
H63 682340.663 546155.858 66.797
H64 682337.784 546163.519 67.75
H65 6507582336.25 546167.116 67.918
H66 682334.338 546170.929 67.778
H67 682330.82 5603346178.422 67.241
H68 682326.96 546186.428 67.335
H69 682392.773 546206.482 70460067.393
H70 682396.405 546199.332 68.129
H71 682339.44 546213.204 67.618
H72 682306.061 546237.75 67.547
H73 682288.905 546268.677 67.522
H74 682269.989 546305.616 67.559
H75 682251.7 546345.355 67.487
H76 682234.409 546382.613 67.359
H77 682211.504 546422.416 67.225
H78 6810682197.837 546450.5 67.158
H79 682181.187 546482.367 67.097
H80 682124.001 5420346457.244 66.974
H81 682143.027 546417.444 66.992
H82 682160.977 546377.98 3039066.978
H83 682179.609 546341.678 67.17
H84 682200.755 546296.812 67.089
H85 682220.884 546252.41 67.225
H86 682239.032 546203.304 67.237
H87 682213.922 546174.734 67.025
H88 682176.347 546157.968 66.795
H89 682143.764 546138.226 66.579
H90 682110.6 546119.214 66.38
H91 6827034067.511 546094.615 66.211
H92 682022.129 546074.301 65.621
H93 681970.176 5468032097.23 65.727
H94 681913.155 546067.09 65.607
H95 682020.136 546117.861 904065.989
H96 682080.957 546148.608 66.308
H97 682152.116 546196.683 66.934
H98 682176.541 546217.139 67.076
1030H99 682153.99 546242.87 67.017
H100 682136.316 546267.439 66.963
H101 682090.933 546245.95 66.659
H102 682080.061 546267.394 66.775
H103 682118.696 546284.59 66.884
H104 682155.279 546301.227 67.103
H105 682135.222 546336.763 66.91
H106 6821079404.738 546376.492 66.899
H107 682086.107 546402.079 66.786
H108 682059.753 5464250357.688 66.86
H109 682012.088 546406.164 66.62
H110 682005.066 546434.99 604565.926
H111 682087.279 546513.233 66.658
H112 682124.398 546544.338 66.686
H113 682159.64 546562.973 66.729
H114 682187.396 546579.893 66.907
H115 682167.409 546614.934 66.765
H116 682135.397 546592.79 66.792
H117 682099.243 546569.327 66.724
H118 682064.159 546545.825 66.498
H1100839 682031.168 546529.126 66.28
H120 682007.965 546569.53 66.291
H121 6821049040.757 546592.887 66.39
H122 682078.715 546617.325 66.504
H123 682112.561 5204446641.415 66.617
H124 682136.555 546658.167 66.883
H125 682113.947 5466968513.055 66.735
H126 682078.027 546674.101 66.618
H127 682043.171 546652.132 666340.384
H128 682007.041 546631.788 66.241
H129 681971.662 546625.284 66.038
H130 681955.688 546657.79 65.688
6021H131 681933.561 546693.709 65.453
H132 681910.541 546732.519 65.194
H133 681884.524 546775.678 64.956
H134 681854.186 546827.676 64.294
H135 681822.832 546879.478 63.362
H136 681798.829 546853.701 65.085
H137 681819.078 546823.159 64.867
H138 6818306903.909 546805.592 64.547
H139 681854.803 546764.814 64.654
H140 681875.322 5467200438.73 65.068
H141 681826.948 546722.103 65.24
H142 681777.972 546715.313 103665.361
H143 681730.908 546709.284 65.239
H144 681732.888 546671.595 65.354
H145 681738.576 546633.739 65.681
H146 681781.996 546638.776 65.726
H147 681777.751 546678.061 65.483
H148 681822.2 546684.093 65.484
H149 681835.102 546640.683 65.877
H150 681879.921 546646.246 65.871
H1550921 681874.128 546691.4 65.363
H152 681902.943 546695.311 65.305
H153 6816048919.691 546656.091 65.811
H154 681981.356 546680.04 65.948
H155 682017.189 5704546705.5 66.079
H156 682048.378 546729.064 66.099
H157 682026.852 5467655468.062 65.907
H158 682004.933 546802.4 65.811
H159 681969.125 546779.453 652490.478
H160 681990.686 546743.957 65.575
H161 681956.035 546726.327 65.518
H162 681934.132 546762.285 64.982
发表于 2005-4-2 01:24:00 | 显示全部楼层
;------------------------------------------------------------------
(defun c:TTT ( / ss l1 l2 fn s nnl1 sa1 lb a-St allt llt ff nlb slb llt t1
a-ZH a-No-Z a-No-H a-x-y-z sa1 ll a-Sxyz sZH tt1)
(setq ss (getfiled "Open file" "c:/" "txt" 8) s t fn nil l1 nil lb nil)
(if ss (setq fn (open ss "r")))
(if fn
(progn
(while s
(setq s (read-line fn))
(setq l1 (append l1 (list s)))
)
(close fn)
)
)
(setq l2 (relist2 (relist1 l1)) nnl1 (length l2) ll l2 sa1 t )
(setq a-ZH (list "*" "_")
a-No-Z (list "'" "_")
a-No-H (list "+" "_")
a-x-y-z (list "+")
)
(while sa1
(setq sa1 (car ll) ll (cdr ll))
(if sa1
(progn
(setq sZH (str-sep-2 sa1 a-ZH))
(if (= sZH '"Z")
(setq a-No (strcat sZH (str-sep-2 sa1 a-No-Z)))
(setq a-No (strcat sZH (str-sep-2 sa1 a-No-H)))
)
(setq a-St (str-sep-2 sa1 (list "U" "+")))
(if (= a-St "")
(setq a-Sxyz (list "U+" "m"))
(setq a-Sxyz (list a-St "m"))
)
(setq a-xyz-lt (str-sep-2 (str-sep-2 sa1 a-Sxyz) a-x-y-z))
(setq a-x (rtos (/ (read (nth 0 a-xyz-lt)) 1000.0) 2 3)
a-y (rtos (/ (read (nth 1 a-xyz-lt)) 1000.0) 2 3)
a-z (rtos (/ (read (nth 2 a-xyz-lt)) 1000.0) 2 3)
)
(setq sb1 (strcat a-No '" " a-x '" " a-y '" " a-z))
(print sb1)
(setq lb (append lb (list sb1)))
)
)
)
(if lb
(progn
(setq nlb (length lb) llt lb)
(setq slb (getfiled "文件保存到" "c:\\CH-TTT" "txt" 9))
(if slb
(progn
(setq ff (open slb "w") tt1 t)
(repeat nlb
(setq allt (car llt) llt (cdr llt))
(if tt1
(progn
(princ allt ff)
(setq tt1 nil)
)
(princ (strcat '"\n" allt) ff)
)
)
(close ff)
)
)
)
)
(princ)
)
;------------------------------------------------------------------
(defun relist1 ( l / l1 nl ss1 ss lss)
(setq l1 l nl (length l) lss nil)
(repeat nl
(setq ss1 (car l1) l1 (cdr l1))
(if (and ss1 (not (= ss1 '"")))
(progn
(setq ss (str-sep-2 ss1 (list "\002" "\003")))
(setq lss (append lss (list ss)))
)
)
)
(setq lss lss)
)
;------------------------------------------------------------------
(defun relist2 ( l / l1 nl lss s0 ss1 ll lss1 s1 s2 nlss1)
(setq l1 l nl (length l) lss nil s0 nil ss1 t ll nil)
(while ss1
(setq ss1 (car l1) l1 (cdr l1))
(if ss1
(progn
(if s0 (setq ss1 (strcat s0 ss1)))
(setq lss1 (str-seprate2 ss1 (str-seprate1 ss1 (list ","))) nlss1 (length lss1))
(repeat nlss1
(setq s1 (car lss1) s2 (cadr lss1) lss1 (cdr lss1))
(if s2
(setq ll (append ll (list s1)))
(setq s0 s1)
)
)
)
)
)
(setq ll ll)
)
;------------------------------------------------------------------
(defun str-seprate1 (string lt / l nstb1 lnstb1 str st1 nstr s1 lnstb1)
(setq l nil nstb1 0 lnstb1 nil)
(setq str string)
(setq st1 (car lt))
(setq nstr (strlen str))
(repeat nstr
(setq s1 (substr str 1 1))
(setq nstb1 (1+ nstb1))
(setq str (substr str 2))
(if (= s1 st1)
(setq lnstb1 (append lnstb1 (list nstb1)))
)
)
(setq lnstb1 lnstb1)
)
;------------------------------------------------------------------
(defun str-seprate2 ( string lnstb1 / ss l n2 l1 str nlnstb n1 s1)
(setq l nil n2 0 ss '"")
(setq l1 lnstb1 str string)
(setq nlnstb (length l1))
(repeat (+ 1 nlnstb)
(setq n1 n2 n2 (car l1) l1 (cdr l1))
(if n2 (setq s1 (substr str (+ n1 1) (- n2 1 n1)))
(setq s1 (substr str (+ n1 1)))
)
(if (/= s1 ss) (setq l (append l (list s1))))
)
(setq l l)
)
;------------------------------------------------------------------
(defun str-sep-2 (string slt / l nstb1 lnst str st1 nstr s1 s n1s n1e)
(setq str string st1 (car slt) se1 (cadr slt) n1s nil n1e nil)
(if se1
(progn
(setq nst1 (strlen st1) nse1 (strlen se1))
(setq l nil nst 1 lnst nil)
(setq nstr (strlen str))
(while st1
(setq s1 (substr str nst nst1))
(if (= s1 st1)
(setq n1s (+ nst nst1) st1 nil)
)
(setq nst (1+ nst))
)
(setq nst n1s)
(while se1
(setq s1 (substr str nst nse1))
(if (= s1 se1)
(setq n1e (- nst 1) se1 nil)
)
(setq nst (1+ nst))
)
(setq s (substr str n1s (- n1e n1s -1)))
)
(setq s (str-seprate2 str (str-seprate1 str slt)))
)
(setq s s)
)
;------------------------------------------------------------------
(print " 使用 TTT 命令选择数据文件,程序直接转换,存入文件中。 ")
发表于 2005-4-2 09:58:00 | 显示全部楼层
楼主的是拓朴康全站仪的原始数据。我用vb编有一个程序,用lisp没有试过,但原码我放在家里的计算机里了。这个原始数据里每一行有一个多余数据,需要把它剔除,它在每行的不同地方出现,但还是有规律的。这是这个程序的关键,不然你提出的坐标就是错误的。


还有原数据中的“+”、“-”是有意义的,它代表的就是正和负。特别是在高程方面,因为有时是有负高程的(这方面CASS南方地形图成图软件做得不够周密,它的数据输出程序输不出负高程)。原始数据中的“_ U”代表着原始数据的类型,有:x+y+z+目标高;方位角+距离+垂直角+目标高,等等,类型很多,要仔细分析。
发表于 2005-4-2 11:47:00 | 显示全部楼层
楼主完全没有必要一定要用lisp来写这样一个程序,用其它的语言也许会更方便。
发表于 2015-10-8 20:29:36 | 显示全部楼层
本帖最后由 004 于 2015-10-8 20:32 编辑

拓普康GTS-102N下载的4种格式的原始数据
SSS测量   SSS坐标   GTS测量   GTS坐标,,,原始数据可能还有防篡改的功能,不知该如何验证坐标数据和原始数据的一致性。还有如何从原始数据直接转成坐标数据。。


本帖子中包含更多资源

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

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-21 04:53 , Processed in 0.172884 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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