2016-06-28 7 views
0

文字列を変数名に変換したいので、既に復元された変数として読み込むことができます。IDLでは、変数名にどのようにアクセスできますか?

私はファイルを見て、すべてのファイルを見ます。私はIDLでファイルを使用するためにRESTOREを使用しますが、このオブジェクトの名前を若干異なるものとしてリストアします。それはmap_1と呼ばれるオブジェクトの名前です(コード内ではfilerestore_nameと呼ばれています)。これはファイル名に関連していますが、この変数名は再作成できますが、文字列として保存されます。

これをmake_cool_videoプロシージャに渡します。しかし、この文字列は現在、文字列名とまったく同じですが、それでも文字列です! したがって、その文字列として、プロシージャは機能しません。

私が試し何
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)を使用すると、予想通りに変換されません。

答えて

2

私は(それがEXECUTE()のように限定されるものではないが、おそらく、より効率的である)の代わりにSCOPE_VARFETCH()を使用することをお勧めします。あなたは次のようなことができます:

make_cool_video, (SCOPE_VARFETCH(filerestore_name)), filename=filerestorenames, outdir='/path/to.file/' 
0

私はこれを書いて、すぐに答えを考えました。

ので、

は、文字列にすべてを変換します

string1 = "makecooljes, "+ filerestore_name, outdir='file/to/path/'" 
result= EXECUTE(string1) 
関連する問題