- 积分
- 3638
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-10-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
实际编程中,经常需要新建一大堆变量,
字符串转变量的方法有2种,以下举例说明;
------------------------------------------------
比如我要新建变量组:
;v1=1
;v2=2
;v3=3
;v4=4
;v5=5
------------------------------------------------
方法1
先新建变量名的字符数组:
x='v'+strtrim(string(indgen(5)+1),2)
help,x
print,x
得到:
X STRING = Array[5]
v1 v2 v3 v4 v5
------------------------------------------------
字符串转变量名:
for i=0,4 do begin
(scope_varfetch(x,/enter))=i+1
endfor
------------------------------------------------
检验之:
print,'v1:',v1
print,'v2:',v2
print,'v3:',v3
print,'v4:',v4
print,'v5:',v5
结果:
v1: 1
v2: 2
v3: 3
v4: 4
v5: 5
成功!
------------------------------------------------
方法2
x='v'+strtrim(string(indgen(5)+1),2)
for i=0,4 do begin
void=execute(x+'='+strtrim(string(i+1),2))
endfor
print,'v1:',v1
print,'v2:',v2
print,'v3:',v3
print,'v4:',v4
print,'v5:',v5
输出:
v1: 1
v2: 2
v3: 3
v4: 4
v5: 5
成功!
------------------------------------------------
核心技术总结
令QQQ=456
IDL> (scope_varfetch('QQQ',/enter))=456
IDL> qqq
456
IDL> void=execute('QQQ=456')
IDL> QQQ
456
番外:execute在Java调用IDL代码中也用过,似乎是个能把字符串转为相应指令的函数
|
|