1

我在循环中有一个操作并在每次迭代中保存输出,但我想根据迭代编号命名文件,如果它不是三位数字,则前导零。

*DO, i, 1, 30

!operations goes here....
!...
!...

!out to file
/OUTPUT,%i%,txt

ENDDO

然而,它将文件命名为1.txt, 2.txt, ... 和30.txt, not 001.txt, 002.txt

我努力了

/OUTPUT,%02i,txt
/OUTPUT,%02i%,txt

但它们分别输出为文字字符串:%02i.txt%02i%.txt

如何克服这一点?谢谢!

4

1 回答 1

0

你能预定义文件名吗?比你可以尝试这样的事情:

*dim,fnames,string,80,  3
fnames(1,1) = '001file'
fnames(1,2) = '002file'
fnames(1,3) = '003file'
*do,i,1,3
  /OUTPUT,%fnames(1,i)%,txt
*enddo

如果没有,您可以尝试:

*do,i,1,30
  *if,i,lt,10,then
    /OUTPUT,%00%%i%file,txt
  *elseif,i,lt,100,and,i,gt,9,then
    /OUTPUT,%0%%i%file,txt
  *else
    /OUTPUT,%i%file,txt
  *endif
*enddo
于 2022-01-17T08:03:39.147 回答