我想将字符串转换为变量名,因此可以将其读取为已恢复的变量。
所以,我查看一个文件,查看所有文件。我使用RESTORE在IDL中使用该文件,将此对象的名称恢复为略有不同的名称。它将其命名为我们称之为map_1的对象(在代码中称为filerestore_name)。这与文件名有关,我可以重新创建这个变量名 - 但是,它保存为字符串。
现在,我将其传递给make_cool_video程序。但是,尽管这个字符串现在与varialbe名称完全相同,但它仍然是一个字符串! 因此,作为一个字符串,该过程无法工作。
filenames=FILE_SEARCH('rxrt*')
filenames_withoutextension = STREGEX(filenames,'rxrt_[0-9]+[a-zA-Z_]+',/EXTRACT,/FOLD_CASE)
restore, '/home/tomi/Documents/actualwork/'+filenames_withoutextension(18)+'.idl_sav',
filerestore_name = STRJOIN(STRSPLIT(filenameswithout(18),'_[0-9]+',/EXTRACT,/REGEX),'')
PRINT, filerestorename
make_cool_video, EXECUTE(filerestore_name),filename=filerestorenames, outdir='/path/to.file/'
retall
我尝试过:使用RESTORE函数和关联的RESTORED_OBJECTS将指针存储在数组中,然后引用该数组。但是我无法获得恢复功能来形成一个数组。
然而,使用EXECUTE(filerestore_name),它并没有像我期望的那样转换它。
答案 0 :(得分:2)
我建议改用SCOPE_VARFETCH()(它不像EXECUTE()那样受限制,可能效率更高)。你可以这样做:
make_cool_video, (SCOPE_VARFETCH(filerestore_name)), filename=filerestorenames, outdir='/path/to.file/'
答案 1 :(得分:0)
我写了这个,然后马上想到了答案。
所以,
将所有内容转换为字符串:
string1 = "makecooljes, "+ filerestore_name, outdir='file/to/path/'"
result= EXECUTE(string1)