关于文件读写IDL

1.打开文件

IDL从磁盘上的文件读写数据,必须首先把一盒逻辑设备号连接到一个指定的文件,然后进行文件操作,如打开,关闭和读取等。IDL中的逻辑设备号的范围是-2——128,其中1-99是用户可以任意指定的,100-128是根据get_lun和free_lun来管理的,其他事特殊函数专用的。

0是标准输入流,一般是键盘,也就是说下面命令是一只的。

read,x
read,0,x

-1是标准的输出流,一般显示屏幕,下面代码是一样的

printf,-1,x
print,x

-2是错误流,一般显示屏幕

文件操作相关的函数

Openr   以只读方式打开已经存在的文件

openw 创建一个可以读写的新文件

OpenU  以更新模式打开已存在的文件

File_Search()  对文件名进行特定的查找

Dialog_Pickfile() 对话框方式选择文件

Fstate()  返回一个一打开文件的信息

EOF()  检测是否到文件末

Close 关闭一个文件

Free_lun  释放一个逻辑设备号,并关闭文件

-----------------------------------------------------

读写ASCII码文件

IDL在读写该文件分为两种格式化文件:自由文件格式和确定的文件格式

自由文件格式是用逗号(,)或空白(空格或TAB键)分开文件中的每个元素的ASCII文件。

确定的文件格式是用格式说明按照给定的规范进行编排的。

IDL下用Readf从文件中读入自由格式数据,printf写入自由格式数据到文件中。

IDL读取自由格式文件遵循的规则:

1.如果读入到字符串变量中,那么,在当前行剩下的所有字符传都将读入该变量中

2.输入数据必须用逗号或者空格或者tab键分开

3.输入通过数字变量来完成,数组和结构都可以作为数字变量的集合

4.如果当前读入行是空行,并且还有变量要求输入,则读取另一行

5..如果当前读入行不是空行,并且没有变量要求输入,则忽略此行剩下的数

6.尽量将数据转换为变量所希望的数据类型

7.复数数据必须有实数和虚数两部分,用逗号分割,并用括号括起来。

读写确定的文件格式

同样用ReadF和PrintF命令  文件格式由Format关键字明确声明。(在读写标准输入输出时候也可以将Format用于Read和Print)

逗号分割的数据文件

Format='(F10.3,A1,2x,F10.3,A1,2x,F10.3)'

字符串中读取格式数据

ReadS可以从字符串变量而不是从文件为自由格式或确定格式读取数据,使用ReadS 就像从数据文件中读取一样,所不同的是所读取的对象是一个字符串变量。

当大量信息需要从文件头部读取时候,此命令特别有用。例如,ASCII数据文件的第一行说明了数据文件的行数和列数,此文件头可以从文件中读取,并且可以创建一个大小正确的数组来读取数据。

 

 

posted @ 2013-07-06 16:24  秋水惜朝  阅读(6226)  评论(0编辑  收藏  举报