1

値を含む一連の.txtファイルを使用して、コンパイルされたIDL.proファイル内の変数の値を変更する方法があるかどうか疑問に思いました。

たとえば、各ファイルに2行の.txtファイルが3つあります。それらを単に呼びましょう:

 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

私がやりたいのは、3つのinput.txtファイルがすべて読み取られるまで、反復ごとに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 に答える