用IDL读取*.txt的文件中的数据,为什么是从第2行开始读的啊?能修改么?

用IDL读取*.txt的文件中的数据,为什么是从第2行开始读的啊?能修改么?,第1张

temp=''

readf,lun,temp

这两行,位于程序开头,就是用一个字符串型的变量去读取文件的第一行。一般,这用于跳过文件的文件头。

估计这个程序设计之初,txt文件中是有类似于表头的东西,这就是为什么你第一行加一个任意字符,程序就正确了。

如果删去这两行代码,就可以不用加任意字符!

如果格式比较简单的话比较容易,以读TXT为例

file = DIALOG_PICKFILE(FILTER='*.txt')

OPENR, lun, file, /GET_LUN

B=FLTARR(50,20)这个行列自行决定,先列后行,FLTARR是浮点型其他数据类型查找帮助文档

READF,lun,B

FREE_LUN,lun

如果是比较复杂格式的TXT,建议用read_ascii读取,方法帮助文档很详细,大致分两部,一个是设置格式,一个是按存好的格式读取,当里面夹杂着大量的文字,各种不同数据类型的时候很好用,可读成结构体

设定ASCII格式

filetemplate=ascii_template(filepth)

save,filetemplate,filename='**.sav'

根据事先存好的模板读取

data=read_ascii(filepth,delimiter=',',template=filetemplate)

总的来说,就是把一个路径下的所有txt文件找出来,将其个数和文件路径都存放在另一个新建的txt里面

PRO cimel_read_files_name, path

path = 'E:\cimel batch program\data\' ;设置路径

cimel_file=FILE_SEARCH(path +'*.txt',count = number) ;搜索该路径下所有txt格式文件,number是文件个数

openw, lun, 'E:\cimel batch program\step1\result\cimel_files_name.txt', /GET_LUN;建立TXT文件

PRINTF, lun, number;在刚建立的cimel_files_name.txt'文件中写上面的文件个数

PRINTF, lun, cimel_filer;在刚建立的cimel_files_name.txt'文件中写上面读取的各个文件路径

CLOSE, lun &FREE_LUN, lun;关闭释放内存

PRINT,number ;显示文件个数,就是在控制台那显示,下面两句同

PRINT,'OK'

PRINT,'The end of the pro.'

END


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11793195.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存