比如我们要将程序和文件都放到同一个目录下,对所有符逗山合条件的数据进行批处理。
当进行编程的时候,我们不能每改换一个文件夹就对程序中的路径改变一次。因此我们需要通过编程,让程序自动的寻找程序所在的路径,这样,无论程序位置怎么改变,这个路径我们都能找到。将这个路径赋予一个变量,那么这个变量值会随着程序的位置改变而变化。
在idl中寻找程序目录的函数是routine_filepath
1.Result = ROUTINE_FILEPATH( Routine [, /EITHER] [, /IS_FUNCTION] )
如果程序不是过程二是一个函数,需要输入IS_FUNCTION关键字,EITHER关键字设置以后,程序和函数的路径都可以返回
例子:一个程序process.pro
pro process
path=routine_filepath(‘process’)
print ,path
end
那么这个程序返回的path即为process.pro所在的目录
如果process.pro的全路径为d:\test\process.pro,那么path的值就是d:\test\process.pro
尽管routine_filepath可以返回程序的全路径,但是这个并不是必要的,我们更需要的可能是他的上一级目录,这时我们可以用file_dirname函数
2.Result = FILE_DIRNAME(Path [, /MARK_DIRECTORY])
path=routine_filepath(‘process’)
dir=file_dirname(path)
这时dir便为d:\test\
3.ROUTINE_INFO
该函数提供银御当前程序的信息
Result = ROUTINE_INFO( [Routine] [, /PARAMETERS] [, /SOURCE ] [, /UNRESOLVED] [, /VARIABLES] [, /SYSTEM] [, /DISABLED] [, /ENABLED] [, /FUNCTIONS] )
如添加source关键字,返回值为结构体,包含程序名称及完整路径
4.PATH_SEP
该函数是用来获取‘\’符号
Result = PATH_SEP( [, /锋指岩PARENT_DIRECTORY] [, /SEARCH_PATH] )
这是一个具衡拍体的例子DIR_IN 是文件夹咐祥羡路径,比如 'D:\IDL\Default'
FILES = FILE_SEARCH(DIR_IN + '*'+'.FLT',/FOLD_CASE)
希望能有宴梁帮助
你没有保野兆存这个文件,或者这个文敬脊拿件没有放在相应的目录下吧。如果是这样的话,一般在编译前先编译一下你用到的自己的程序,.r或.run空格程序名(带.pro)就可以了。如果不想每次都.r,你可以把你的程序都拷贝亮搭到idl安装目录下的lib文件夹(可以新建子文件夹)欢迎分享,转载请注明来源:内存溢出
评论列表(0条)