2016-07-14 115 views
0

我在IDL(版本8.2.2)中看到了一個簡單的FOREACH循環。對於我的生活,我不明白爲什麼我得到一個語法錯誤。我嘗試用簡單的FOR循環替換FOREACH,結果相同。FOREACH ... ENDFOREACH循環中的語法錯誤

刪除for循環並單獨運行語句可以正常工作(當然,硬編碼file的單個值)。

FOREACH file, filenames DO BEGIN 
    ; A number of 
    ; statements that execute 
    ; just fine 
ENDFOREACH 

結果:

ENDFOREACH 
^ 
% Syntax error. 

這一切在腳本運行,調用@myscript

或許直接從文檔中的一個更簡單的例子可以幫助:

我創建了一個腳本test.pro,從文檔複製/粘貼:http://www.harrisgeospatial.com/docs/BEGIN___END.htmltest.pro的內容是:

arr = [1, 3, 5, 7, 9] 
FOREACH element, arr DO BEGIN 
    PRINT, element 
ENDFOREACH 

結果:

IDL> @test 
     9 

ENDFOREACH 
^ 
% Syntax error. 
    At: /mydir/test.pro, Line 4 
IDL> 
+1

沒有太多可以出錯的地方。 'filesnames'是否定義和初始化?是一個簡單的'foreach/for'可能只是整數工作? – Ash

+0

我試着用一個簡單的'for' /'endfor'替換它,同樣的問題。我已經檢查了三個文件名,並用現在發佈的更簡單的示例進行了複製。 –

+1

你確定你的問題是關於'idl'而不是'idl-programming-language'嗎? – PetSerAl

回答

1

批處理文件(通過@myscript稱爲)不能有複合語句,即具有BEGIN/END。把它變成一個程序/功能或主要程序。

+0

Ahhhhhh :::在遠處聽到前額的粘巴掌:::謝謝! –

+2

或者,如果你真的想,你可以用「&」將它變成複合語句。例如: 的foreach元素,編曲也開始&等等等等&endforeach 你可以使用$將其分解成多行。 –