內存變數

內存變數

VFP中的變數又稱為內存變數,是內存中存儲一個數據的位置名稱,在這個存儲位置中存放的數據在操作期間通過這個名稱來讀和寫。

內存變數是表結構之外獨立存在於內存中的變數。內存變數可用來存儲數據,定義內存變數時需為它取名並賦初值,內存變數建立后存儲於內存中。

變數類型


VFP中共定義了6種類型的內存變數:數值型、字元型、日期型、日期時間型、邏輯型和貨幣型,可分為簡單變數和數組變數。

創建方法


內存變數可以在被賦值時自動創建,給變數賦值的方法有兩種:
使用賦值運算符“=”或 STORE命令
格式一:使用賦值運算符“=”
<內存變數>=<表達式>
格式二:使用STORE命令
STORE eExpression TO VarNamelist / STORE <表達式>TO <內存變數表>
功能:計算表達式,然後將計算結果賦給內存變數。
在程序中自動創建的變數和數組均為私有型,而在命令窗口中自動創建的變數和數組為全局型。內存變數的類型與所賦值的常量的類型相同。STORE命令可包括多個內存變數,但變數與變數之間須用逗號分隔。

作用區域


用LOCAL,PRIVATE和PUBLIC關鍵字可以指定變數的作用域。
用LOCAL定義的變數或數組是局部變數或數組,局部變數或數組只能在創建它們的程序中使用和修改,不能被更高層次或者更低層次的程序訪問,在它們所屬的程序停止運行時,局部變數和數組將被釋放。
用PRIVATR定義的變數和數組為私有數組。通過PRIVATE可將調用程序中定義的變數和數組在當前程序中隱藏起來,這樣用戶變可以在當前程序停止運行,所以被聲明為私有的變數和數組均可重新被訪問。
用PUBLIC定義的變數或數組為全局(公共)變數。任何運行程序都能對全局變數進行使用和修改。

同名訪問


如果內存變數和欄位同名,直接使用變數訪問是欄位,要訪問內存變數應該在變數名前加上“m.”,如有一個欄位名為XB,有一個名為XB的內存變數,則要給該內存變數給值8,可使用的語言為:M.XB=8

保存恢復


可使用SAVE TO命名把內存變數保存到內存變數文件中,也可使用RESTORE命令把內存變數文件中的內存變數及值恢復到內存中。
SAVE TO命令的格式如下:
SAVE TO FileName[ALL LIKE Skeleton|ALL EXCEPT Skeleton]
格式中的FileName為內存變數的文件名,默認的擴展名為.MEM,Skeleton用來指定一類變數,可在其中使用“*”和“?”通配符,通配符的含義與文件名通配符基本一致。
RESTORE命令的格式如下:
RESTORE FROM FileName [ADDITIVE]
格式中的FileName為內存變數文件的文件名,若使用ADDITIVE關鍵字,則當前存在的內存變數仍保留,只是將內存變數文件中保存的內存變數追加到當前內存中來,否則當前內存變數被清除。