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

15
บบบบบ 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 ใใใ 8 Bytes

Upload: -

Post on 05-Sep-2014

4.146 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

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

บทท 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

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

ลบอยระหวาง - 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

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

       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

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

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

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

       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

Page 6: Vb6 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

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

ตวอยาง

รปท 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

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

จากตวอยางเปนการประกาศตวแปรอารเรยชอ 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

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

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

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

(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

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

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

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

  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

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

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

13