爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2796|回复: 1

[混合编程] IDL编程学习之去除txt文件中的空格

[复制链接]

新浪微博达人勋

发表于 2018-8-7 13:41:11 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
附件中hushidata.txt是需要处理的数据,每行数据中有空格,现在想把空格去掉
QQ截图20180807133709.jpg
代码:
pro t
openr,lun,'C:\Users\YGDY\Desktop\111\hushidata.txt',/get_lun
;我已经数了有752行,直接放进1列752行的字符型数组(竖着放,输出的时候不会横着排)
x=strarr(1,752)

;把数据赋给x
readf,lun,x
help,x[1]
FREE_LUN,lun

;把空格都去掉:
y=strcompress(x,/remove_all)
;输出数据
txt=txt('ttt',y)

end
;这个是输出txt的小函数
function txt,name,x
  openw,lun,'C:\Users\YGDY\Desktop\'+name+'.txt',/get_lun
  printf,lun,x
  close,/all
end

hushidata.txt

11.82 KB, 下载次数: 2, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-8-7 17:07:35 | 显示全部楼层
案例2
要求,日期和时间之间的空格留着,后面的空格去掉
QQ截图20180807170507.jpg
代码:
;先确定数据有多少行,鄙人愚笨,通过read_ascii()函数读一遍获取
a=read_ascii('C:\Users\YGDY\Desktop\222\data1.txt',data_start=0)
x=a.field1
;输出x的行数
nn=size(x)
;print,'行数是',nn[2]

;按字符串形式读取
openr,lun,'C:\Users\YGDY\Desktop\222\data1.txt',/get_lun
x=strarr(1,nn[2])
readf,lun,x

;按冒号将每行字符拆成2段,把后段的空格删掉,再拼起来
for i=1,nn[2]-1 do begin
y=strsplit(x[0,i],':',/extract)
y2=strcompress(y[1],/remove_all)
x[0,i]=y[0]+':'+y2
endfor

;输出
txt=txt('victory',x)

;用于输出txt文件,路径、文件名可自定义
function txt,name,x
  openw,lun,'C:\Users\YGDY\Desktop\'+name+'.txt',/get_lun
  printf,lun,x
  close,/all
end

data1.txt

15.21 KB, 下载次数: 0, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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