當前位置:首頁 » 數字幣問答 » DBT數字貨幣

DBT數字貨幣

發布時間: 2021-06-29 19:38:07

Ⅰ 小學升初中試卷

呵呵,我今年剛畢業哦!!你想我怎麼幫啊?不用緊張,剛開始我也很緊張的啊,不過真正考試了,才發現其實一點事都沒有,甚至比平時的考試還輕松,畢業考的卷子一般不是很難,放心啦,!

Ⅱ 想了解Visual FoxPro和C語言的區別在哪

1.3 Visual FoxPro編程基礎

--------------------------------------------------------------------------------

VFP是由FoxPro發展而來,並且根據「可視化編程」的需要,增加了一些新的操作。它的語句、函數和語法規則與Xbase(如dBASE、FoxBase、FoxPro)語言基本上是兼容的,而且功能更加強大。

一、數據和數據類型

1.數據的分類
數據是計算機程序處理的對象,也是運算產生的結果。
按數據的類型分類:數值型數據、字元型數據、邏輯型數據等。
按數據的處理層次分類:常量、變數、函數和表達式。
2.數據的類型
數據類型是數據的基本屬性。對數據進行操作的時候,只有同類型的數據才能進行操作,若對不同類型的數據進行操作,將被系統判為語法出錯。

(1)字元型(Character):由字母(漢字)、數字、空格等任意ASCII碼字元組成。

字元數據的長度為0~254,每個字元佔1個位元組。

(2)貨幣型(Currency):在使用貨幣值時,可以使用貨幣型來代替數值型。

貨幣型數據取值的范圍是:

-922337203685477.5807~922337203685477.5807

小數位數超過4位時,系統將進行四捨五入的處理。每個貨幣型數據佔8個位元組。

(3)日期型(Date):用以保存不帶時間的日期值。

日期型數據的存儲格式為「yyyymmdd」其中yyyy為年,佔4位,mm為月,佔2位,dd為日,佔2位。

日期型數據的表示有多種格式,最常用的格式為mm/dd/yyyy。

日期型數據取值的范圍是:公元0001年1月1日一公元9999年12月31日。

(4)日期時間型(DateTime):用以保存日期和時間值。日期時間型數據的存儲格式為 「yyyymmddhhmmss」其中yyyy為年,佔4位,mm為月,佔2位,dd為日,佔2位,hh為時間中的小時,佔2位,mm為時間中的分鍾,佔2位,ss為時間中的秒,佔2位。
日期時間型數據中可以只包含一個日期或者只包含一個時間值,預設日期值時,系統自動加上1999年12月31日,省略時間值時,則自動加上午夜零點。

(5)邏輯型(Logical):用於存儲只有兩個值的數據。存入的值只有真(.T.)和假(.F.)兩種狀態,佔1個位元組。

(6)數值型(Numeric):用來表示數量,它由數字0~9、一個符號(+或-)和一個小數點(.)組成。數值型數據的長度為1~20,每個數據佔8個位元組。
數值型數據取值的范圍是:

-0.9999999999E+19~0.9999999999E+20

以下數據類型只能被用於數據表中的欄位:

(7)雙精度型(Double):用於取代數值型,以便能提供更高的數值精度。雙精度型只能用於數據表中欄位的定義,它採用固定存儲長度的浮點數形式。與數值型不同,雙精度型數據的小數點的位置是由輸入的數據值來決定的。每個雙精度型數據佔8個位元組。

(8)浮點型(Float):只能用於數據表中欄位的定義,包含此類型是為了提供兼容性,浮點型在功能上與數值型等價。

(9)通用型(General):用於存儲OLE對象,只能用於數據表中欄位的定義。該欄位包含了對OLE對象的引用,而OLE對象的具體內容可以是一個電子表格、一個字處理器的文本、圖片等,是由其他應用軟體建立的。

(10)整型(Integer):用於存儲無小數部分的數值,只能用於數據表中欄位的定義。在數據表中,整型欄位佔用4個位元組,取值范圍是:

-2147483647~2147483647

整型以二進制形式存儲,不像數值型那樣需要轉換成ASCII字元存儲。

(11)備注型(Memo);備注型用於字元型數據塊的存儲,只能用於數據表中欄位的定義。在數據表中,備注型欄位佔用10個位元組,並用這10個位元組來引用備注的實際內容。實際備注內容的多少只受內存可用空間的限制。
備注型欄位的實際內容變化很大,不能直接將備注內容存在數據表(.DBF)文件中。
系統將備注內容存放在一個相對獨立的文件中,該文件的擴展名為.DBT。
由於沒有備注型的變數,所以對備注型欄位的處理,需轉換成字元型變數,然後使用字元型函數進行處理。

二、常量與變數

在程序的運行過程中,把需要處理的數據存放在內存儲器中,稱始終保持不變的數據為「常量」,稱存放可變數據的存儲器單元為「變數」,其中的數據稱為變數的值。

1.常量

常量是一個命名的數據項,在整個操作過程中其值保持不變。如PI值,即3.1415926535是數值型常量。 VFP定義了如下類型的常量:

數值型常量,如:20,16,100,1
字元型常量,用單引號或雙引號括起來的字元串,如:"ABCD"
邏輯型常量,只有兩種:.T.和.F.
日期型常量和日期時間型常量,如:{^1999-04-22},{^1999-04-24 10:00am}
2.變數
VFP有3種形式的變數:

內存變數——存放單個數據的內存單元
數組變數——存放多個數據的內存單元組
欄位變數——存放在數據表中的數據項
每個變數都有一個名稱,叫做變數名,VFP通過相應的變數名來使用變數。變數名的命名規則是:
(1)以字母、數字及下劃線組成,中文VFP可以使用漢字作變數名。
(2)以字母或下劃線開始,中文VFP可以漢字開始。
(3)長度為1~128個字元,每個漢字佔2個字元。
(4)不能使用VFP的保留字。
變數的作用域包括定義它的過程以及該過程所調用的子過程范圍。

三、運算符與表達式

運算是對數據進行加工的過程,描述各種不同運算的符號稱為運算符,而參與運算的數據稱為操作數。表達式用來表示某個求值規則,它由運算符和配對的圓括弧將常量、變數、函數、對象等操作數以合理的形式組合而成。
表達式可用來執行運算、操作字元或測試數據,每個表達式都產生唯一的值。表達式的類型由運算符的類型決定。在VFP中有5類運算符和表達式:

算術運算符和算術表達式
字元串運算符和字元串表達式
日期運算符和日期表達式
關系運算符和關系表達式
邏輯運算符和邏輯表達式
1.算術運算符與算術表達式

算術表達式也稱數值型表達式,由算術運算符、數值型常量、變數、函數和圓括弧組成,其運算結果為一數值。例如:50*2+(70—6)/8的運算結果為108.00。算術表達式的格式為:

<數值1><算術運算符1><數值2>[<算術運算符2><數值3>…]

(1)算術運算符。
VFP提供的算術運算符如表1。1所示。在這6個算術運算符中,除取負「-」是單目運算符外,其他均為雙目運算符。它們運算的含義與數學中基本相同。
表1.1 算術運算符

運算符 名稱 說 明
+ 加 同數學中的加法
- 減 同數學中的減法
* 乘 同數學中的乘法
/ 除 同數學中的除法
^或** 乘方 同數學中的乘方,如4^3表示43
% 求余 12%5表示12除以5所得的余數2

算術運算符的優先權依次為:

( ) → ^、** → *、/ → % → +、-

(2)表達式的書寫規則。
算術表達式與數學中的表達式寫法有所區別,在書寫表達式時應當特別注意:

每個符號佔1格,所有符號都必須一個一個並排寫在同一橫線上,不能在右上角或右下角寫方次或下標。例如:23要寫成2^3,Xl十X2要寫成X1+X2。

原來在數學表達式中省略的內容必須重新寫上。例如:2X要寫成2*X。

所有括弧都用小括弧(),且括弧必須配對。例如:3[x+2(y+z)]必須寫成3*(x+2*(y+z))。

要把數學表達式中的有些符號,改成VFP中可以表示的符號。例如:要把2πr改為2*pi*r。

2.字元串運算符與字元串表達式
一個字元串表達式由字元串常量、字元串變數、字元串函數和字元串運算符組成。它可以是一個簡單的字元串常量,也可以是若干個字元串常量或字元串變數的組合。VFP提供的字元運算符有兩個(其運算級別相同),如表1-2所示。

表1-2 字元運算符

運算符 名稱 說明
+ 連接 將字元型數據進行連接

- 空格移位連接 將前一數據尾部的空格移到後面數據的尾部

字元串表達式的格式為

<字元串1><字元串運算符1><字元串2>
[<字元串運算符2><字元串3>…]
例如:
"ABCl23"+"666xyz"連接後結果為:"ABCl23666xyz"
"計算機"+"世界" 連接後結果為:"計算機世界"
"ABC "-"DEFG" 連接後結果為:"ABCDEFG "
"ABC "+"DEFG" 連接後結果為:"ABC DEFG "
字元串表達式的值為字元串。
在字元串中嵌入引號,只需將字元串用另一種引號括起來即可。例如:
QM="'"
S=S+QM+ALLTRIM(THIS.Edit1.Value)+QM+","

3.日期時間運算符與日期時間表達式

日期型表達式由算術運算符「+、-」、算術表達式、日期型常量、日期型變數和函數組成。日期型數據是一種特殊的數值型數據,它們之間只能進行加「+」、減「-」運算。有下面3種情況:

兩個日期型數據可以相減,結果是一個數值型數據(兩個日期相差的天數)。例如:
{^1999/12/19}-{^1999/11/16}結果為數值型數據:33

一個表示天數的數值型數據可加到日期型數據中,其結果仍然為一日期型數據(向後推算的日期)。例如:{^1999/11/16}+33結果為日期型數據:{^1999/12/19}

一個表示天數的數值型數據可從日期型數據中減掉它,其結果仍然為一日期型數據(向前推算的日期)。例如:{^1999/12/19}-33 ,結果為日期型數據:{^1999/11/16}

VFP將無效的日期處理成空日期。

4.類與對象運算符
類與對象運算符專門用於實現面向對象的程序設計。有以下兩種:
.——點運算符,確定對象與類的關系,以及屬性、事件和方法與其對象的從屬關系。
::——作用域運算符,用於在子類中調用父類的方法。

5.名表達式
在VFP中,許多命令和函數需要提供一個名。可在VFP中使用的名有:

表/.DBF文件名 、 表/.DBF別名 、 表/.DBF欄位名 、 索引文件名、文件名、 內存變數和數組名、窗口名、 菜單名、表單名、 對象名、 屬性名、 …

在VFP中定義一個名時,需要遵循以下原則:

名中只能使用字母或下劃線開始。

名中只能使用字母、數字和下劃線字元。

不能使用VFP的保留字。

名的長度可以為1—128個字元,但自由表中的欄位名、索引標記名最多為10個字元。文件名按操作系統的規定。

名不是變數或欄位,但是可以定義一個名表達式,以代替同名的變數或欄位的值。
名表達式為VFP的命令和函數提供了靈活性。將名存放到變數或數組元素中,就可以在命令或函數中用變數來代替該名,只要將存放一個名的變數或數組元素用一對括弧括起來。如:

STORE "CITY" TO a
REPLACE (a) WITH "Beijing"

欄位名CITY被存放在變數a中,在使用REPLACE命令時,名表達式(a)將用欄位名代替變數。這種方法稱為間接引用。

四、函數

對於用戶來說,程序設計語言中的函數與數學上的函數沒有什麼區別,使用函數要有參數(自變數),可以從函數得到一個返回的值(因變數)。而從程序設計的角度來看,函數是子程序的一種,它能完成一種特定的運算。

1.函數的分類

VFP的函數有兩種,一種是用戶自定義的函數,一種是系統函數。自定義函數由用戶根據需要自行編寫 , 系統函數則是由VFP提供的內部函數,用戶可以隨時調用。
VFP提供的系統函數大約有380多個,主要分為:數值函數、字元處理函數、表和資料庫函數、日期時間函數、類型轉換函數、測試函數、菜單函數、窗口函數、數組函數、SQL查詢函數、位運算函數、對象特徵函數、文件管理函數以及系統調用函數等14類。

2.常用函數

VFP提供了大量的系統函數供編程人員使用,下面列出常用的一些函數。
(1)數學函數

函數格式 說 明

ABS(N) 求N的絕對值
COS(N) 求N的餘弦函數
EXP(N) 求N的e指數函數
INT(N) 取N的整數,對負數取較小的整數
LOG(N) 求N的自然對數
MAX(N1,N2) 求N1、N2中的最大者
MIN(N1,N2) 求N1、N2中的最小者
MOD(N1,N2) 求N1除以N2的余數
PI() 求圓周率
RAND(N) 產生0—1之間的隨機數
ROUND(N1,N2) 按N2指定的小數位數求N1四捨五入後的值
SIGN(N) 求N的正負符號
SIN(N) 求N的正弦函數
SQRT(N) 求N的平方根
TAN(N) 求N的正切函數

(2)字元串函數

函數格式
說 明

ALLTRIM(C) 去掉C的前導空格和尾隨空格
ASC(C) 求C中最左邊一個字元的ASCII碼值
AT(C1,C2) 返回C1在C2中出現的開始位置(整數值)
LEFT(C,n) 從字元串C的左邊取長度為n的子串
LEN(C) 求字元串C長度
RIGHT(C,n) 從字元串C的右邊取長度為n的子串
L0WER(C) 將字元串C中的大寫字母轉換為小寫字母
SPACE(n) 返回n個空格字元組成的字元串
SUBSTR(C,n[,m]) 從字元串C中提取從n開始的m個字元的子串,若省略m則取n開始的所有字元
UPPER(C) 將字元串表達式中的小寫字母轉換為大寫字母

(3)日期函數

函數格式 說 明
DATE() 系統當前日期
TIME() 系統當前時間
DATETIME() 系統當前日期和時間
DOW(D) 取日期表達式D的星期號(1為星期天)
YEAR(D) 取日期D的年份值
MONTH(D) 取日期D的月份值
DAY(D) 取日期D在月份中的天數值
HOUR(D) 取時間D中的小時數
MINUTE(D) 取時間D中的分鍾數
SEC(D) 取時間D中的秒數

(4)類型轉換函數

函數格式
說 明

CHR(ASCII碼) 返回與ASCII碼相應的字元
CTOD(C) 轉換C表達式為對應的日期值
CTOT(C) 轉換C表達式為對應的日期時間值
DTOC(D) 轉換日期表達式D為字元串
STR(N,n,m) 轉換數值表達式N為數字字元串
TTOC(D) 轉換日期時間表達式D為字元串
VAL(C) 返回數字字元串C對應的數值

五、對象的屬性、事件與方法

對象(object)在現實生活中是很常見的,如:一個人是一個對象,一台PC機是一個對象。如果將一台PC機拆開來看便有「顯示器、機箱、軟盤驅動器、硬碟、鍵盤、滑鼠器…」,每一個又都是一個對象,即PC機對象是由多個「子」對象組成的。此時PC機又稱為一個包容器(Container)對象。在可視化編程中,對象是應用程序的基本元素,常見的對象有表單、文本框、列表框等。
從可視化編程的角度來看,對象是一個具有屬性(數據)和方法(行為方式)的實體。一個對象建立以後,其操作就通過與該對象有關的屬性、事件和方法來描述。

1、對象的屬性

屬性(Propeny)是指對象的一項描述內容,用來描述對象的一個特性,不同的對象有不同的屬性,而每個對象又都由若干屬性來描述。在可視化編程中,常見的屬性有標題(Caption)、名稱(Name)、背景色(Backcolor)、字體大小(FontSize)、是否可見(Visible)等。通過修改或設置某些屬性便能有效地控制對象的外觀和操作。
屬性值的設置或修改可以通過屬性窗口來進行,也可以通過編程的方法在程序運行的時候來改變對象的屬性。在程序中設置屬性的一般格式是:

表單名.對象名.屬性名=屬性值

2.對象的事件

所謂事件(Event),是由VFP預先定義好的、能夠被對象識別的動作,如單擊(Click)事件、雙擊(DblClick)事件、裝入(Load)事件、移動滑鼠(MouseMove)事件等,不同的對象能識別的事件不全相同。對象的事件是固定的,用戶不能建立新的事件。為此,VFP提供了豐富的內部事件,這些事件足以應付Windows中的絕大部分操作需要。
事件過程(Event Procure)是為處理特定事件而編寫的一段程序。當事件由用戶觸發(如C1ick)或由系統觸發(如Load)時,對象就會對該事件作出響應(Respond)。響應某個事件後所執行的程序代碼就是事件過程。

3.對象的方法

方法(Method)是與對象相關聯的過程,但又不同於一般的Visual FoxPro過程。方法程序緊密地和對象連接在一起,並且與一般Visual FoxPro過程的調用方式也有所不同。
與事件過程類似,VFP的方法屬於對象的內部函數,只是方法用於完成某種特定的功能而不一定響應某一事件,如添加對象(Addobject)方法、繪制矩形(Box)方法、釋放表單(Release)方法等。方法也被「封裝」在對象中,不同的對象具有不同的內部方法。VFP提供了百餘個內部方法供不同的對象調用。與事件過程不同的是,根據需要可由用戶自行建立新方法。

4.事件與方法的程序調用

事件過程由事件的激發而調用其代碼,也可以在運行中由程序調用其代碼,而方法的代碼只能在運行中由程序調用。

在程序中調用事件代碼的格式是:

表單名.對象名.事件名

在程序中調用對象方法的格式是

[[<變數名>]=]表單名.對象名.方法名

六、控制項與對象

Visual FoxPro編程的最大特點,就是在可視的環境下以最快的速度和效率開發具有良好用戶界面的應用程序,其實質就是利用VFP所提供的圖形構件快速構造應用程序的輸入輸出屏幕界面。控制項(Control)是某種圖形構件的統稱,如「標簽控制項」、「文本框控制項」、「列表框控制項」等,利用控制項創建對象則是構造應用程序界面的具體方法。

1.常用控制項和內部對象

常用控制項由VFP的基類提供,共21個,每個控制項用「表單控制項」按鈕表示,如表1-7所示(P17)。

2.表單對象

表單(Form)是應用程序的用戶界面,也是進行程序設計的基礎。各種圖形、圖像、數據等都是通過表單或表單中的對象顯示出來,因此表單是一個容器對象。
在FoxPro的早期版本中表單被稱為屏幕(Screen),在Visual Basic中則稱為窗體。

(1)表單的結構。
VFP的表單具有和Windows應用程序的窗口界面相同的結構特徵。一個典型的表單有圖標、標題、極小化按鈕、極大化按鈕、關閉按鈕、移動欄、表單體及其周圍的邊框。其中除了表單體之外的所有特徵都可以部分或全部從表單中被刪除。

(2)表單屬性

在VFP中,表單的屬性就是表單的結構特徵。通過修改表單的屬性可以改變表單的內常用的表單屬性如表1—8所示。

屬性名 作 用
AutoCenter 用於控製表單初始化時是否總是位於VFP窗口或其父表單的中央
BackColor 用於確定表單的背景顏色
BorderStyle 用於控製表單是否有邊框:系統(可調)、單線、雙線
Caption 表單的標題
Closable 用於控製表單的標題欄中的關閉按鈕是否能用
ControlBox 用於控製表單的標題欄中是否有控制按鈕
MaxButton 用於控製表單的標題欄中是否有極大化按鈕
MinButton 用於控製表單的標題欄中是否有極小化按鈕
Movable 用於控製表單是否可移動
TitleBar 用於控製表單是否有標題欄
WindowState 用於控製表單是極小化、極大化還是正常狀態
WindowType 若表單是模式表單,則用戶在訪問windows屏幕中其他任何對象前必須關閉該表單

(3)表單的事件與方法。

就像屬性那樣,只有部分的表單事件與方法經常被使用,很多事件與方法很少被使用,除非你在編寫一個非常復雜的應用程序。可以在代碼窗口的「過程」下拉列表框中看到所有表單事件與方法的列表,也可以在「屬性」窗口的「方法程序」選項卡中看到所有表單事件與方法的列表。

下面只列舉那些最常用的事件與方法。
常用的表單事件:

Load事件——當表單被裝入內存時發生;

Init事件——當表單被初始化時發生;

Activate事件——當表單被激活時發生。

上述事件被激發的順序為Load、Init、Activate。

Destroy事件——當表單被釋放時發生;

Unload事件——當表單被關閉時發生。

上述事件被激發順序為Unload、Destroy。

Resize事件——當用戶或程序去改變表單的大小時
發生。

常用的表單方法:

Hide方法——隱藏表單;

Show方法——顯示表單;

Release方法——釋放表單;

Refresh方法——刷新表單。

3.對象的引用

(1)對象的包容層次。
VFP中的對象根據它們所基於的類的性質可分為兩類:容器類對象和控制項類對象。
容器類對象可以包含其他對象,並且允許訪問這些對象,例如表單集、表單、表格等控制項類對象只能包含在容器對象之中,而不能夠包含其他對象,例如命令按鈕、復選框等。表1-9(P20)列出了每種容器類對象所能包含的對象。

(2)對象的引用。

作為應用程序的用戶界面,表單上可以包含許多對象,而這些對象又有可能具有互相包含的層次關系。若要引用一個對象,需要知道它相對於容器層次的關系。例如,如果要在表單集中處理一個表單的控制項,則需要引用表單集、表單和控制項。

1)絕對引用:通過提供對象的完整容器層次來引用對象。
若要使表列中的控制項無效,需要提供以下地址:

Formset.Form.PageFrame.Page.Grid.Column.Control.Enabled=.F.

2)相對引用:在容器層次中引用對象時,可以通
過快捷方式指明所要處理的對象。
例如:THISFORMSET.Frml.Cmdl.Caption="關閉"
表示將本表單集的名為Fnnl的表單中的Cmdl對象的標題(Caption)屬性設置為"關閉"。

THISFORM.Cmdl.Caption="關閉"
表示將本表單的名為Cmdl對象的標題(Caption)屬性設置為"關閉"。
THIS.Caption=」關閉」
對於需要改變標題的控制項,表示將本對象的標題(Caption)屬性設置為"關閉"。
THIS.Parent.BackColor=RGB(192,0g0)
表示將本對象的父對象的背景色設置為暗紅色。
表1—10列出了一些屬性和關鍵字,這些屬性和關鍵字允許更方便地從對象層次中引用對象。

表1-10 引用對象的屬性和關鍵字

屬性或關鍵字 引 用
ActiveControl 當前活動表單中具有焦點的控制項
ActiveForm 當前活動表單
ActivePage 當前活動表單中的活動頁
Parent 該對象的直接容器
THIS 該對象
THISFORM 包含該對象的表單
THISFORMSET 包含該對象的表單集

說明:只能在方法程序或事件過程中使用THIS、
THISFORM和THISFORMSET。

Ⅲ Visual Foxpro常用的數據類型有哪些

(1)字元型(Character):由字母(漢字)、數字、空格等任意ASCII碼字元組成。

字元數據的長度為0~254,每個字元佔1個位元組。

(2)貨幣型(Currency):在使用貨幣值時,可以使用貨幣型來代替數值型。

貨幣型數據取值的范圍是:

-922337203685477.5807~922337203685477.5807

小數位數超過4位時,系統將進行四捨五入的處理。每個貨幣型數據佔8個位元組。

(3)日期型(Date):用以保存不帶時間的日期值。

日期型數據的存儲格式為「yyyymmdd」其中yyyy為年,佔4位,mm為月,佔2位,dd為日,佔2位。

日期型數據的表示有多種格式,最常用的格式為mm/dd/yyyy。

日期型數據取值的范圍是:公元0001年1月1日一公元9999年12月31日。

(4)日期時間型(DateTime):用以保存日期和時間值。日期時間型數據的存儲格式為 「yyyymmddhhmmss」其中yyyy為年,佔4位,mm為月,佔2位,dd為日,佔2位,hh為時間中的小時,佔2位,mm為時間中的分鍾,佔2位,ss為時間中的秒,佔2位。
日期時間型數據中可以只包含一個日期或者只包含一個時間值,預設日期值時,系統自動加上1999年12月31日,省略時間值時,則自動加上午夜零點。

(5)邏輯型(Logical):用於存儲只有兩個值的數據。存入的值只有真(.T.)和假(.F.)兩種狀態,佔1個位元組。

(6)數值型(Numeric):用來表示數量,它由數字0~9、一個符號(+或-)和一個小數點(.)組成。數值型數據的長度為1~20,每個數據佔8個位元組。
數值型數據取值的范圍是:

-0.9999999999E+19~0.9999999999E+20

以下數據類型只能被用於數據表中的欄位:

(7)雙精度型(Double):用於取代數值型,以便能提供更高的數值精度。雙精度型只能用於數據表中欄位的定義,它採用固定存儲長度的浮點數形式。與數值型不同,雙精度型數據的小數點的位置是由輸入的數據值來決定的。每個雙精度型數據佔8個位元組。

(8)浮點型(Float):只能用於數據表中欄位的定義,包含此類型是為了提供兼容性,浮點型在功能上與數值型等價。

(9)通用型(General):用於存儲OLE對象,只能用於數據表中欄位的定義。該欄位包含了對OLE對象的引用,而OLE對象的具體內容可以是一個電子表格、一個字處理器的文本、圖片等,是由其他應用軟體建立的。

(10)整型(Integer):用於存儲無小數部分的數值,只能用於數據表中欄位的定義。在數據表中,整型欄位佔用4個位元組,取值范圍是:

-2147483647~2147483647

整型以二進制形式存儲,不像數值型那樣需要轉換成ASCII字元存儲。

(11)備注型(Memo);備注型用於字元型數據塊的存儲,只能用於數據表中欄位的定義。在數據表中,備注型欄位佔用10個位元組,並用這10個位元組來引用備注的實際內容。實際備注內容的多少只受內存可用空間的限制。
備注型欄位的實際內容變化很大,不能直接將備注內容存在數據表(.DBF)文件中。
系統將備注內容存放在一個相對獨立的文件中,該文件的擴展名為.DBT。
由於沒有備注型的變數,所以對備注型欄位的處理,需轉換成字元型變數,然後使用字元型函數進行處理。

Ⅳ Visual FoxPro的字元型變數中,最多能存放多少個ASCII的字元

254個字元

Ⅳ 中國政策允許虛擬幣發行的公司有哪些

中國監管部門已經叫停了虛擬貨幣的發行和交易,中國政策不允許任何虛擬幣發行。

Ⅵ 電子商務屬於商標哪一類

隨著淘寶、京東等網路購買平台的涌現,「電子商務」(簡稱「電商」)這個詞也在我們的生活頻繁出現。那麼電商行業使用的電商商標屬於哪一類商標?

實際上電商是一個不斷發展的概念,狹義電商是指實現整個貿易過程中各階段貿易活動的電子化,是指基於互聯網的電子交易。而廣義電商是指利用網路實現所有商務活動業務流程的電子化,指企業使用各種電子工具從事商務活動。

要找到真正屬於電商的商標類別,電商商標屬於哪一類主要還得看企業的主營業務是否與各類商標的內容匹配。一般來說,最常見的電商是以計算機網路為基礎所進行的各種商務活動,包括商品和服務的提供者、廣告商、消費者、中介商等有關各方行為的總和。

電子商務商標注冊分類涉及到以下這些詳細類別:

9類(計算機,計算機程序(可下載軟體),計算機周邊設備,電子字典,手提電話,數據處理設備,光學數據媒介,電子出版物(可下載),電子防盜裝置,電線)

35類(廣告,商業管理和組織咨詢,組織商業或廣告展覽,拍賣,將信息編入計算機資料庫,數據通訊網路上的在線廣告,貿易業務的專業咨詢,進出口代理,替他人推銷,人事管理咨詢)

38類(電視廣播,信息傳送,計算機輔助信息與圖像傳輸,電子郵件,遠程會議服務,提供全球計算機網路用戶接入服務(服務商),提供與全球計算機網路的電訊聯接服務,提供網際網路聊天室,提供資料庫接入服務,)

39類(運輸,運輸預訂,禮品包裝,船舶經紀,鐵路運輸,停車場服務,倉庫貯存,電子數據或文件載體的物理儲藏,快遞(信件或商品),旅遊安排)

41類(培訓,安排和組織會議,在線電子書籍和雜志的出版,提供在線電子出版物(非下載的),數字成像服務,俱樂部服務(娛樂或教育),(在計算機網路上)提供在線游戲,健身俱樂部,翻譯,圖書出版)

42類(工程,質量體系認證,材料測試,建設項目的開發,計算機軟體設計,把有形的數據和文件轉換成電子媒體,替他人創建和維護網站,計算機程序和數據的數據轉換(非有形轉換),提供互聯網搜索引擎,計算機)

值得注意的是,電商的本質是以互聯網為基礎的零售、批發等商品銷售企業,除了第9、38、42類等互聯網、商品包裝運輸和電子相關商標外,還有一類商標,是所有電商都不能忽略的,那就是第35類。

第35類是所有電商、電銷平台等必須注冊的大類,否則將會存在侵權或被侵權風險,帶來不必要的經濟損失和品牌負面影響。

Ⅶ VFP表單題目求答案

1.3 Visual FoxPro編程基礎

--------------------------------------------------------------------------------

VFP是由FoxPro發展而來,並且根據「可視化編程」的需要,增加了一些新的操作。它的語句、函數和語法規則與Xbase(如dBASE、FoxBase、FoxPro)語言基本上是兼容的,而且功能更加強大。

一、數據和數據類型

1.數據的分類
數據是計算機程序處理的對象,也是運算產生的結果。
按數據的類型分類:數值型數據、字元型數據、邏輯型數據等。
按數據的處理層次分類:常量、變數、函數和表達式。
2.數據的類型
數據類型是數據的基本屬性。對數據進行操作的時候,只有同類型的數據才能進行操作,若對不同類型的數據進行操作,將被系統判為語法出錯。

(1)字元型(Character):由字母(漢字)、數字、空格等任意ASCII碼字元組成。

字元數據的長度為0~254,每個字元佔1個位元組。

(2)貨幣型(Currency):在使用貨幣值時,可以使用貨幣型來代替數值型。

貨幣型數據取值的范圍是:

-922337203685477.5807~922337203685477.5807

小數位數超過4位時,系統將進行四捨五入的處理。每個貨幣型數據佔8個位元組。

(3)日期型(Date):用以保存不帶時間的日期值。

日期型數據的存儲格式為「yyyymmdd」其中yyyy為年,佔4位,mm為月,佔2位,dd為日,佔2位。

日期型數據的表示有多種格式,最常用的格式為mm/dd/yyyy。

日期型數據取值的范圍是:公元0001年1月1日一公元9999年12月31日。

(4)日期時間型(DateTime):用以保存日期和時間值。日期時間型數據的存儲格式為 「yyyymmddhhmmss」其中yyyy為年,佔4位,mm為月,佔2位,dd為日,佔2位,hh為時間中的小時,佔2位,mm為時間中的分鍾,佔2位,ss為時間中的秒,佔2位。
日期時間型數據中可以只包含一個日期或者只包含一個時間值,預設日期值時,系統自動加上1999年12月31日,省略時間值時,則自動加上午夜零點。

(5)邏輯型(Logical):用於存儲只有兩個值的數據。存入的值只有真(.T.)和假(.F.)兩種狀態,佔1個位元組。

(6)數值型(Numeric):用來表示數量,它由數字0~9、一個符號(+或-)和一個小數點(.)組成。數值型數據的長度為1~20,每個數據佔8個位元組。
數值型數據取值的范圍是:

-0.9999999999E+19~0.9999999999E+20

以下數據類型只能被用於數據表中的欄位:

(7)雙精度型(Double):用於取代數值型,以便能提供更高的數值精度。雙精度型只能用於數據表中欄位的定義,它採用固定存儲長度的浮點數形式。與數值型不同,雙精度型數據的小數點的位置是由輸入的數據值來決定的。每個雙精度型數據佔8個位元組。

(8)浮點型(Float):只能用於數據表中欄位的定義,包含此類型是為了提供兼容性,浮點型在功能上與數值型等價。

(9)通用型(General):用於存儲OLE對象,只能用於數據表中欄位的定義。該欄位包含了對OLE對象的引用,而OLE對象的具體內容可以是一個電子表格、一個字處理器的文本、圖片等,是由其他應用軟體建立的。

(10)整型(Integer):用於存儲無小數部分的數值,只能用於數據表中欄位的定義。在數據表中,整型欄位佔用4個位元組,取值范圍是:

-2147483647~2147483647

整型以二進制形式存儲,不像數值型那樣需要轉換成ASCII字元存儲。

(11)備注型(Memo);備注型用於字元型數據塊的存儲,只能用於數據表中欄位的定義。在數據表中,備注型欄位佔用10個位元組,並用這10個位元組來引用備注的實際內容。實際備注內容的多少只受內存可用空間的限制。
備注型欄位的實際內容變化很大,不能直接將備注內容存在數據表(.DBF)文件中。
系統將備注內容存放在一個相對獨立的文件中,該文件的擴展名為.DBT。
由於沒有備注型的變數,所以對備注型欄位的處理,需轉換成字元型變數,然後使用字元型函數進行處理。

二、常量與變數

在程序的運行過程中,把需要處理的數據存放在內存儲器中,稱始終保持不變的數據為「常量」,稱存放可變數據的存儲器單元為「變數」,其中的數據稱為變數的值。

1.常量

常量是一個命名的數據項,在整個操作過程中其值保持不變。如PI值,即3.1415926535是數值型常量。 VFP定義了如下類型的常量:

數值型常量,如:20,16,100,1
字元型常量,用單引號或雙引號括起來的字元串,如:"ABCD"
邏輯型常量,只有兩種:.T.和.F.
日期型常量和日期時間型常量,如:{^1999-04-22},{^1999-04-24 10:00am}
2.變數
VFP有3種形式的變數:

內存變數——存放單個數據的內存單元
數組變數——存放多個數據的內存單元組
欄位變數——存放在數據表中的數據項
每個變數都有一個名稱,叫做變數名,VFP通過相應的變數名來使用變數。變數名的命名規則是:
(1)以字母、數字及下劃線組成,中文VFP可以使用漢字作變數名。
(2)以字母或下劃線開始,中文VFP可以漢字開始。
(3)長度為1~128個字元,每個漢字佔2個字元。
(4)不能使用VFP的保留字。
變數的作用域包括定義它的過程以及該過程所調用的子過程范圍。

三、運算符與表達式

運算是對數據進行加工的過程,描述各種不同運算的符號稱為運算符,而參與運算的數據稱為操作數。表達式用來表示某個求值規則,它由運算符和配對的圓括弧將常量、變數、函數、對象等操作數以合理的形式組合而成。
表達式可用來執行運算、操作字元或測試數據,每個表達式都產生唯一的值。表達式的類型由運算符的類型決定。在VFP中有5類運算符和表達式:

算術運算符和算術表達式
字元串運算符和字元串表達式
日期運算符和日期表達式
關系運算符和關系表達式
邏輯運算符和邏輯表達式
1.算術運算符與算術表達式

算術表達式也稱數值型表達式,由算術運算符、數值型常量、變數、函數和圓括弧組成,其運算結果為一數值。例如:50*2+(70—6)/8的運算結果為108.00。算術表達式的格式為:

<數值1><算術運算符1><數值2>[<算術運算符2><數值3>…]

(1)算術運算符。
VFP提供的算術運算符如表1。1所示。在這6個算術運算符中,除取負「-」是單目運算符外,其他均為雙目運算符。它們運算的含義與數學中基本相同。
表1.1 算術運算符

運算符 名稱 說 明
+ 加 同數學中的加法
- 減 同數學中的減法
* 乘 同數學中的乘法
/ 除 同數學中的除法
^或** 乘方 同數學中的乘方,如4^3表示43
% 求余 12%5表示12除以5所得的余數2

算術運算符的優先權依次為:

( ) → ^、** → *、/ → % → +、-

(2)表達式的書寫規則。
算術表達式與數學中的表達式寫法有所區別,在書寫表達式時應當特別注意:

每個符號佔1格,所有符號都必須一個一個並排寫在同一橫線上,不能在右上角或右下角寫方次或下標。例如:23要寫成2^3,Xl十X2要寫成X1+X2。

原來在數學表達式中省略的內容必須重新寫上。例如:2X要寫成2*X。

所有括弧都用小括弧(),且括弧必須配對。例如:3[x+2(y+z)]必須寫成3*(x+2*(y+z))。

要把數學表達式中的有些符號,改成VFP中可以表示的符號。例如:要把2πr改為2*pi*r。

2.字元串運算符與字元串表達式
一個字元串表達式由字元串常量、字元串變數、字元串函數和字元串運算符組成。它可以是一個簡單的字元串常量,也可以是若干個字元串常量或字元串變數的組合。VFP提供的字元運算符有兩個(其運算級別相同),如表1-2所示。

表1-2 字元運算符

運算符 名稱 說明
+ 連接 將字元型數據進行連接

- 空格移位連接 將前一數據尾部的空格移到後面數據的尾部

字元串表達式的格式為

<字元串1><字元串運算符1><字元串2>
[<字元串運算符2><字元串3>…]
例如:
"ABCl23"+"666xyz"連接後結果為:"ABCl23666xyz"
"計算機"+"世界" 連接後結果為:"計算機世界"
"ABC "-"DEFG" 連接後結果為:"ABCDEFG "
"ABC "+"DEFG" 連接後結果為:"ABC DEFG "
字元串表達式的值為字元串。
在字元串中嵌入引號,只需將字元串用另一種引號括起來即可。例如:
QM="'"
S=S+QM+ALLTRIM(THIS.Edit1.Value)+QM+","

3.日期時間運算符與日期時間表達式

日期型表達式由算術運算符「+、-」、算術表達式、日期型常量、日期型變數和函數組成。日期型數據是一種特殊的數值型數據,它們之間只能進行加「+」、減「-」運算。有下面3種情況:

兩個日期型數據可以相減,結果是一個數值型數據(兩個日期相差的天數)。例如:
{^1999/12/19}-{^1999/11/16}結果為數值型數據:33

一個表示天數的數值型數據可加到日期型數據中,其結果仍然為一日期型數據(向後推算的日期)。例如:{^1999/11/16}+33結果為日期型數據:{^1999/12/19}

一個表示天數的數值型數據可從日期型數據中減掉它,其結果仍然為一日期型數據(向前推算的日期)。例如:{^1999/12/19}-33 ,結果為日期型數據:{^1999/11/16}

VFP將無效的日期處理成空日期。

4.類與對象運算符
類與對象運算符專門用於實現面向對象的程序設計。有以下兩種:
.——點運算符,確定對象與類的關系,以及屬性、事件和方法與其對象的從屬關系。
::——作用域運算符,用於在子類中調用父類的方法。

5.名表達式
在VFP中,許多命令和函數需要提供一個名。可在VFP中使用的名有:

表/.DBF文件名 、 表/.DBF別名 、 表/.DBF欄位名 、 索引文件名、文件名、 內存變數和數組名、窗口名、 菜單名、表單名、 對象名、 屬性名、 …

在VFP中定義一個名時,需要遵循以下原則:

名中只能使用字母或下劃線開始。

名中只能使用字母、數字和下劃線字元。

不能使用VFP的保留字。

名的長度可以為1—128個字元,但自由表中的欄位名、索引標記名最多為10個字元。文件名按操作系統的規定。

名不是變數或欄位,但是可以定義一個名表達式,以代替同名的變數或欄位的值。
名表達式為VFP的命令和函數提供了靈活性。將名存放到變數或數組元素中,就可以在命令或函數中用變數來代替該名,只要將存放一個名的變數或數組元素用一對括弧括起來。如:

STORE "CITY" TO a
REPLACE (a) WITH "Beijing"

欄位名CITY被存放在變數a中,在使用REPLACE命令時,名表達式(a)將用欄位名代替變數。這種方法稱為間接引用。

四、函數

對於用戶來說,程序設計語言中的函數與數學上的函數沒有什麼區別,使用函數要有參數(自變數),可以從函數得到一個返回的值(因變數)。而從程序設計的角度來看,函數是子程序的一種,它能完成一種特定的運算。

1.函數的分類

VFP的函數有兩種,一種是用戶自定義的函數,一種是系統函數。自定義函數由用戶根據需要自行編寫 , 系統函數則是由VFP提供的內部函數,用戶可以隨時調用。
VFP提供的系統函數大約有380多個,主要分為:數值函數、字元處理函數、表和資料庫函數、日期時間函數、類型轉換函數、測試函數、菜單函數、窗口函數、數組函數、SQL查詢函數、位運算函數、對象特徵函數、文件管理函數以及系統調用函數等14類。

2.常用函數

VFP提供了大量的系統函數供編程人員使用,下面列出常用的一些函數。
(1)數學函數

函數格式 說 明

ABS(N) 求N的絕對值
COS(N) 求N的餘弦函數
EXP(N) 求N的e指數函數
INT(N) 取N的整數,對負數取較小的整數
LOG(N) 求N的自然對數
MAX(N1,N2) 求N1、N2中的最大者
MIN(N1,N2) 求N1、N2中的最小者
MOD(N1,N2) 求N1除以N2的余數
PI() 求圓周率
RAND(N) 產生0—1之間的隨機數
ROUND(N1,N2) 按N2指定的小數位數求N1四捨五入後的值
SIGN(N) 求N的正負符號
SIN(N) 求N的正弦函數
SQRT(N) 求N的平方根
TAN(N) 求N的正切函數

(2)字元串函數

函數格式
說 明

ALLTRIM(C) 去掉C的前導空格和尾隨空格
ASC(C) 求C中最左邊一個字元的ASCII碼值
AT(C1,C2) 返回C1在C2中出現的開始位置(整數值)
LEFT(C,n) 從字元串C的左邊取長度為n的子串
LEN(C) 求字元串C長度
RIGHT(C,n) 從字元串C的右邊取長度為n的子串
L0WER(C) 將字元串C中的大寫字母轉換為小寫字母
SPACE(n) 返回n個空格字元組成的字元串
SUBSTR(C,n[,m]) 從字元串C中提取從n開始的m個字元的子串,若省略m則取n開始的所有字元
UPPER(C) 將字元串表達式中的小寫字母轉換為大寫字母

(3)日期函數

函數格式 說 明
DATE() 系統當前日期
TIME() 系統當前時間
DATETIME() 系統當前日期和時間
DOW(D) 取日期表達式D的星期號(1為星期天)
YEAR(D) 取日期D的年份值
MONTH(D) 取日期D的月份值
DAY(D) 取日期D在月份中的天數值
HOUR(D) 取時間D中的小時數
MINUTE(D) 取時間D中的分鍾數
SEC(D) 取時間D中的秒數

(4)類型轉換函數

函數格式
說 明

CHR(ASCII碼) 返回與ASCII碼相應的字元
CTOD(C) 轉換C表達式為對應的日期值
CTOT(C) 轉換C表達式為對應的日期時間值
DTOC(D) 轉換日期表達式D為字元串
STR(N,n,m) 轉換數值表達式N為數字字元串
TTOC(D) 轉換日期時間表達式D為字元串
VAL(C) 返回數字字元串C對應的數值

五、對象的屬性、事件與方法

對象(object)在現實生活中是很常見的,如:一個人是一個對象,一台PC機是一個對象。如果將一台PC機拆開來看便有「顯示器、機箱、軟盤驅動器、硬碟、鍵盤、滑鼠器…」,每一個又都是一個對象,即PC機對象是由多個「子」對象組成的。此時PC機又稱為一個包容器(Container)對象。在可視化編程中,對象是應用程序的基本元素,常見的對象有表單、文本框、列表框等。
從可視化編程的角度來看,對象是一個具有屬性(數據)和方法(行為方式)的實體。一個對象建立以後,其操作就通過與該對象有關的屬性、事件和方法來描述。

1、對象的屬性

屬性(Propeny)是指對象的一項描述內容,用來描述對象的一個特性,不同的對象有不同的屬性,而每個對象又都由若干屬性來描述。在可視化編程中,常見的屬性有標題(Caption)、名稱(Name)、背景色(Backcolor)、字體大小(FontSize)、是否可見(Visible)等。通過修改或設置某些屬性便能有效地控制對象的外觀和操作。
屬性值的設置或修改可以通過屬性窗口來進行,也可以通過編程的方法在程序運行的時候來改變對象的屬性。在程序中設置屬性的一般格式是:

表單名.對象名.屬性名=屬性值

2.對象的事件

所謂事件(Event),是由VFP預先定義好的、能夠被對象識別的動作,如單擊(Click)事件、雙擊(DblClick)事件、裝入(Load)事件、移動滑鼠(MouseMove)事件等,不同的對象能識別的事件不全相同。對象的事件是固定的,用戶不能建立新的事件。為此,VFP提供了豐富的內部事件,這些事件足以應付Windows中的絕大部分操作需要。
事件過程(Event Procure)是為處理特定事件而編寫的一段程序。當事件由用戶觸發(如C1ick)或由系統觸發(如Load)時,對象就會對該事件作出響應(Respond)。響應某個事件後所執行的程序代碼就是事件過程。

3.對象的方法

方法(Method)是與對象相關聯的過程,但又不同於一般的Visual FoxPro過程。方法程序緊密地和對象連接在一起,並且與一般Visual FoxPro過程的調用方式也有所不同。
與事件過程類似,VFP的方法屬於對象的內部函數,只是方法用於完成某種特定的功能而不一定響應某一事件,如添加對象(Addobject)方法、繪制矩形(Box)方法、釋放表單(Release)方法等。方法也被「封裝」在對象中,不同的對象具有不同的內部方法。VFP提供了百餘個內部方法供不同的對象調用。與事件過程不同的是,根據需要可由用戶自行建立新方法。

4.事件與方法的程序調用

事件過程由事件的激發而調用其代碼,也可以在運行中由程序調用其代碼,而方法的代碼只能在運行中由程序調用。

在程序中調用事件代碼的格式是:

表單名.對象名.事件名

在程序中調用對象方法的格式是

[[<變數名>]=]表單名.對象名.方法名

六、控制項與對象

Visual FoxPro編程的最大特點,就是在可視的環境下以最快的速度和效率開發具有良好用戶界面的應用程序,其實質就是利用VFP所提供的圖形構件快速構造應用程序的輸入輸出屏幕界面。控制項(Control)是某種圖形構件的統稱,如「標簽控制項」、「文本框控制項」、「列表框控制項」等,利用控制項創建對象則是構造應用程序界面的具體方法。

1.常用控制項和內部對象

常用控制項由VFP的基類提供,共21個,每個控制項用「表單控制項」按鈕表示,如表1-7所示(P17)。

2.表單對象

表單(Form)是應用程序的用戶界面,也是進行程序設計的基礎。各種圖形、圖像、數據等都是通過表單或表單中的對象顯示出來,因此表單是一個容器對象。
在FoxPro的早期版本中表單被稱為屏幕(Screen),在Visual Basic中則稱為窗體。

(1)表單的結構。
VFP的表單具有和Windows應用程序的窗口界面相同的結構特徵。一個典型的表單有圖標、標題、極小化按鈕、極大化按鈕、關閉按鈕、移動欄、表單體及其周圍的邊框。其中除了表單體之外的所有特徵都可以部分或全部從表單中被刪除。

(2)表單屬性

在VFP中,表單的屬性就是表單的結構特徵。通過修改表單的屬性可以改變表單的內常用的表單屬性如表1—8所示。

屬性名 作 用
AutoCenter 用於控製表單初始化時是否總是位於VFP窗口或其父表單的中央
BackColor 用於確定表單的背景顏色
BorderStyle 用於控製表單是否有邊框:系統(可調)、單線、雙線
Caption 表單的標題
Closable 用於控製表單的標題欄中的關閉按鈕是否能用
ControlBox 用於控製表單的標題欄中是否有控制按鈕
MaxButton 用於控製表單的標題欄中是否有極大化按鈕
MinButton 用於控製表單的標題欄中是否有極小化按鈕
Movable 用於控製表單是否可移動
TitleBar 用於控製表單是否有標題欄
WindowState 用於控製表單是極小化、極大化還是正常狀態
WindowType 若表單是模式表單,則用戶在訪問windows屏幕中其他任何對象前必須關閉該表單

(3)表單的事件與方法。

就像屬性那樣,只有部分的表單事件與方法經常被使用,很多事件與方法很少被使用,除非你在編寫一個非常復雜的應用程序。可以在代碼窗口的「過程」下拉列表框中看到所有表單事件與方法的列表,也可以在「屬性」窗口的「方法程序」選項卡中看到所有表單事件與方法的列表。

下面只列舉那些最常用的事件與方法。
常用的表單事件:

Load事件——當表單被裝入內存時發生;

Init事件——當表單被初始化時發生;

Activate事件——當表單被激活時發生。

上述事件被激發的順序為Load、Init、Activate。

Destroy事件——當表單被釋放時發生;

Unload事件——當表單被關閉時發生。

上述事件被激發順序為Unload、Destroy。

Resize事件——當用戶或程序去改變表單的大小時
發生。

常用的表單方法:

Hide方法——隱藏表單;

Show方法——顯示表單;

Release方法——釋放表單;

Refresh方法——刷新表單。

3.對象的引用

(1)對象的包容層次。
VFP中的對象根據它們所基於的類的性質可分為兩類:容器類對象和控制項類對象。
容器類對象可以包含其他對象,並且允許訪問這些對象,例如表單集、表單、表格等控制項類對象只能包含在容器對象之中,而不能夠包含其他對象,例如命令按鈕、復選框等。表1-9(P20)列出了每種容器類對象所能包含的對象。

(2)對象的引用。

作為應用程序的用戶界面,表單上可以包含許多對象,而這些對象又有可能具有互相包含的層次關系。若要引用一個對象,需要知道它相對於容器層次的關系。例如,如果要在表單集中處理一個表單的控制項,則需要引用表單集、表單和控制項。

1)絕對引用:通過提供對象的完整容器層次來引用對象。
若要使表列中的控制項無效,需要提供以下地址:

Formset.Form.PageFrame.Page.Grid.Column.Control.Enabled=.F.

2)相對引用:在容器層次中引用對象時,可以通
過快捷方式指明所要處理的對象。
例如:THISFORMSET.Frml.Cmdl.Caption="關閉"
表示將本表單集的名為Fnnl的表單中的Cmdl對象的標題(Caption)屬性設置為"關閉"。

THISFORM.Cmdl.Caption="關閉"
表示將本表單的名為Cmdl對象的標題(Caption)屬性設置為"關閉"。
THIS.Caption=」關閉」
對於需要改變標題的控制項,表示將本對象的標題(Caption)屬性設置為"關閉"。
THIS.Parent.BackColor=RGB(192,0g0)
表示將本對象的父對象的背景色設置為暗紅色。
表1—10列出了一些屬性和關鍵字,這些屬性和關鍵字允許更方便地從對象層次中引用對象。

表1-10 引用對象的屬性和關鍵字

屬性或關鍵字 引 用
ActiveControl 當前活動表單中具有焦點的控制項
ActiveForm 當前活動表單
ActivePage 當前活動表單中的活動頁
Parent 該對象的直接容器
THIS 該對象
THISFORM 包含該對象的表單
THISFORMSET 包含該對象的表單集

說明:只能在方法程序或事件過程中使用THIS、
THISFORM和THISFORMSET。

Ⅷ Visual FoxPro 是什麼意思

VFP是由FoxPro發展而來,並且根據「可視化編程」的需要,增加了一些新的操作。它的語句、函數和語法規則與Xbase(如dBASE、FoxBase、FoxPro)語言基本上是兼容的,而且功能更加強大。

一、數據和數據類型

1.數據的分類
數據是計算機程序處理的對象,也是運算產生的結果。
按數據的類型分類:數值型數據、字元型數據、邏輯型數據等。
按數據的處理層次分類:常量、變數、函數和表達式。
2.數據的類型
數據類型是數據的基本屬性。對數據進行操作的時候,只有同類型的數據才能進行操作,若對不同類型的數據進行操作,將被系統判為語法出錯。

(1)字元型(Character):由字母(漢字)、數字、空格等任意ASCII碼字元組成。

字元數據的長度為0~254,每個字元佔1個位元組。

(2)貨幣型(Currency):在使用貨幣值時,可以使用貨幣型來代替數值型。

貨幣型數據取值的范圍是:

-922337203685477.5807~922337203685477.5807

小數位數超過4位時,系統將進行四捨五入的處理。每個貨幣型數據佔8個位元組。

(3)日期型(Date):用以保存不帶時間的日期值。

日期型數據的存儲格式為「yyyymmdd」其中yyyy為年,佔4位,mm為月,佔2位,dd為日,佔2位。

日期型數據的表示有多種格式,最常用的格式為mm/dd/yyyy。

日期型數據取值的范圍是:公元0001年1月1日一公元9999年12月31日。

(4)日期時間型(DateTime):用以保存日期和時間值。日期時間型數據的存儲格式為 「yyyymmddhhmmss」其中yyyy為年,佔4位,mm為月,佔2位,dd為日,佔2位,hh為時間中的小時,佔2位,mm為時間中的分鍾,佔2位,ss為時間中的秒,佔2位。
日期時間型數據中可以只包含一個日期或者只包含一個時間值,預設日期值時,系統自動加上1999年12月31日,省略時間值時,則自動加上午夜零點。

(5)邏輯型(Logical):用於存儲只有兩個值的數據。存入的值只有真(.T.)和假(.F.)兩種狀態,佔1個位元組。

(6)數值型(Numeric):用來表示數量,它由數字0~9、一個符號(+或-)和一個小數點(.)組成。數值型數據的長度為1~20,每個數據佔8個位元組。
數值型數據取值的范圍是:

-0.9999999999E+19~0.9999999999E+20

以下數據類型只能被用於數據表中的欄位:

(7)雙精度型(Double):用於取代數值型,以便能提供更高的數值精度。雙精度型只能用於數據表中欄位的定義,它採用固定存儲長度的浮點數形式。與數值型不同,雙精度型數據的小數點的位置是由輸入的數據值來決定的。每個雙精度型數據佔8個位元組。

(8)浮點型(Float):只能用於數據表中欄位的定義,包含此類型是為了提供兼容性,浮點型在功能上與數值型等價。

(9)通用型(General):用於存儲OLE對象,只能用於數據表中欄位的定義。該欄位包含了對OLE對象的引用,而OLE對象的具體內容可以是一個電子表格、一個字處理器的文本、圖片等,是由其他應用軟體建立的。

(10)整型(Integer):用於存儲無小數部分的數值,只能用於數據表中欄位的定義。在數據表中,整型欄位佔用4個位元組,取值范圍是:

-2147483647~2147483647

整型以二進制形式存儲,不像數值型那樣需要轉換成ASCII字元存儲。

(11)備注型(Memo);備注型用於字元型數據塊的存儲,只能用於數據表中欄位的定義。在數據表中,備注型欄位佔用10個位元組,並用這10個位元組來引用備注的實際內容。實際備注內容的多少只受內存可用空間的限制。
備注型欄位的實際內容變化很大,不能直接將備注內容存在數據表(.DBF)文件中。
系統將備注內容存放在一個相對獨立的文件中,該文件的擴展名為.DBT。
由於沒有備注型的變數,所以對備注型欄位的處理,需轉換成字元型變數,然後使用字元型函數進行處理。

二、常量與變數

在程序的運行過程中,把需要處理的數據存放在內存儲器中,稱始終保持不變的數據為「常量」,稱存放可變數據的存儲器單元為「變數」,其中的數據稱為變數的值。

1.常量

常量是一個命名的數據項,在整個操作過程中其值保持不變。如PI值,即3.1415926535是數值型常量。 VFP定義了如下類型的常量:

數值型常量,如:20,16,100,1
字元型常量,用單引號或雙引號括起來的字元串,如:"ABCD"
邏輯型常量,只有兩種:.T.和.F.
日期型常量和日期時間型常量,如:{^1999-04-22},{^1999-04-24 10:00am}
2.變數
VFP有3種形式的變數:

內存變數——存放單個數據的內存單元
數組變數——存放多個數據的內存單元組
欄位變數——存放在數據表中的數據項
每個變數都有一個名稱,叫做變數名,VFP通過相應的變數名來使用變數。變數名的命名規則是:
(1)以字母、數字及下劃線組成,中文VFP可以使用漢字作變數名。
(2)以字母或下劃線開始,中文VFP可以漢字開始。
(3)長度為1~128個字元,每個漢字佔2個字元。
(4)不能使用VFP的保留字。
變數的作用域包括定義它的過程以及該過程所調用的子過程范圍。

三、運算符與表達式

運算是對數據進行加工的過程,描述各種不同運算的符號稱為運算符,而參與運算的數據稱為操作數。表達式用來表示某個求值規則,它由運算符和配對的圓括弧將常量、變數、函數、對象等操作數以合理的形式組合而成。
表達式可用來執行運算、操作字元或測試數據,每個表達式都產生唯一的值。表達式的類型由運算符的類型決定。在VFP中有5類運算符和表達式:

算術運算符和算術表達式
字元串運算符和字元串表達式
日期運算符和日期表達式
關系運算符和關系表達式
邏輯運算符和邏輯表達式
1.算術運算符與算術表達式

算術表達式也稱數值型表達式,由算術運算符、數值型常量、變數、函數和圓括弧組成,其運算結果為一數值。例如:50*2+(70—6)/8的運算結果為108.00。算術表達式的格式為:

<數值1><算術運算符1><數值2>[<算術運算符2><數值3>…]

(1)算術運算符。
VFP提供的算術運算符如表1。1所示。在這6個算術運算符中,除取負「-」是單目運算符外,其他均為雙目運算符。它們運算的含義與數學中基本相同。
表1.1 算術運算符

運算符 名稱 說 明
+ 加 同數學中的加法
- 減 同數學中的減法
* 乘 同數學中的乘法
/ 除 同數學中的除法
^或** 乘方 同數學中的乘方,如4^3表示43
% 求余 12%5表示12除以5所得的余數2

算術運算符的優先權依次為:

( ) → ^、** → *、/ → % → +、-

(2)表達式的書寫規則。
算術表達式與數學中的表達式寫法有所區別,在書寫表達式時應當特別注意:

每個符號佔1格,所有符號都必須一個一個並排寫在同一橫線上,不能在右上角或右下角寫方次或下標。例如:23要寫成2^3,Xl十X2要寫成X1+X2。

原來在數學表達式中省略的內容必須重新寫上。例如:2X要寫成2*X。

所有括弧都用小括弧(),且括弧必須配對。例如:3[x+2(y+z)]必須寫成3*(x+2*(y+z))。

要把數學表達式中的有些符號,改成VFP中可以表示的符號。例如:要把2πr改為2*pi*r。

2.字元串運算符與字元串表達式
一個字元串表達式由字元串常量、字元串變數、字元串函數和字元串運算符組成。它可以是一個簡單的字元串常量,也可以是若干個字元串常量或字元串變數的組合。VFP提供的字元運算符有兩個(其運算級別相同),如表1-2所示。

表1-2 字元運算符

運算符 名稱 說明
+ 連接 將字元型數據進行連接

- 空格移位連接 將前一數據尾部的空格移到後面數據的尾部

字元串表達式的格式為

<字元串1><字元串運算符1><字元串2>
[<字元串運算符2><字元串3>…]
例如:
"ABCl23"+"666xyz"連接後結果為:"ABCl23666xyz"
"計算機"+"世界" 連接後結果為:"計算機世界"
"ABC "-"DEFG" 連接後結果為:"ABCDEFG "
"ABC "+"DEFG" 連接後結果為:"ABC DEFG "
字元串表達式的值為字元串。
在字元串中嵌入引號,只需將字元串用另一種引號括起來即可。例如:
QM="'"
S=S+QM+ALLTRIM(THIS.Edit1.Value)+QM+","

3.日期時間運算符與日期時間表達式

日期型表達式由算術運算符「+、-」、算術表達式、日期型常量、日期型變數和函數組成。日期型數據是一種特殊的數值型數據,它們之間只能進行加「+」、減「-」運算。有下面3種情況:

兩個日期型數據可以相減,結果是一個數值型數據(兩個日期相差的天數)。例如:
{^1999/12/19}-{^1999/11/16}結果為數值型數據:33

一個表示天數的數值型數據可加到日期型數據中,其結果仍然為一日期型數據(向後推算的日期)。例如:{^1999/11/16}+33結果為日期型數據:{^1999/12/19}

一個表示天數的數值型數據可從日期型數據中減掉它,其結果仍然為一日期型數據(向前推算的日期)。例如:{^1999/12/19}-33 ,結果為日期型數據:{^1999/11/16}

VFP將無效的日期處理成空日期。

4.類與對象運算符
類與對象運算符專門用於實現面向對象的程序設計。有以下兩種:
.——點運算符,確定對象與類的關系,以及屬性、事件和方法與其對象的從屬關系。
::——作用域運算符,用於在子類中調用父類的方法。

5.名表達式
在VFP中,許多命令和函數需要提供一個名。可在VFP中使用的名有:

表/.DBF文件名 、 表/.DBF別名 、 表/.DBF欄位名 、 索引文件名、文件名、 內存變數和數組名、窗口名、 菜單名、表單名、 對象名、 屬性名、 …

在VFP中定義一個名時,需要遵循以下原則:

名中只能使用字母或下劃線開始。

名中只能使用字母、數字和下劃線字元。

不能使用VFP的保留字。

名的長度可以為1—128個字元,但自由表中的欄位名、索引標記名最多為10個字元。文件名按操作系統的規定。

名不是變數或欄位,但是可以定義一個名表達式,以代替同名的變數或欄位的值。
名表達式為VFP的命令和函數提供了靈活性。將名存放到變數或數組元素中,就可以在命令或函數中用變數來代替該名,只要將存放一個名的變數或數組元素用一對括弧括起來。如:

STORE "CITY" TO a
REPLACE (a) WITH "Beijing"

欄位名CITY被存放在變數a中,在使用REPLACE命令時,名表達式(a)將用欄位名代替變數。這種方法稱為間接引用。

四、函數

對於用戶來說,程序設計語言中的函數與數學上的函數沒有什麼區別,使用函數要有參數(自變數),可以從函數得到一個返回的值(因變數)。而從程序設計的角度來看,函數是子程序的一種,它能完成一種特定的運算。

1.函數的分類

VFP的函數有兩種,一種是用戶自定義的函數,一種是系統函數。自定義函數由用戶根據需要自行編寫 , 系統函數則是由VFP提供的內部函數,用戶可以隨時調用。
VFP提供的系統函數大約有380多個,主要分為:數值函數、字元處理函數、表和資料庫函數、日期時間函數、類型轉換函數、測試函數、菜單函數、窗口函數、數組函數、SQL查詢函數、位運算函數、對象特徵函數、文件管理函數以及系統調用函數等14類。

2.常用函數

VFP提供了大量的系統函數供編程人員使用,下面列出常用的一些函數。
(1)數學函數

函數格式 說 明

ABS(N) 求N的絕對值
COS(N) 求N的餘弦函數
EXP(N) 求N的e指數函數
INT(N) 取N的整數,對負數取較小的整數
LOG(N) 求N的自然對數
MAX(N1,N2) 求N1、N2中的最大者
MIN(N1,N2) 求N1、N2中的最小者
MOD(N1,N2) 求N1除以N2的余數
PI() 求圓周率
RAND(N) 產生0—1之間的隨機數
ROUND(N1,N2) 按N2指定的小數位數求N1四捨五入後的值
SIGN(N) 求N的正負符號
SIN(N) 求N的正弦函數
SQRT(N) 求N的平方根
TAN(N) 求N的正切函數

(2)字元串函數

函數格式
說 明

ALLTRIM(C) 去掉C的前導空格和尾隨空格
ASC(C) 求C中最左邊一個字元的ASCII碼值
AT(C1,C2) 返回C1在C2中出現的開始位置(整數值)
LEFT(C,n) 從字元串C的左邊取長度為n的子串
LEN(C) 求字元串C長度
RIGHT(C,n) 從字元串C的右邊取長度為n的子串
L0WER(C) 將字元串C中的大寫字母轉換為小寫字母
SPACE(n) 返回n個空格字元組成的字元串
SUBSTR(C,n[,m]) 從字元串C中提取從n開始的m個字元的子串,若省略m則取n開始的所有字元
UPPER(C) 將字元串表達式中的小寫字母轉換為大寫字母

(3)日期函數

函數格式 說 明
DATE() 系統當前日期
TIME() 系統當前時間
DATETIME() 系統當前日期和時間
DOW(D) 取日期表達式D的星期號(1為星期天)
YEAR(D) 取日期D的年份值
MONTH(D) 取日期D的月份值
DAY(D) 取日期D在月份中的天數值
HOUR(D) 取時間D中的小時數
MINUTE(D) 取時間D中的分鍾數
SEC(D) 取時間D中的秒數

(4)類型轉換函數

函數格式
說 明

CHR(ASCII碼) 返回與ASCII碼相應的字元
CTOD(C) 轉換C表達式為對應的日期值
CTOT(C) 轉換C表達式為對應的日期時間值
DTOC(D) 轉換日期表達式D為字元串
STR(N,n,m) 轉換數值表達式N為數字字元串
TTOC(D) 轉換日期時間表達式D為字元串
VAL(C) 返回數字字元串C對應的數值

五、對象的屬性、事件與方法

對象(object)在現實生活中是很常見的,如:一個人是一個對象,一台PC機是一個對象。如果將一台PC機拆開來看便有「顯示器、機箱、軟盤驅動器、硬碟、鍵盤、滑鼠器…」,每一個又都是一個對象,即PC機對象是由多個「子」對象組成的。此時PC機又稱為一個包容器(Container)對象。在可視化編程中,對象是應用程序的基本元素,常見的對象有表單、文本框、列表框等。
從可視化編程的角度來看,對象是一個具有屬性(數據)和方法(行為方式)的實體。一個對象建立以後,其操作就通過與該對象有關的屬性、事件和方法來描述。

1、對象的屬性

屬性(Propeny)是指對象的一項描述內容,用來描述對象的一個特性,不同的對象有不同的屬性,而每個對象又都由若干屬性來描述。在可視化編程中,常見的屬性有標題(Caption)、名稱(Name)、背景色(Backcolor)、字體大小(FontSize)、是否可見(Visible)等。通過修改或設置某些屬性便能有效地控制對象的外觀和操作。
屬性值的設置或修改可以通過屬性窗口來進行,也可以通過編程的方法在程序運行的時候來改變對象的屬性。在程序中設置屬性的一般格式是:

表單名.對象名.屬性名=屬性值

2.對象的事件

所謂事件(Event),是由VFP預先定義好的、能夠被對象識別的動作,如單擊(Click)事件、雙擊(DblClick)事件、裝入(Load)事件、移動滑鼠(MouseMove)事件等,不同的對象能識別的事件不全相同。對象的事件是固定的,用戶不能建立新的事件。為此,VFP提供了豐富的內部事件,這些事件足以應付Windows中的絕大部分操作需要。
事件過程(Event Procure)是為處理特定事件而編寫的一段程序。當事件由用戶觸發(如C1ick)或由系統觸發(如Load)時,對象就會對該事件作出響應(Respond)。響應某個事件後所執行的程序代碼就是事件過程。

3.對象的方法

方法(Method)是與對象相關聯的過程,但又不同於一般的Visual FoxPro過程。方法程序緊密地和對象連接在一起,並且與一般Visual FoxPro過程的調用方式也有所不同。
與事件過程類似,VFP的方法屬於對象的內部函數,只是方法用於完成某種特定的功能而不一定響應某一事件,如添加對象(Addobject)方法、繪制矩形(Box)方法、釋放表單(Release)方法等。方法也被「封裝」在對象中,不同的對象具有不同的內部方法。VFP提供了百餘個內部方法供不同的對象調用。與事件過程不同的是,根據需要可由用戶自行建立新方法。

4.事件與方法的程序調用

事件過程由事件的激發而調用其代碼,也可以在運行中由程序調用其代碼,而方法的代碼只能在運行中由程序調用。

在程序中調用事件代碼的格式是:

表單名.對象名.事件名

在程序中調用對象方法的格式是

[[<變數名>]=]表單名.對象名.方法名

六、控制項與對象

Visual FoxPro編程的最大特點,就是在可視的環境下以最快的速度和效率開發具有良好用戶界面的應用程序,其實質就是利用VFP所提供的圖形構件快速構造應用程序的輸入輸出屏幕界面。控制項(Control)是某種圖形構件的統稱,如「標簽控制項」、「文本框控制項」、「列表框控制項」等,利用控制項創建對象則是構造應用程序界面的具體方法。

1.常用控制項和內部對象

常用控制項由VFP的基類提供,共21個,每個控制項用「表單控制項」按鈕表示,如表1-7所示(P17)。

2.表單對象

表單(Form)是應用程序的用戶界面,也是進行程序設計的基礎。各種圖形、圖像、數據等都是通過表單或表單中的對象顯示出來,因此表單是一個容器對象。
在FoxPro的早期版本中表單被稱為屏幕(Screen),在Visual Basic中則稱為窗體。

(1)表單的結構。
VFP的表單具有和Windows應用程序的窗口界面相同的結構特徵。一個典型的表單有圖標、標題、極小化按鈕、極大化按鈕、關閉按鈕、移動欄、表單體及其周圍的邊框。其中除了表單體之外的所有特徵都可以部分或全部從表單中被刪除。

(2)表單屬性

在VFP中,表單的屬性就是表單的結構特徵。通過修改表單的屬性可以改變表單的內常用的表單屬性如表1—8所示。

屬性名 作 用
AutoCenter 用於控製表單初始化時是否總是位於VFP窗口或其父表單的中央
BackColor 用於確定表單的背景顏色
BorderStyle 用於控製表單是否有邊框:系統(可調)、單線、雙線
Caption 表單的標題
Closable 用於控製表單的標題欄中的關閉按鈕是否能用
ControlBox 用於控製表單的標題欄中是否有控制按鈕
MaxButton 用於控製表單的標題欄中是否有極大化按鈕
MinButton 用於控製表單的標題欄中是否有極小化按鈕
Movable 用於控製表單是否可移動
TitleBar 用於控製表單是否有標題欄
WindowState 用於控製表單是極小化、極大化還是正常狀態
WindowType 若表單是模式表單,則用戶在訪問windows屏幕中其他任何對象前必須關閉該表單

(3)表單的事件與方法。

就像屬性那樣,只有部分的表單事件與方法經常被使用,很多事件與方法很少被使用,除非你在編寫一個非常復雜的應用程序。可以在代碼窗口的「過程」下拉列表框中看到所有表單事件與方法的列表,也可以在「屬性」窗口的「方法程序」選項卡中看到所有表單事件與方法的列表。

下面只列舉那些最常用的事件與方法。
常用的表單事件:

Load事件——當表單被裝入內存時發生;

Init事件——當表單被初始化時發生;

Activate事件——當表單被激活時發生。

上述事件被激發的順序為Load、Init、Activate。

Destroy事件——當表單被釋放時發生;

Unload事件——當表單被關閉時發生。

上述事件被激發順序為Unload、Destroy。

Resize事件——當用戶或程序去改變表單的大小時
發生。

常用的表單方法:

Hide方法——隱藏表單;

Show方法——顯示表單;

Release方法——釋放表單;

Refresh方法——刷新表單。

3.對象的引用

(1)對象的包容層次。
VFP中的對象根據它們所基於的類的性質可分為兩類:容器類對象和控制項類對象。
容器類對象可以包含其他對象,並且允許訪問這些對象,例如表單集、表單、表格等控制項類對象只能包含在容器對象之中,而不能夠包含其他對象,例如命令按鈕、復選框等。表1-9(P20)列出了每種容器類對象所能包含的對象。

(2)對象的引用。

作為應用程序的用戶界面,表單上可以包含許多對象,而這些對象又有可能具有互相包含的層次關系。若要引用一個對象,需要知道它相對於容器層次的關系。例如,如果要在表單集中處理一個表單的控制項,則需要引用表單集、表單和控制項。

1)絕對引用:通過提供對象的完整容器層次來引用對象。
若要使表列中的控制項無效,需要提供以下地址:

Formset.Form.PageFrame.Page.Grid.Column.Control.Enabled=.F.

2)相對引用:在容器層次中引用對象時,可以通
過快捷方式指明所要處理的對象。
例如:THISFORMSET.Frml.Cmdl.Caption="關閉"
表示將本表單集的名為Fnnl的表單中的Cmdl對象的標題(Caption)屬性設置為"關閉"。

THISFORM.Cmdl.Caption="關閉"
表示將本表單的名為Cmdl對象的標題(Caption)屬性設置為"關閉"。
THIS.Caption=」關閉」
對於需要改變標題的控制項,表示將本對象的標題(Caption)屬性設置為"關閉"。
THIS.Parent.BackColor=RGB(192,0g0)
表示將本對象的父對象的背景色設置為暗紅色。
表1—10列出了一些屬性和關鍵字,這些屬性和關鍵字允許更方便地從對象層次中引用對象。

表1-10 引用對象的屬性和關鍵字

屬性或關鍵字 引 用
ActiveControl 當前活動表單中具有焦點的控制項
ActiveForm 當前活動表單
ActivePage 當前活動表單中的活動頁
Parent 該對象的直接容器
THIS 該對象
THISFORM 包含該對象的表單
THISFORMSET 包含該對象的表單集

說明:只能在方法程序或事件過程中使用THIS、
THISFORM和THISFORMSET。
參考資料:http://www.zjou.e.cn/te/vfp/vf13.htm

熱點內容
央行允許比特幣 發布:2025-06-25 12:44:01 瀏覽:189
比特幣誰推動的價格 發布:2025-06-25 12:43:53 瀏覽:990
瑞波幣xrp數字貨幣 發布:2025-06-25 12:38:31 瀏覽:862
btc上虧損 發布:2025-06-25 12:22:47 瀏覽:65
購買螞蟻礦機萊特幣 發布:2025-06-25 12:05:48 瀏覽:507
做比特幣的機器 發布:2025-06-25 11:53:19 瀏覽:366
比特幣新股申購要凍結兩天嗎 發布:2025-06-25 11:46:01 瀏覽:584
瑞波幣xrp最新狀況 發布:2025-06-25 11:26:29 瀏覽:720
遠期合約標准化程度怎麼樣 發布:2025-06-25 11:20:45 瀏覽:745
以太坊幣官網行情 發布:2025-06-25 11:15:12 瀏覽:311