2010-08-09 219 views
2

在Visual Foxpro應用程序中,其中一個用戶出現錯誤(其餘不)。我相信它是因爲數組是以arr(數字)而不是arr [數字]的形式使用的。有沒有人知道是什麼原因導致這種奇怪的行爲在單個用戶?Visual Foxpro Array []或()

謝謝!

+0

據我所知,使用[]和()之間沒有區別。它們可以互換使用。 – EddieC 2010-08-18 22:00:40

+1

什麼是錯誤信息? – 2015-03-10 13:41:11

回答

0

只要數組引用正確平衡爲()或[],就可以使用數組引用。問題可能在數組正在申報或準備的上游。我不得不調試歷史上奇怪的例子,就像這樣,一個用戶以完全不同於其他方式來進行流程的工作,以及業務工作流程......無論如何,由於一些「繞過」的流程,數組並沒有被創建並因此被迫失敗。

它是否總是在過程中的相同位置崩潰?

我會強烈鼓勵在這個「一個」用戶的過程中出現一些錯誤陷阱。更糟糕來糟糕的是,我會把東西的代碼類似的區域...

if atc("PersonsLoginName", sys(0)) > 0 
    TurnOnMyCustomDebugging() && for this special scenario trapping 
endif 

另外,我不知道你有錯誤捕獲例程,但我得到的轉儲出現錯誤時的內存以及使用戶到達該點的完整調用堆棧。如果你需要幫助,請告訴我。

0

Foxpro不區分這兩者。這實際上記錄在DIMENSIONDECLARE命令的說明中。

事實上,文檔並不嚴格遵循這種或那種方式。 DIMENSION和DECLARE命令用括號()定義語法。

DIMENSION ArrayName1(nRows1 [, nColumns1]) [AS cType] 
    [, ArrayName2(nRows2 [, nColumns2])] ... 

但文檔Arrays部分中提供的示例使用括號[]。

DIMENSION ArrayName[5,2] 
ArrayName[1,2] = 966789 
+0

該文檔嚴格遵循'''''''s'之間的東西是可選參數,這與問題無關。 – 2012-06-14 14:45:55

+0

@rudi_visser請再次閱讀。如果你看看聲明 - 忽略可選參數,它使用parens。然後,如果你看例子,它使用方括號。 – jveazey 2012-06-21 04:35:08