OpenTextFile方法支持多種改性劑,以達到不同的目標。 稱爲「iomode」的第二個參數指定是應讀取,覆蓋還是附加文件。 因爲在vbscript中沒有枚舉類型,所以這通過整數來區分。 正如你所見,in the documentation of the function。
1 means read
2 means write
8 means append
雖然從視點方案完全正常寫1,2和8作爲參數,這是對人類有小問題。如果您(在以後甚至是你自己)讀取另一個人的代碼,你只看到
... OpenTextFile("....", 1, ...)
你可能真的不知道什麼那裏1種手段。所以人們認爲定義一個名爲ForReading的變量是一個好主意,它使得代碼更易於理解。如果你這樣做,你可以寫:
... OpenTextFile("....", ForReading, ...)
並立即知道發生了什麼事情,雖然代碼保持相同的解釋。 現在JosefZ指出已經有一些預定義的常量,但這3個不在其中。因爲你自己定義它們(你也可以在我鏈接的msdn頁面的例子中看到)
你使用常量而不是變量的原因是爲了防止你意外地改變了值的編程錯誤那些。對於「ForReading」不是1的情況,永遠不會有意義,因爲如果您嘗試更改值,腳本引擎會不斷提醒您。
現在有些人通過遵循所有以「con」開頭的約定來標記它們的常量,以便他們可以很容易地在代碼中識別它們。
這基本上就是爲什麼有ForReading和conForReading的原因。然而,它是一樣的。你可以調用它,但是你希望重要的是它具有值1,並且你使用了你定義的那個。如果在腳本中定義conForReading,則不能在函數調用中使用ForReading。
其他人也總是定義常量3
Const ForReading = 1, ForWriting = 2, ForAppending = 3
即使只使用一個。這可能會讓初學者感到困惑,因爲如果它們甚至沒有被調用,那麼這些常量就會被需要。他們這樣做的原因可能是因爲他們要麼複製代碼,要麼從他們的程序的某個例子或另一個程序中複製代碼,要麼爲了完整性,以便記錄可能在函數中使用的內容。另一個原因可能是,在一個更大的腳本中,無論如何你都可能需要所有的腳本,並且如果你在開始時包含它們,你永遠不會犯一個使用它而沒有定義它的錯誤。
至於你的示例代碼: 你在函數調用中根本不使用常量,所以如果你把它忽略掉,它甚至不會改變它。
非常感謝!這真的澄清了我的問題。對於查看這個問題並且正在尋找確切答案的人來說,「有些人通過遵循約定來標記它們的常量,它們全部以」con「開頭,以便他們可以很容易地在代碼中識別它們。 這基本上就是爲什麼有ForReading和conForReading的原因。然而,它是一樣的。你可以調用它,但是你希望重要的是它具有值1,並且你使用了你定義的那個。如果在腳本中定義conForReading,則不能在函數調用中使用ForReading。「 –