免费视频|新人指南|投诉删帖|广告合作|地信网APP下载

楼主: 地质雪狼
收起左侧

[软件] CASS横断面数据转纬地横断面数据

  [复制链接]

3

主题

490

铜板

1

好友

助理工程师

Rank: 5Rank: 5

积分
109
发表于 2021-5-21 13:03 | 显示全部楼层
学习学习
回复

使用道具 举报

4

主题

508

铜板

0

好友

助理工程师

Rank: 5Rank: 5

积分
194
发表于 2021-5-22 13:15 | 显示全部楼层
我发个写的

;2021年4月24日 03:26:56  于新疆 石河子
;将提取的南方cass横断面数据转为纬地格式, 文件最后一行属于一个字母“B”,否则最后一条不能转出
(defun c:ww( /  file file0 file2 hang-num i ii l+h left_lst licheng lst  n  right_lst  y_num z_num zz)
  (setq file0(getfiled "选择CASS横断面文件<.dat>" "c:/" "hdm;dat;txt;*" 8))
  (setq file (open file0 "r"))
  (setq hang-num 0)
  (while (read-line file)(setq hang-num (1+ hang-num)));首先取得行数,末尾的空行应手动消除
  (close file)
  (setq file2 (open "c:/转纬地.txt" "w"))
  (setq lst'())
  (Setq file(open file0 "r"))
  (setq n(read-line file))
  (setq licheng(car(Fsxm-Split(cadr(Fsxm-Split n ",")) ":")));取得第一行的里程
  
  (repeat (- hang-num 1);循环第二行开始读取
    (setq n(read-line file))
    (if(null(wcmatch n "B*"))
      (progn
        (Setq L+H(mapcar 'read (Fsxm-Split n ",")))
        (Setq lst(cons L+H lst))
      );progn
      
      ;如果再读到Begin,就写数据         
      (progn      
      (setq i -1)(setq left_lst '())(setq right_lst '())
        (repeat(length lst)
          (setq x(nth(setq i(1+ i))lst))
          (cond
            ((>(car x)0)(setq right_lst(cons x right_lst)))
            ((<(car x)0)(setq left_lst(cons (mapcar 'abs x) left_lst)))
            ((=(car x)0)(setq zz x))
            );cond
    );repeat
  (setq right_lst(vl-sort (cons zz right_lst) '(lambda (a b) (<(car a)(car b)))))
  (setq z_num(itoa(-(length right_lst)1)))
  (setq ii 0)
  (repeat(-(length right_lst)1)
    (setq z_num(strcat z_num " "(rtos(-(car(nth(1+ ii)right_lst))(car(nth ii right_lst)))2 3)))
    (setq z_num(strcat z_num " "(rtos(-(cadr(nth(1+ ii)right_lst))(cadr(nth ii right_lst)))2 3)))
    (setq ii(1+ ii))
    )
  (setq left_lst(vl-sort (cons zz left_lst) '(lambda (a b) (<(car a) (car b)))))
  (setq y_num(itoa(-(length left_lst)1)))
  (setq ii 0)
  (repeat(-(length left_lst)1)
    (setq y_num(strcat y_num " "(rtos(-(car(nth(1+ ii)left_lst))(car(nth ii left_lst)))2 3)))
    (setq y_num(strcat y_num " "(rtos(-(cadr(nth(1+ ii)left_lst))(cadr(nth ii left_lst)))2 3)))
    (setq ii(1+ ii))
    )
      (write-line (strcat " " licheng) file2)
      (write-line (strcat " "y_num) file2)
      (write-line (strcat " "z_num) file2)
      (setq licheng(car(Fsxm-Split(cadr(Fsxm-Split n ",")) ":")))
      (setq left_lst nil)
      (setq right_lst nil)
      (setq lst nil)
      )   
       )     
          );repeat
            
  (close file)
  (close file2)
  );defun



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;飞诗 字符串分割
(defun Fsxm-Split (string strkey / po strlst xlen)
  (setq xlen (1+ (strlen strkey)))
  (while (setq po (vl-string-search strkey string))
    (setq strlst (cons (substr string 1 po) strlst))
    (setq string (substr string (+ po xlen)))
    ) ;_ 结束while  
  (reverse (cons string strlst))
  );_ 结束defun
回复 支持 反对

使用道具 举报

1

主题

2022

铜板

29

好友

助理工程师

Rank: 5Rank: 5

积分
151
QQ
发表于 2021-5-23 21:56 | 显示全部楼层
感谢分析
回复

使用道具 举报

0

主题

213

铜板

1

好友

实习生

Rank: 1

积分
3
发表于 2021-5-24 13:28 | 显示全部楼层
学习一下
回复

使用道具 举报

5

主题

1515

铜板

2

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
405
发表于 2021-5-26 21:45 | 显示全部楼层
学习一下啊  进来看看是什么
回复 支持 反对

使用道具 举报

0

主题

354

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
12
发表于 2021-5-27 07:30 | 显示全部楼层
看看啊                              
回复 支持 反对

使用道具 举报

2

主题

3272

铜板

3

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
77
发表于 2021-5-30 21:55 手机频道 | 显示全部楼层
学习学习
回复

使用道具 举报

0

主题

1912

铜板

1

好友

技术员

Rank: 3Rank: 3

积分
62
发表于 2021-5-31 08:30 | 显示全部楼层
dd 张东元888
回复 支持 反对

使用道具 举报

0

主题

5086

铜板

16

好友

工程师

Rank: 7Rank: 7Rank: 7

积分
564
发表于 2021-5-31 08:59 | 显示全部楼层

学习了,谢谢
回复 支持 反对

使用道具 举报

0

主题

1465

铜板

1

好友

至尊VIP

Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24Rank: 24

积分
44
发表于 2021-5-31 09:19 | 显示全部楼层
学习一下学习一下学习一下学习一下
回复 支持 反对

使用道具 举报

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

本版积分规则

在线客服
快速回复 返回顶部 返回列表