vb6 5 ข้อมูลและตัวแปร

Post on 05-Sep-2014

4.146 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Vb6 5 ข้อมูลและตัวแปร

TRANSCRIPT

บทท 5ขอมลและตวแปร

ใบบทนจะเปนการอธบายเกยวกบชนดของขอมล การใชงานตวแปร และคาคงท ทใชกบ Visual Basic ไมวาโปรแกรมประยกตใด ภาษาใด สงทตองรเปนอนดบแรกๆ กคอ ตวแปร คาคงทและ ชนดของขอมล ของภาษานน ๆ ซงจะทำาใหเหนขอจำากดตางๆ ในภาษานน ๆ ทำาใหสามารถใชงานไดอยางถกตอง และมประสทธภาพ เพราะตวแปรและคาคงทถอไดวาเปนตวแทนของขอมล ทจะตองนำาไปใชงาน ประมวลผล และแสดงสงทไดจากการประมวลผลชนดของขอมลVisual Basic มชนดของขอมลหลายชนด ไมวาจะเปนตวเลขจำานวนเตม ตวเลขทมทศนยม ขอความ ตวเลขทางการเงน คาทางตรรกะ เปนตน ขอมลแตละชนด จะใชพนทในการเกบไมเทากน รวมถงความเรวในการประมวลผลกแตกตางกนดวย สามารถแบงชนดของขอมลทใชกน Visual Basic ไดดงตารางตอไปน

  ชนดขอมล   รายละเอยด หนวยความจำา

  Boolean   เกบคาทางตรรกะทไดม 2 คา คอ true (จรง), false (เทจ)

  2 Bytes

  Byte   เกบคาเลขจำานวนเตมตงแต 0-255   1 Byte

  Currency

  ใชเกบตวเลขจำานวนจรง มคาระหวาง - 922,337,203,685,477.5808 ถง 922,337,203,685,477.5807

  8 Bytes

  Date   ใชสำาหรบเกบวนทและเวลา   8 Bytes

  Double   ใชเกบตวเลขจำานวนจรง แยกเปน 2 กรณ คอ คาบวกอยระหวาง 4.94065645841247E-324 ถง 1.79769313486232E308 คา

  8 Bytes

ลบอยระหวาง - 1.79769313486232E308 ถง -4.94065645841247E-324

  Integer   เกบคาเลขจำานวนเตมทมคาระหวาง -32768 ถง 32767

  2 Bytes

  Long  ใชเกบเลขจำานวนเตมทมคาระหวาง -2,147,483,648 ถง 2,147,483,647

  4 Bytes

  Object   ใชสำาหรบแทนวตถท Visual Basic สนบสนน

  4 Bytes

  Single

  ใชเกบตวเลขจำานวนจรง แยกเปน 2 กรณ คอ คาบวกอยระหวาง 1.401298E-45 ถง 3.402823E38 และคาลบอยระหวาง -3.402823E38 ถง -1.401298E45

  4 Bytes

  String   ใชเกบตวอกษร ขอความ และตวเลข  1 ตว/1 ไบต

  Variant   ขอมลพเศษสามารถเกบขอมลไดทกชนด

  16 Bytes

การประกาศคาตวแปร (Variable Declaration)กอนทจะใชงานตวแปร หรอคาคงททกครง ควรประกาศตวแปร (variable declaration) กอน เพอให Visual Basic รวา ตวแปรทตองการใชงาน ใชแทนขอมลชนดใดถงแมวา Visual Basic อนญาตใหใชงานตวแปรได โดยไมตองประกาศตวแปร แตตวแปรทไดจะใชทรพยากรระบบ มากเกนความจำาเปน รวมถงประมวลผลไดชา เพราะจะเปนตวแปรทสามารถแทนขอมลไดทกชนด ซง Visual Basic เรยกวา ตวแปรชนด Variant ซงควรหลกเลยงการใชงานตวแปรชนดน

รปแบบคำาสงการประกาศตวแปรของ Visual Basic

2

       Dim varname As datatypesDim คอ คำาสง (statements) สำาหรบประกาศตวแปรvarname คอ ชอของตวแปรทตองการประกาศAs คอ สวนทบอกให Visual Basic ทราบวาตองการ

กำาหนดชนดของขอมลdatatypes คอ ชนดของขอมลท Visual Basic สนบสนน

ตวอยาง

รปท 5-1 การประกาศตวแปร

กรณทตองการกำาหนดใหมการประกาศตวแปรทกครงกอนทจะมการเรยกใชตวแปร เพอหลกเลยงการใชตวแปรชนด Variant ใหพมพคำาสง Option Explicit ไวขางบนสดกอนพมพคำาสงอน ๆ

กฎการตงชอตวแปรและคาคงท1. ขนตนดวยพยญชนะเทานน2. ความยาวของชอทตงสงสดไมเกน 255 ตวอกษร3. ชอทตง ตองไมซำากนคำาสงวน (Keywords) คำาสง (Statements) ฟงกชน (Functions) หรออน ๆ ท Visual Basic กำาหนดไว4. หามตงชอซำากนในโพรซเดอรเดยวกน หรอในขอบเขตเดยวกน

3

5. หามใชเครองหมายทางคณตศาสตร, ตวดำาเนนการ (Operators) หรอ เครองหมายพเศษ เชน @, # มาตงชอ6. หามมชองวางในชอตวแปรถาตองการเวนวางใหใชเครองหมาย _ (Underscore) เทานน

การตงชอวตถ

  วตถ   คำานำาหนา (Prefix)   ตวอยาง

  CheckBox   Chk   ChkStatus  ComboBox   Cbo   CboType  CommandButton   Cmd   CmdSave

  Image   Img   ImgProduct

  Label   Lbl   Lbladdress

  ListBox   Lst   LstDay  OptionButton   Opt   OptSex  TextBox   Txt   TxtName  Timer   Tmr   TmrTime

ขอบเขตของตวแปร (Scope of Variable)ใน Visual Basic สามารถแบงขอบเขตตวแปรได 2 ประเภท คอ       1. ตวแปรแบบ Local

4

       2. ตวแปรแบบ Public

ตวแปรแบบ Localหมายถง ตวแปรทประกาศขนมา ใหสามารถเรยกใชงานได ในเฉพาะโพรซเดอรทประกาศเทานน มกใชประกาศตวแปรทตองการใชชวคราว หรอตองการใชในโพรซเดอรนนๆ ตวอยาง       Private Sub AddNum_Click( )                Dim x As Integer                Dim y As Integer                x = 5                y = 6                x = x + y        End Sub        Private Sub DelNum_Click( )                Dim x As Integer                Dim y As Integer                x = 3                y = 2          จากตวอยาง ตวแปร x และ y ถกประกาศใน Sub AddNum และ Sub DelNum ซง x และ y ใน AddNum จะเปนคนละตวกบ x และ y ใน DelNum

ตวแปรแบบ Public หมายถง ตวแปรทประกาศขนในสวนบนหลง Option Explicit ทำาใหสามารถเรยกใชงานไดทกโพรซเดอรในฟอรมนน กรณทประกาศตวแปรแบบ Public ใน Module จะทำาใหตวแปรนนสามารถเรยกใชงานไดจากทกฟอรม

5

ตวอยาง       Option Explicit        Dim x as Integer        Dim y as Integer        Private Sub AddNum_Click( )                x = 5                y = 6                x = x + y        End Sub        Private Sub DelNum_Click( )                x = x - y        End Sub

จากตวอยาง ตวแปร x และ y ถกประกาศในถดจาก Option Explicit กอน Sub AddNum ทำาใหตวแปร x และ y ใน Sub AddNum และ Sub DelNum เปนตวแปรตวเดยวกน

ตวแปรอารเรย (Array) ตวแปรอารเรย เปนกลมของตวแปรทประกาศขนมา โดยใชชอของเดยวใชคา Index ในการอางถง ประโยชนของตวแปรชนดนคอ กรณทตองการมการใชตวแปรจำานวนมาก การประกาศตวแปรสามารถประกาศเพยงชอเดยว ลดความซำาซอนของตวแปร และทำาใหงายตอการเรยกใช มรปแบบการประกาศดงน

       Dim Varname(amount) as DatatypeDim คอ คำาสง (statements) สำาหรบประกาศ

ตวแปรvarname คอ ชอของตวแปรอารเรยทตองการประกาศamount คอ จำานวนสมาชกของอารเรยAs คอ สวนทบอกให Visual Basic ทราบวา

ตองการกำาหนดชนดของขอมลdatatypes คอ ชนดของขอมลท Visual Basic สนบสนน

6

ตวอยาง

รปท 5-2 การประกาศอารเรย ตวแปรอารเรยแบงออกได 2 ชนด คอ        1. ตวแปรอารเรยแบบสแตตก (Static Arrays)        2. ตวแปรอารเรยแบบไดนามก (Dynamic Arrays)

ตวแปรอารเรยแบบสแตตก (Static Arrays) เปนอารเรยทมการระบจำานวนสมาชกเมอมการประกาศตวแปร จะใชอารเรยชนดนในกรณททราบจำานวนสมาชกของอารเรยทแนนอน

ตวอยาง

       Dim vprint (10) as String

จากตวอยางเปนการประกาศตวแปรอารเรยชอ vprint ใหมจำานวนสมาชกทงสน 10 และ เปนขอมลชนดตวอกษร ในการอางถงตวแปรใหทำาการระบ Index หรอลำาดบทของสมาชก โดยสมาชกตวแรกใหระบ Index เปน 0 เชน เมอตองการอางถงสมาชกตวแรกสดใหระบเปน vprint(0)สมาชกตวท 7 ใหระบเปน vprint(6) สมาชกตวสดทายระบเปน vprint(9)

ตวแปรอารเรยแบบไดนามก (Dynamic Arrays)เปนอารเรยทไมมการระบจำานวนสมาชกเมอมการประกาศตวแปร เนองจากไมทราบจำานวนสมาชกทแนนอน

ตวอยาง

       Dim ccode( ) as String

7

จากตวอยางเปนการประกาศตวแปรอารเรยชอ ccode โดยไมระบจำานวนสมาชก และเปนขอมลชนดตวอกษร

เมอตองการใชงานตวแปรจะตองระบจำานวนสมาชกใหกบตวแปรอารเรย โดยใชคำาสงดงน

       Redim ccode(5)

จากตวอยางเปนการกำาหนดใหตวแปรอารเรย ccode ทไดประกาศไวแลวใหมจำานวนสมาชก 5

ขอดของตวแปรอารเรยแบบไดนามกคอ จำานวนสมาชกของอารเรยจะถกกำาหนดใหมความเหมาะสมตอการใชงานเนอง เนองจากสามารถระบจำานวนสมาชกไดภายหลง แตตวแปรอารเรยแบบสแตตกจะตองระบจำานวนสมาชกทนททมการประกาศตวแปร การสรางชนดของตวแปรขนใชเอง (User-defined data type)กรณทตองการเกบขอมลเปนชดแตประกอบดวยขอมลหลาย ๆ ชนด สามารถทำาไดโดยการสรางชนดขอมลพเศษขนมา โดยนำาชนดของขอมลพนฐานดงกลาวทงหมดมาสรางตามทตองการโดยมรปแบบดงน

       [Public I Private] Type Varname               elementname [([subscripts])] As type               [elementname [([subscripts])] As type]               ……        End Type

Public(Optional)

คอ สวนทกำาหนดใหคาคงทสามารถใชไดทงโปรเจกต ทกโมดล

Private(Optional)

คอ สวนทกำาหนดใหคาคงทสามารถใชไดเฉพาะโมดลทประกาศเทานน

Varname คอ ชอของชนดขอมลทกำาหนดขนมาใหมelementname

คอ ชอของตวแปร ซงเปนสวนหนงของชนดขอมลทสรางขนมา

Subscript คอ จำานวนสมาชกกรณทตองการใหเปนตวแป

8

s รอารเรยType คอ ชนดของขอมลพนฐานแตละตว

ตวอยาง        Type Customer               CustName As String               Address As String               Age As Integer        End Type

จากตวอยางเปนการสรางชนดขอมลขนมาใหม โดยใหชอวา Customer โดยมตวแปรยอย Name Address และ Age เมอตองการใชงานชนดขอมลดงกลาวตองทำาการประกาศตวแปรดงน        Dim newcust As Customer

เมอตองการเกบคาหรอนำาคาไปใชใหใชคำาสงดงน        newcust.CustName = "ปรษา ป นด"        newcust.Address = "123 ถ.ศรสมงค ต.เมองใต อ.เมอง จ.ศรสะเกษ        newcust.Age = 45

การประกาศคาคงท (Constant)คาคงท (Constant) หมายถงขอมลทมคาคงทไมมการเปลยนแปลง ในการประกาศคาคงทตองใชคำาสง Const เพอสรางคาคงท มรปแบบดงน

[Public I Private] Const constname [As type] = expression Public(Optional)

คอ สวนทกำาหนดใหคาคงทสามารถใชไดทงโปรเจกต ทกโมดล

Private(Optional)

คอ สวนทกำาหนดใหคาคงทสามารถใชไดเฉพาะโมดลทประกาศเทานน

Const คอ คำาสงสรางคาคงทConstname

คอ ชอคาคงท

Type คอ การกำาหนดชนดของคาคงท

9

(Optional)Expression

คอ คาทตองการกำาหนด

       ตวอยาง               Option Explicit               Const PI As Double = 3.141578               Private Sub cmdCalc_Click( )                      Dim radius As Double                      Dim area As Double                      Radius = CDb(InputBox("กรณาใสคารศม" , "ใสคา")                      Area = PI * (radius) ^2                      MsgBox "พนทวงกลม = " & Area & " ตารางหนวย "               End Sub

ตวดำาเนนการใน Visual Basic (Operators) ตวดำาเนนการ คอ เครองหมายสำาหรบกระทำากบขอมลอยางนอยทสด 2 ชดมากระทำาอยางใดอยางหนง เชน บวก ลบ เชอมตอ เปรยบเทยบ ทดสอบคา เปนตน ซงสามารถแบงได 4 ประเภท ดงน

ตวดำาเนนการดานคณตศาสตร (Arithmetic Operators) คอเครองหมายทางคณตศาสตรใชสำาหรบการคำานวณตวเลข ดงตาราง

  ชอตวดำาเนนการ

ลกษณะตวดำาเนนการ

  ตวอยาง

  การบวก +   A + B  การลบ -   A - B

10

9  การคณ *   A * B  การหาร /   A / B  การหารเอาแตจำานวนเตม \   A \ B

  การหารเอาแตเศษ Mod   A Mod B

  การยกกำาลง ^   A ^ B  การเปลยนเครองหมาย -   -A

ตวดำาเนนการทางดานตรรกะ (Logical Operator)

คอเครองหมายสำาหรบตรวจสอบเงอนไขระหวางกลมนพจน โดยจะใหผลลพธเปนจรง (True) และเปนเทจ (False) หรอสรางเงอนไขขนมาเพอทดสอบกรณตาง ๆ ดงตาราง

  ตวดำาเนนการ

ตวอยาง

  ผลลพธ

  AndA

And B

  เปนจรงเมอทง 2 นพจนมคาเปนจรง

  Or A Or B

  เปนเทจเมอทง 2 นพจนมคาเปนเทจ

  Xor A Xor B

  เปนจรงเมอทง 2 นพจนมคาตางกน

  EqvA

Eqv B

  เปนจรงเมองทง 2 นพจนมคาเหมอนกน

  ImpA

Imp B

  เปนเทจเมอนพจนหนาเปนจรง นพจนหลงเปนเทจ

11

  Not Not A   ใหคาตรงขามกบคาของนพจน

ตวดำาเนนการทางดานการเปรยบเทยบ (Comparison Operators) เครองหมายทใชสำาหรบเปรยบเทยบนพจน 2 นพจน เพอทดสอบ หรอสรางเงอนไข โดยจะใหผลลพธเปนจรง (True) และเปนเทจ (False) มกจะใชคกบตวดำาเนนการทางดานตรรกะ เพอตรวจสอบเงอนไขตาง ๆ เสมอ ดงตาราง

  ตวดำาเนนการ   ชอตวดำาเนนการ<   นอยกวา>   มากกวา

<=   นอยกวาหรอเทากบ>=   มากกวาหรอเทากบ=   เทากบ

<>   ไมเทากบ

ตวดำาเนนการทางดานการเชอมขอความ (Concentration Operators) เครองหมายทใชสำาหรบเชอมขอความตงแต 2 ขอความเขาดวยกน แตยงมกรณยกเวนทจะเปนการบวกกนของนพจน 2 นพจน ซงขนอยกบชนดของนพจนทจะมากระทำากน ดงตาราง

  ตวดำาเนนการ

กรณ ตวอยาง   ผลลพธ

+   String + String   "Visual"+"Basic 6.0"

  "Visual Basic 6.0"

&   String & String   "Visual"&"Basic 6.0"

  "Visual Basic 6.0"

+   String(numeric)+numeric   "20"+6   26

&   String(numeric)&numeric   "20"+6   206

12

ขอมลจาก : http://www.thanom.net/vb1.asp

13

top related