1

我想知道是否有一种方法可以使用一堆包含值的 .txt 文件来更改已编译的 IDL .pro 文件中的变量值。

例如,我有 3 个 .txt 文件,每个文件中有 2 行。让我们称呼他们:

 1. C:\input1.txt
 2. C:\input2.txt
 3. C:\input3.txt

内容类似于:

hello
world

我拥有的 .pro 看起来像这样:

pro tst1
common vars, a, b
infile = 'C:\input1.txt'
a =''
b =''
openr,lun, infile, /get_lun
readf,lun,a
readf,lun,b
end

pro tst2
common vars, a, b
tst1
print,a, b
end

我想要做的是更改每次迭代的 infile 变量,直到所有 3 个 input.txt 文件都被读取。

不幸的是,我确实需要在第一个 pro 中拥有公共块和 infile。我正在尝试使我得到的一个大的讨厌的 .pro 自动化(就像我的简单示例一样),它让我有点发疯。

4

1 回答 1

1

就像是:

pro tst1, infile
  common vars, a, b

  a = ''
  b = ''
  openr, lun, infile, /get_lun
  readf, lun, a
  readf, lun, b
  free_lun, lun
end

pro tst2
  common vars, a, b
  for i = 1, 3 do begin
    tst1, string(i, format='(%"C:\infile%d.txt")')
    print,a, b
  endfor
end
于 2012-07-12T21:34:59.303 回答