Idl programming language 跳过for循环中缺少的值

Idl programming language 跳过for循环中缺少的值,idl-programming-language,msg,Idl Programming Language,Msg,我有一个包含1000个TIF的文件夹。我想读4个TIF,做一些计算,然后读下4个TIF。问题是,例如,tif编号500缺失。现在我的当前程序在500号之后停止 因此,我的想法是使用file_test和/directory检查路径是否存在,并跳过foor循环中所有缺少的值 目录:如果文件存在并且是目录,则将此关键字设置为返回1(true)。真=1,假=0 for j = 0, 1102 do begin PathEx = File_test(e:\Meteosat\Tiff\2016\06\17

我有一个包含1000个TIF的文件夹。我想读4个TIF,做一些计算,然后读下4个TIF。问题是,例如,tif编号500缺失。现在我的当前程序在500号之后停止

因此,我的想法是使用file_test和/directory检查路径是否存在,并跳过foor循环中所有缺少的值

目录:如果文件存在并且是目录,则将此关键字设置为返回1(true)。真=1,假=0

for j = 0, 1102 do begin

PathEx = File_test(e:\Meteosat\Tiff\2016\06\17\MSG_201606170100_B4_L.tif', directory)

if PathEx = 1 then
B = READ_TIFF(e:\Meteosat\Tiff\2016\06\17\MSG_201606170100_B4_L.tif, GEOTIFF=tags)

if PathEx = 0 then
print, 'missing' and continue
结束

我想跳过所有丢失的路径。我不知道怎么做。我还读了一些关于 .继续

但我也不知道这是怎么回事。 非常感谢。
pampi

我不确定您使用的语法是否正确。您的代码应该如下所示:

FOR j=0L, 1102L DO BEGIN
  PathEx = FILE_TEST('e:\Meteosat\Tiff\2016\06\17\MSG_201606170100_B4_L.tif', /DIRECTORY)
  IF (PathEx[0] EQ 0) THEN CONTINUE    ;;  This will jump to the next index
  b = READ_TIFF('e:\Meteosat\Tiff\2016\06\17\MSG_201606170100_B4_L.tif',GEOTIFF=tags)
ENDFOR
您可能应该有一个文件名列表,然后索引这些文件名。假设您将它们称为
文件名
,这是一个[N]元素的字符串数组。然后在上述循环中执行以下操作:

file = filenames[j]
PathEx = FILE_TEST(file[0],/DIRECTORY)
IF (PathEx[0] EQ 0) THEN CONTINUE    ;;  This will jump to the next index
b = READ_TIFF(file[0],GEOTIFF=tags)

我还应该提到变量
b
应该是一个数组,或者应该在循环外部定义一个数组,您可以将数据存储到其中,否则
FOR
循环中的所有操作都将丢失。

我将尝试它!我用if(PathEx eq 0)完成了,然后继续if(PathEx eq 0),然后开始,但效果不是很好!谢谢