Download as pdf or txt
Download as pdf or txt
You are on page 1of 175

1

Khoa Cng ngh Thng tin


Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 1
MN TIN HC
Ti liu tham kho :
Tp slide bi ging & thc hnh ca mn hc ny.
3 CD MSDN trong Microsoft Visual Studio.
Ni dung chnh gm 12 chng :
1. Phng php gii quyt bi ton
bng my tnh s.
2. Th hin d liu trong my tnh s.
3. Tng qut v lp trnh bng VB.
4. Qui trnh thit k trc quan giao
din.
5. Cc kiu d liu ca VB.
6. Cc lnh nh ngha & khai bo.
7. Biu thc VB.
8. Cc lnh thc thi VB.
9. nh ngha th tc & s dng.
10. Tng tc gia ngi dng &
chng trnh.
11. Qun l h thng file.
12. Linh kin phn mm & truy
xut database.
i tng : SV i hc chnh quy ton trng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 2
MN TIN HC
Chng 1
PHNG PHP GII QUYT BI TON
BNG MY TNH S
Chng 1: Phng php gii quyt bi ton bng my tnh s
1.1 Cc khi nim c bn v my tnh s
1.2 Lch s pht trin my tnh s
1.3 D liu & chng trnh
1.4 Qui trnh tng qut gii quyt bi ton bng my tnh s
1.5 Phn tch bi ton t-trn-xung
2
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 3
Con ngi thng minh hn cc ng vt khc nhiu. Trong cuc sng,
h ch to ngy cng nhiu cng c, thit b h tr mnh trong
hot ng. Cc cng c, thit b do con ngi ch to ngy cng tinh vi,
phc tp v thc hin nhiu cng vic hn trc y. Mi cng c, thit
b thng ch thc hin c 1 vi cng vic c th no . Th d, cy
chi qut, radio bt v nghe i audio...
My tnh s (digital computer) cng l 1 thit b, nhng thay v ch thc
hin 1 s chc nng c th, st vi nhu cu i thng ca con ngi,
n c th thc hin 1 s hu hn cc chc nng c bn (tp lnh), mi
lnh rt s khai cha gii quyt trc tip c nhu cu i thng no
ca con ngi. C ch thc hin cc lnh l t ng, bt u t lnh
c ch nh no ri tun t tng lnh k tip cho n lnh cui
cng. Danh sch cc lnh c thc hin ny c gi l chng trnh.
Chng 1: Phng php gii quyt bi ton bng my tnh s
1.1 Cc khi nim c bn v my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 4
Chng 1: Phng php gii quyt bi ton bng my tnh s
Cc lnh m my hiu v thc hin c c gi l lnh my.
Ta dng ngn ng miu t cc lnh. Ngn ng lp trnh cu
thnh t 2 yu t chnh yu : c php v ng ngha. C php qui
nh trt t kt hp cc phn t cu thnh 1 lnh (cu), cn
ng ngha cho bit ngha ca lnh .
Bt k cng vic (bi ton) ngoi i no cng c th c chia
thnh trnh t nhiu cng vic nh hn. Trnh t cc cng vic
nh ny c gi l gii thut gii quyt cng vic ngoi i. Mi
cng vic nh hn cng c th c chia nh hn na nu n
cn phc tp,... cng vic ngoi i c th c miu t bng
1 trnh t cc lnh my (chng trnh ngn ng my).
Cc khi nim c bn v my tnh s
3
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 5
Chng 1: Phng php gii quyt bi ton bng my tnh s
Vn mu cht ca vic dng my tnh gii quyt cng vic ngoi i
l lp trnh (c hiu nm na l qui trnh xc nh trnh t ng cc
lnh my thc hin cng vic). Cho n nay, lp trnh l cng vic
ca con ngi (vi s tr gip ngy cng nhiu ca my tnh).
Vi cng ngh phn cng hin nay, ta ch c th ch to cc my tnh
m tp lnh my rt s khai, mi lnh my ch c th thc hin 1 cng
vic rt nh v n gin cng vic ngoi i thng tng ng vi
trnh t rt ln (hng triu) cc lnh my Lp trnh bng ngn ng
my rt phc tp, tn nhiu thi gian, cng sc, kt qu rt kh bo tr,
pht trin.
Ta mun c my lun l vi tp lnh (c c t bi ngn ng lp
trnh) cao cp v gn gi hn vi con ngi. Ta thng hin thc my
ny bng 1 my vt l + 1 chng trnh dch. C 2 loi chng trnh
dch : trnh bin dch (compiler) v trnh thng dch (interpreter).
Cc khi nim c bn v my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 6
Trnh bin dch (Compiler)
Chng trnh bin dch nhn mt chng trnh ngun (thng c
vit bng ngn ng cp cao) v to ra mt chng trnh i tng
tng ng v chc nng nhng thng c vit bng ngn ng
cp thp (thng l ngn ng my).
Nu c li xy ra trong lc dch, trnh bin dch s bo li, c gng
tm v tr ng k tip ri tip tc dchNh vy, mi ln dch 1
chng trnh, ta s xc nh c nhiu li nht c th c.
Sau mi ln dch, nu khng c li, trnh bin dch s to ra file
cha chng trnh i tng (th d file chng trnh kh thi *.exe
trn Windows).
chy chng trnh, ngi dng ch cn kch hot file kh thi
(ngi dng khng bit v khng cn quan tm n file chng
trnh ngun).
Chng 1: Phng php gii quyt bi ton bng my tnh s
4
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 7
Trnh thng dch (Interpreter)
Chng trnh thng dch khng to ra v lu gi chng trnh i
tng.
Mi ln thng dch 1 chng trnh ngun l 1 ln c gng chy
chng trnh ny theo cch thc sau :
dch v chuyn sang m thc thi tng lnh mt ri nh my
chy on lnh tng ng.
Nu c li th bo li, nu khng c li th thng dch lnh k
tip... cho n khi ht chng trnh.
Nh vy, mi ln thng dch chng trnh, trnh thng dch ch
thng dch cc lnh trong lung thi hnh cn thit ch khng
thng dch ht mi lnh ca chng trnh ngun. Do , sau khi
thng dch thnh cng 1 chng trnh, ta khng th kt lun
rng chng trnh ny khng c li.
Chng 1: Phng php gii quyt bi ton bng my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 8
So snh trnh bin dch & trnh thng dch
Mi hot ng x l trn mi m ngun ca chng trnh (kim tra li, dch ra
cc lnh i tng tng ng,...) u c chng trnh bin dch thc hin
to c chng trnh i tng. Do sau khi dch cc file m ngun ca
chng trnh, nu khng c li, ta c th kt lun chng trnh khng th c li
thi im dch (t vng, c php). Qu trnh bin dch v qu trnh thc thi
chng trnh l tch ri nhau : bin dch 1 ln v chy nhiu ln cho n khi cn
cp nht version mi ca chng trnh.
Chng trnh thng dch s thng dch tng lnh theo lung thi hnh ca
chng trnh bt u t im nhp ca chng trnh, thng dch 1 lnh gm 2
hot ng : bin dch lnh v thc thi cc lnh kt qu. Nu 1 on lnh cn
c thc thi lp li th trnh thng dch s phi thng dch li tt c on lnh
. iu ny s lm cho vic chy chng trnh trong ch thng dch khng
hiu qu.
Vic chy chng trnh bng c ch thng dch i hi chng trnh thng dch
v chng trnh ng dng cn chy phi tn ti ng thi trong b nh my tnh,
do c nguy c chy khng c cc chng trnh ln nu ti nguyn ca
my khng cho c 2 chng trnh thng dch v chng trnh ng dng.
Chng 1: Phng php gii quyt bi ton bng my tnh s
5
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 9
Gi ngn ng my vt l l N
0
. Trnh bin dch ngn ng N
1
sang
ngn ng N
0
s nhn u vo l chng trnh c vit bng ngn
ng N
1
, phn tch tng lnh N
1
ri chuyn thnh danh sch cc lnh
ngn ng N
0
c chc nng tng ng. vit chng trnh dch t
ngn ng N
1
sang N
0
d dng, phc tp ca tng lnh ngn ng
N
1
khng qu cao so vi tng lnh ngn ng N
0
.
Sau khi c my lun l hiu c ngn ng lun l N
1
, ta c th nh
ngha v hin thc my lun l N
2
theo cch trn v tip tc n khi ta
c 1 my lun l hiu c ngn ng N
m
rt gn gi vi con ngi, d
dng miu t gii thut ca bi ton cn gii quyt...
Nhng qui trnh trn cha c im dng, vi yu cu ngy cng cao
v kin thc ngy cng nhiu, ngi ta tip tc nh ngha nhng ngn
ng mi vi tp lnh ngy cng gn gi hn vi con ngi miu t
gii thut cng d dng, gn nh v trong sng hn.
Chng 1: Phng php gii quyt bi ton bng my tnh s
Cc khi nim c bn v my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 10
Chng 1: Phng php gii quyt bi ton bng my tnh s
Ngn ng my vt l l loi ngn ng thp nht m ngi lp trnh bnh
thng c th dng c. Cc lnh v tham s ca lnh c miu t
bi cc s binary (hay hexadecimal - s c miu t chi tit trong
chng 2). y l loi ngn ng m my vt l c th hiu trc tip,
nhng con ngi th gp nhiu kh khn trong vic vit v bo tr
chng trnh cp ny.
Ngn ng assembly rt gn vi ngn ng my, nhng lnh c bn nht
ca ngn ng assembly tng ng vi lnh my nhng c biu din
di dng gi nh. Ngoi ra, ngi ta tng cng thm khi nim "lnh
macro" nng sc mnh miu t gii thut.
Ngn ng cp cao theo trng phi lp trnh cu trc nh Pascal, C,...
Tp lnh ca ngn ng ny kh mnh v gn vi t duy ca ngi bnh
thng.
Ngn ng hng i tng nh C++, Visual Basic, Java, C#,... ci tin
phng php cu trc chng trnh sao cho trong sng, n nh, d
pht trin v thay th linh kin.
Cc cp ngn ng lp trnh
6
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 11
1.2 Lch s pht trin my tnh s
My tnh xut hin t rt lu theo nhu cu bun bn v trao i
tin t.
Bn tnh tay abacus l dng s khai ca my tnh.
5 n v
1 n v
Chng 1: Phng php gii quyt bi ton bng my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 12
Cc th h my tnh s
n
in t
(1945 - 1955)
ENIAC (1946)
18.000 bng n
1500 r le
30 tn
140 KW
Von Neumann (1945)
B nh dy tr, tnh
in. Giy, phiu c
l. Bng t
Transistors
(1955 - 1965)
PDP-1 (1961)
B nh xuyn t.
Bng t, trng t,
a t.
IC
(1965 - 1980)
IBM 360 (1965)
Intel 8080 (1974)
c xem nh CPU u
tin c tch hp trn 1
chip
?
(1980 - ????)
80x86 (1978)
C
(1642 - 1945)
Blaise Pascal (Php-1642)
Herman Hollerith lp IBM
(International Business
Machine) M - 1890
Charles Babbage (Anh-1830)
Chng 1: Phng php gii quyt bi ton bng my tnh s
7
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 13
Cc lnh ca chng trnh (code) s truy xut (c v/hoc ghi) thng
tin (d liu).
Chng trnh gii quyt bi ton no c th truy xut nhiu d liu
khc nhau vi tnh cht rt a dng. truy xut 1 d liu c th, ta
cn 3 thng tin v d liu :
- tn nhn dng (identifier) xc nh v tr ca d liu.
- kiu d liu (type) miu t cu trc ca d liu.
- tm vc truy xut (visibility) xc nh cc lnh c php truy xut
d liu tng ng.
Chng trnh c in = d liu + gii thut.
Chng trnh con (function, subroutine,...) l 1 on code thc hin
chc nng c dng nhiu ln nhiu v tr trong chng trnh, c
nhn dng thng qua 1 tn gi. Chng trnh con cho php cu trc
chng trnh, s dng li code...
Chng 1: Phng php gii quyt bi ton bng my tnh s
1.3 D liu & chng trnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 14
Chng trnh = cu trc d liu + gii thut
entry 'start'
global data module
(package)
local data
of module
local data
of function
Chng 1: Phng php gii quyt bi ton bng my tnh s
Cu trc 1 chng trnh c in
8
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 15
Gii m chui
bit ra dng
ngi, thit b
ngoi hiu c
X l d liu
dng chui bit
M ha d liu
thnh dng
chui bit
D liu cn x l bng
my tnh (ch s, hnh
nh, m thanh,...)
Kt qu c c sau
khi x l bng my tnh
(ch s, hnh nh, m
thanh,...)
Chng 1: Phng php gii quyt bi ton bng my tnh s
CDROM, a, bng,...
Lu gi d liu
s dng li
My tnh s
1.4 Qui trnh tng qut gii quyt bi ton bng my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 16
B nh
(Memory)
n v x l
(CPU)
Cc thit b
vo ra (I/O)
Bus giao tip
cha code v data
ang thc thi
thc thi tng lnh
ca chng trnh
giao tip vi bn ngoi
(thng l ngi)
nhp/xut tin
Chng 1: Phng php gii quyt bi ton bng my tnh s
M hnh my tnh s Von Neumann
9
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 17
bn phm
mn hnh
chut
thng my
loa
Chng 1: Phng php gii quyt bi ton bng my tnh s
Hnh dng vt l ca vi my tnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 18
Trong qu kh, phng php thng s dng phn tch bi ton l
phng php t-trn-xung (top-down analysis).
Ni dung ca phng php ny l xt xem, mun gii quyt vn no
th cn phi lm nhng cng vic nh hn no. Mi cng vic nh hn
tm c li c phn thnh nhng cng vic nh hn na, c nh vy
cho n khi nhng cng vic phi lm l nhng cng vic tht n gin,
c th thc hin d dng.
Th d vic hc ly bng k s CNTT khoa CNTT HBK TP.HCM c th
bao gm 9 cng vic nh hn l hc tng hc k t 1 ti 9, hc hc k i l
hc n mn hc ca hc k , hc 1 mn hc l hc m chng ca mn
,...
Hnh v ca slide k cho thy trc quan ca vic phn tch top-down.
Chng 1: Phng php gii quyt bi ton bng my tnh s
1.5 Phng php phn tch t-trn-xung
10
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 19
Chng 1: Phng php gii quyt bi ton bng my tnh s
Phng php phn tch t-trn-xung
Cng vic cn
gii quyt (A)
Cng vic
A
1
Cng vic
A
2
Cng vic
A
n
Cng vic
A
11
Cng vic
A
12
Cng vic
A
1n
Cng vic
A
n1
Cng vic
A
n2
Cng vic
A
nn
...
... ... ... ...
chia thnh nhiu cng
vic nh hn, n gin
gii quyt hn.
Cc cng vic nh
c miu t bng
1 lnh hay 1 li gi
hm/th tc c.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 20
Cng vic cn gii quyt
i tng phc hp A
i tng
A
1
i tng
A
2
i tng
A
n
i tng
A
11
i tng
A
12
i tng
A
1n
i tng
A
n1
i tng
A
n2
i tng
A
nn
...
... ... ... ...
Chng 1: Phng php gii quyt bi ton bng my tnh s
Phng php phn tch t-trn-xung
11
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 21
MN TIN HC
Chng 2
TH HIN D LIU
TRONG MY TNH S
Chng 2 : Th hin d liu trong my tnh s
2.1 C bn v vic lu tr v x l tin trong my tnh
2.2 C bn v h thng s
2.3 Cc phng php chuyn miu t s
2.4 Biu din d liu trong my tnh
2.5 H thng file
2.6 Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 22
Phn t nh nh nht ca my tnh s ch c th cha 2 gi tr : 0 v 1
(ta gi l bit).
Ta kt hp nhiu phn t nh c th miu t i lng ln hn. Th
d ta dng 8 bit miu t 2
8
= 256 gi tr khc nhau. Dy 8 bit nh
c gi l byte, y l 1 nh trong b nh ca my tnh.
B nh trong ca my tnh c dng cha d liu v code ca
chng trnh ang thc thi. N l 1 dy ng nht cc nh 8 bit, mi
nh c truy xut c lp thng qua a ch ca n (tn nhn dng).
Thng ta dng ch s t 0 - n miu t a ch ca tng nh.
Mc d ngoi i ta quen dng h thng s thp phn, nhng v
phn cng bn trong my tnh, my ch c th cha v x l trc tip d
liu dng nh phn. Do trong chng ny, ta s gii thiu cc khi
nim nn tng v h thng s v cch miu t d liu trong my tnh.
2.1 C bn v vic lu tr v x l tin trong my tnh
Chng 2 : Th hin d liu trong my tnh s
12
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 23
H thng s (number system) l cng c biu th i lng. Mt h
thng s gm 3 thnh phn chnh :
1. c s : s lng k s (k hiu nhn dng cc s c bn).
2. qui lut kt hp cc k s miu t 1 i lng no .
3. cc php tnh c bn trn cc s.
Trong 3 thnh phn trn, ch c thnh phn 1 l khc nhau gia cc h
thng s, cn 2 thnh phn 2 v 3 th ging nhau gia cc h thng
s.
Th d : - h thng s thp phn (h thp phn) dng 10 k s :
0,1,2,3,4,5,6,7,8,9.
- h nh phn dng 2 k s : 0,1.
- h bt phn dng 8 k s : 0,1,2,3,4,5,6,7.
- h thp lc phn dng 16 k s : 0 n 9,A,B,C,D,E,F.
2.2 C bn v h thng s
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 24
Biu din ca lng Q trong h thng s B (B>1) l :
d
n
d
n-1
...d
1
d
0
d
-1
...d
-m

Q = d
n
*B
n
+ d
n-1
*B
n-1
+...+d
0
*B
0
+d
-1
*B
-1
+...+d
-m
*B
-m
trong mi d
i
l 1 k s trong h thng B.
Trong thc t lp trnh bng ngn ng cp cao, ta thng dng h
thng s thp phn miu t d liu s ca chng trnh (v
quen). Ch trong 1 s trng hp c bit, ta mi dng h thng s
thp lc phn (dng ngn ca nh phn) miu t 1 vi gi tr
nguyn, trong trng hp ny, qui lut biu din ca lng nguyn Q
trong h thng s B s n gin l :
d
n
d
n-1
...d
1
d
0

Q = d
n
*B
n
+ d
n-1
*B
n-1
+...+d
1
*B
1
+d
0
*B
0
trong mi d
i
l 1 k s trong h thng B.
C bn v h thng s - Qui lut miu t lng
Chng 2 : Th hin d liu trong my tnh s
13
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 25
Th d v biu din cc lng trong cc h thng s :
- lng "mi by" c miu t l 17 trong h thp phn v :
17 = 1*10
1
+7*10
0
- lng "mi by" c miu t l 11 trong h thp lc phn v :
11 = 1*16
1
+1*16
0
- lng "mi by" c miu t l 10001 trong h nh phn v :
10001 = 1*2
4
+0*2
3
+0*2
2
+0*2
1
+1*2
0
Trong mi trng s dng ng thi nhiu h thng s, trnh nhm
ln trong cc biu din ca cc lng khc nhau, ta s thm k t
nhn dng h thng s c dng trong biu din lin quan. Th d ta
vit :
- 17
D
xc nh s biu din trong h thng s thp phn.
- 11
H
(h thng s thp lc phn.)
- 10001
B
(h thng s nh phn.)
C bn v h thng s - Vi th d
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 26
chuyn 1 miu t s t h thng s ny sang h thng s
khc, ta cn dng 1 phng php chuyn thch hp. C 4
phng php sau tng ng vi tng yu cu chuyn tng ng :
1. chuyn t h thng s khc v thp phn.
2. chuyn t nh phn v thp lc phn (hay bt phn).
3. chuyn t thp lc phn (hay bt phn) v nh phn.
4. chuyn t h thng s thp phn v h thng s khc.
2.3 Cc phng php chuyn miu t s
Chng 2 : Th hin d liu trong my tnh s
14
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 27
chuyn 1 miu t s t h thng s khc (nh phn, thp lc
phn hay bt phn) sang h thp phn, ta dng cng thc tnh
Q.
Th d :
1. 1A2
H
= 1*16
2
+10*16
1
+2*16
0
= 256+160+2 = 418
D
2. 642
O
= 6*8
2
+4*8
1
+2*8
0
= 384+32+2 = 418
D
3. 110100010
B
= 2
8
+ 2
7
+2
5
+2
1
= 256+128+32+2 =418
D
Chuyn t h thng khc v thp phn
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 28
Lu rng c 1 mi quan h mt thit gia h nh phn v thp
lc phn (hay bt phn), l 4 k s nh phn tng ng vi
1 k s thp lc phn (hay 3 k s nh phn tng ng vi 1 k
s bt phn) theo bng tra sau :
Chuyn t h thng nh phn v thp lc phn
Chng 2 : Th hin d liu trong my tnh s
0111 07 7 7
0110 06 6 6
0101 05 5 5
0100 04 4 4
0011 03 3 3
0010 02 2 2
0001 01 1 1
0000 00 0 0
Binary Oct Hex Dec
1111 17 F 15
1110 16 E 14
1101 15 D 13
1100 14 C 12
1011 13 B 11
1010 12 A 10
1001 11 9 9
1000 10 8 8
Binary Oct Hex Dec
15
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 29
i 1 s nh phn v thp lc phn (hay bt phn), ta i t
phi sang tri v chia thnh tng nhm 4 k s nh phn (hay 3
k s nh phn), sau i tng nhm 4 k s (hay 3 k s)
thnh 1 k s thp lc phn tng ng (hay 1 k s bt phn
tng ng).
Th d :
1. 110100010
B
= 0001.1010.0010 = 1A2
H
2. 110100010
B
= 110.100.010 = 642
O
Chuyn t h thng nh phn v thp lc phn
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 30
i 1 s thp lc phn (hay bt phn) v nh phn, ta i tng
k s thp lc phn (hay bt phn) thnh tng nhm 4 k s nh
phn (hay 3 k s nh phn).
Th d :
1. 1A2
H
= 0001.1010.0010 = 110100010
B
2. 642
O
= 110.100.010 = 110100010
B
Chuyn t h thng thp lc phn v nh phn
Chng 2 : Th hin d liu trong my tnh s
16
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 31
i 1 s thp phn v h thng s khc, ta hy chia s cn
i cho c s ch c c thng v d s, ta lp li hot
ng chia thng s cho c s ch c c thng v d s
mi, c th lp mi cho n khi thng s = 0 th dng li. Ghp
cc d s theo chiu ngc chiu lp to ra kt qu ( l s
miu t s tng ng nhng h thng s khc).
Th d chuyn s 418 v miu t tng ng trong h thp lc :
418
D
16
2 26 16
10 1 16
1 0
Kt qu l 418
D
= 1A2
H
Chuyn t h thng thp phn v h thng khc
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 32
i 1 s thp lc phn v bt phn (hay ngc li), ta nn
chuyn tun t t thp lc phn v nh phn, ri t nh phn v
bt phn.
Chuyn t h thng thp lc phn v bt phn
Chng 2 : Th hin d liu trong my tnh s
17
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 33
Cc php tnh c bn trong 1 h thng s l :
1. php cng (+).
2. php tr (-).
3. php chia (/).
4. php nhn (*).
5. php dch tri n k s (<< n).
6. php dch phi n k s (>> n).
Ngoi ra do c im ca h nh phn, h ny cn cung cp 1 s php
tnh sau (cc php tnh lun l) :
1. php OR bit (|).
2. php AND bit (&).
3. php XOR bit (^).
4. ....
C bn v h thng s - Cc php tnh
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 34
Th d v cc php tnh c bn (cc gi tr u c biu din
bng h nh phn :
0 1 1 0
+ 0 0 1 1
1 0 0 1
1 0 0 1
- 0 0 1 1
0 1 1 0
1 0 0 1
* 0 1 0 1
1 0 0 1
0 0 0 0
1 0 0 1
1 0 1 1 0 1
Th d v php cng, tr, nhn
Chng 2 : Th hin d liu trong my tnh s
18
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 35
1 0 1 1
- 1 0
0 1
- 0 0
1 1
- 1 0
0 1
1 0
1 0 1
Th d v cc php tnh c bn (cc gi tr u c biu din
bng h nh phn) :
d s
s b chia
s chia
thng s
Th d v php chia
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 36
Th d v cc php tnh dch k s (cc gi tr u c biu din
bng h nh phn) :
0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 b dch tri 2 bit thnh
(tng dng vi nhn 2
2
)
0 0
0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 b dch phi 2 bit thnh
(tng dng vi chia 2
2
)
0 0
Th d v php dch k s
Chng 2 : Th hin d liu trong my tnh s
19
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 37
i s Boole nghin cu cc php ton thc hin trn cc bin ch c
2 gi tr 0 v 1, tng ng vi hai thi cc lun l "sai" v "ng" (hay
"khng" v "c") ca i thng. Cc php ton ny gm :
x y not x x and y x nand y x or y x nor y x xor y
0 0 1 0 1 0 1 0
0 1 0 1 1 0 1
1 0 0 0 1 1 0 1
1 1 1 0 1 0 0
Biu thc Boole l 1 biu thc ton hoc cu thnh t cc php ton
Boole trn cc ton hng l cc bin ch cha 2 tr 0 v 1.
Cc php tnh ca i s Boole
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 38
Mt hm Boole theo n bin boole (hm n ngi) l 1 biu thc boole
cu thnh t cc php ton Boole trn cc bin boole.
Thay v miu t hm boole bng biu thc boole, ta c th miu t
hm boole bng bng thc tr. Bng thc tr ca hm boole n bin
c 2
n
hng, mi hng miu t 1 t hp tr c th ca cc bin v gi
tr c th ca hm tng ng vi t hp tr ny (xem slide ngay
trc).
Nh vy 1 hm boole n bin c miu t nh 1 chui 2
n
bit c
chnh xc hm boole n ngi khc nhau. C th c :
Hm Boole
Chng 2 : Th hin d liu trong my tnh s
n
2
2
4 2
1
2
=
16 2 2
4 2
2
= =
256 2 2
8 2
3
= =
hm boole 1 ngi khac nhau
hm boole 2 ngi khac nhau
hm boole 3 ngi khac nhau
20
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 39
Cc n v nh thng dng
Chng 2 : Th hin d liu trong my tnh s
My tnh dng trc tip h nh phn, cc n v biu din thng tin
thng dng l :
1. bit : miu t 2 gi tr khc nhau (ng/sai, 0/1,..)
2. byte : 8bit, c th miu t c 2
8
= 256 gi tr khc nhau.
3. word : 2 byte, c th miu t c 2
16
= 65536 gi tr khc
nhau.
4. double word : 4 byte, c th miu t c 2
32
=
4.294.967.296 gi tr khc nhau.
5. KB (kilo byte) = 2
10
= 1024 byte.
6. MB (mega byte) = 2
20
= 1024KB = 1.048.576 byte.
7. GB (giga byte) = 2
30
= 1024MB = 1.073.741.824 byte.
8. TB (tetra byte) = 2
40
= 1024GB = 1.099.511.627.776 byte.
Th d, RAM ca my bn l 512MB, a cng l 300GB.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 40
Ty ngn ng lp trnh m cch biu din s trong my c nhng khc
bit nht nh. Ring VB c nhiu phng php biu din s khc nhau,
trong 2 cch thng dng l s nguyn v s thc.
My dng 1 word (2 byte) cha d liu nguyn (Integer) theo qui nh
c th slide sau.
V mi nh my tnh ch cha c 1 byte, do ta phi dng nhiu
lin tip (2 hay 4) cha s nguyn. C 2 cch cha cc byte ca s
nguyn (hay d liu khc) vo cc nh : BE & LE.
Cch BE (Big Endian) cha byte trng s cao nht vo nh a ch thp
trc, sau ln lt n cc byte cn li. Cch LE (Little Endian) cha
byte trong s nh nht vo nh a ch thp trc, sau ln lt n
cc byte cn li.
VB s dng cch LE cha s nguyn vo b nh (Integer v Long).
2.4 Biu din s nguyn trong Visual Basic
Chng 2 : Th hin d liu trong my tnh s
21
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 41
00000000 00000000 0
00000000 00000001 1
....
01111111 11111111 32767
10000000 00000000 -32768
10000000 00000001 -32767
....
11111111 11111111 -1
S biu din gi tr
Phn dng c 32768 s
t s 0 ti 32767, c
miu t theo cng thc Q.
Phn m c 32768 s t -
32768 ti -1, c miu t
dng s b 2 nh sau :
S b 1 ca 1 s n bit l n
bit m mi bit l ngc vi
bit gc (0 1 v 1 0)
S b 2 ca 1 s n bit l s
b 1 ca s ri tng ln
1 n v.
Biu din s nguyn trong Visual Basic
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 42
S 15 c miu t di dng nh phn 16 bit nh sau :
0000 0000 0000 1111
Do , nu dng kiu Integer lu s 15, ta dng 16 bit nh trn
hay vit ngn gn l 000F
H
. Nu lu vo b nh dng LE th nh
c a ch thp (i) cha byte 0F
H
, v nh k (i+1) cha byte 00.
Nu dng kiu Long lu s 15, ta dng 4 byte 0000000F
H
v
lu vo b nh dng LE tn 4 nh vi gi tr ln lt t a ch
thp n cao l 0F
H
, 00, 00, 00.
S b 1 ca 15 l 1111 1111 1111 0000, s b 2 ca 15 l
1111 1111 1111 0001
Nh vy -15 c lu vo my dng Integer l 2 byte c gi tr
FFF1
H
. Nu lu vo nh dng LE th nh c a ch thp (i)
cha byte F1
H
, v nh k (i+1) cha byte FF
H
.
Biu din s nguyn trong VB - Th d
Chng 2 : Th hin d liu trong my tnh s
22
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 43
miu t c cc gi tr nguyn nm ngoi phm vi t -32768 n
32767, VB cung cp kiu 'Long', kiu ny dng 4 byte miu t 1 gi tr
nguyn vi cng nguyn tc nh kiu Integer. Kt qu l kiu Long miu
t cc s nguyn trong phm vi t -2 t n 2 t.
Trong khoa hc, ta c th miu t s thc theo dng m*B
e
, m gi l nh
tr, B l c s v e l s m. Nh vy 1 s thc c th c th c miu t
bi rt nhiu miu t khc nhau, trong miu t c 0.1m<1 c gi l
miu t chnh tc ca s thc. y l miu t m my tnh s dng.
Chng 2 : Th hin d liu trong my tnh s
Biu din s thc trong Visual Basic
m B
e
m (mantissa) quyt nh chnh xc
B (base)
e (exponent) quyt nh ln/nh
913.5512
9.135512 10
2
0.9135512 10
3
9135.512 10
-1
91355.12 10
-2
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 44
Trc khi lu vo my tnh, s thc c i v dng miu t nh
phn di dng 1.m*2e (m l chui bit nh phn miu t phn l).
VB lu s thc theo chun IEEE 754, dng 1 trong 2 dng lu :
Chnh xc n (Single) : VB dng 4 byte - 4 nh (32 bit) lu
s thc theo dng thc c th sau :
trong bit S = 1 (m), =0 (dng).
M = m & E = 127 + e
Chnh xc kp (Double) : VB dng 8 byte - 8 nh (64 bit)
lu s thc theo dng thc c th sau :
trong bit S = 1 (m), =0 (dng); M = m & E = 1023 + e
1 8 23
E M S
1 11 52
S E M
Chng 2 : Th hin d liu trong my tnh s
Biu din s thc trong Visual Basic
23
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 45
Th d gi tr -1.5 c miu t dng nh phn l -1.1*2
0
.
Do nu dng kiu Single cha s thc -1.5, ta tn 4 byte (32
bit) vi cc thnh phn S = 1, M = 10...0 (22 bit 0), E = 127. Kt
qu, gi tr ca 4 byte miu t s -1.5 nh sau : BF C0 00 00
Tng t, nu dng kiu Double cha s thc -1.5, ta tn 8 byte
(64 bit) vi cc thnh phn S = 1, M = 10...0 (51 bit 0), E = 1023.
Kt qu, gi tr ca 8 byte miu t s -1.5 nh sau : BF F8 00 00
00 00 00 00.
VB dng cch cha LE, do gi tr -1.5 c lu vo b nh
theo kiu Single s chim 4 byte theo gi tr ln lt t a ch
thp n cao l 00 00 C0 BF. Tng t nu miu t -1.5 vo b
nh theo kiu Double th s cn 8 nh vi gi tr ln lt t a
ch thp n cao l 00 00 00 00 00 00 F8 BF.
Chng 2 : Th hin d liu trong my tnh s
Biu din s thc trong VB - Th d
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 46
Chui k t l danh sch nhiu k t, mi k t c miu t trong my
bi n bit nh :
m ASCII dng 7 bit (dng lun 1 byte nhng b bit 8) miu t
1 k t tp k t m m ASCII miu t c l 128.
m ISO8859-1 dng 8 bit (1 byte) miu t 1 k t tp k t
m m ISO8859-1 miu t c l 256.
m Unicode trn Windows dng 16 bit (2 byte) miu t 1 k t
tp k t m m Unicode trn Windows miu t c l
65536.
...
Hin c nhiu loi m ting Vit khc nhau, a s dng m ISO8859-1
ri qui nh li cch hin th 1 s k t thnh k t Vit. Ring Unicode l
b m thng nht ton cu, trong c cc k t Vit.
Biu din chui k t trong Visual Basic
Chng 2 : Th hin d liu trong my tnh s
24
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 47
M ASCII dng cc gi tr (m) t 0 - 127 miu t cc k t :
m t 0 - 31 l cc m iu khin nh CR=13 (Carriage Return),
LF=10 (Line Feed), ESC=27 (Escape)...
m 32 miu t k t trng, 33 miu t k t !,... theo bng sau :
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
Bng m ASCII 7 bit
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 48
M ISO8859-1 dng cc gi tr (m) t 0 - 255 miu t cc k t (128
m k t u qui nh ging nh m ASCII) :
m t 0 - 31 l cc m iu khin nh CR=13 (Carriage Return),
LF=10 (Line Feed), ESC=27 (Escape)...
m 32 miu t k t trng, 33 miu t k t !,... theo bng sau :
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~

-


Bng m ISO8859-1 (8 bit)
Chng 2 : Th hin d liu trong my tnh s
25
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 49
M HBK 1 byte c c bng cch hiu chnh bng m ISO8859-1 :
m t 0 - 31 l cc m iu khin nh CR=13 (Carriage Return),
LF=10 (Line Feed), ESC=27 (Escape)...
m 32 miu t k t trng, 33 miu t k t !,... theo bng sau :
! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _
` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
I o A A
~


Bng m ting Vit HBK 1 byte
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 50
M Unicode Windows dng 2 byte miu t 1 k t :
256 m u t 0 - 255 ging y nh m ISO8859-1.
m t 256 tr i cha cc k t ca hu ht cc ngn ng trn
th gii (qu kh, hin ti v tng lai).
th d sau l 1 phn m ting Vit trong m Unicode :
~ A A
I
^ Y ` |
m 1ea0
H
biu din k t m 1ef9
H
biu din k t
Mt phn m ting Vit Unicode
Chng 2 : Th hin d liu trong my tnh s
26
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 51
S nguyn (Integer, Long), s thc (Single, Double), chui k t (String)
l nhng dng m ha d liu ph dng, ngoi ra mi ng dng c th
cn c cch m ha ring m ha d liu c th ca mnh nh hnh
nh, m thanh,...
Trong chng 5 v 6 chng ta s trnh by chi tit cc kiu d liu m
ngn ng VB h tr.
Nhng ta trnh by trong slide 15 (chng 1), d dng cch m ha
c th no th kt qu ca vic m ha phi l 1 chui bit (hay chui
byte) c th c lu tr v x l bn trong my tnh.
B nh ca my tnh thng c dung lng khng ln nn ta ch dng n
cha code v d liu ca chng trnh ang thc thi.
1 my tnh c th lu tr rt nhiu chng trnh v d liu ca chng trn
cc thit b cha tin (b nh ngoi) nh a mm, a cng, CDROM,...
M ha d liu ca ng dng
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 52
code ca 1 chng trnh, chui byte miu t d liu c lu tr trn
thit b cha tin trong 1 phn t cha tin lun l c gi l file.
1 thit b cha tin thng cha rt nhiu file. nhn dng v truy
xut 1 file, ta dng tn nhn dng gn cho mi file. d dng file,
tn nhn dng ca n s dng tn gi nh (chui k t miu t ng
ngha ca ni dung file), th d nh file "lun n tt nghip.doc" cha
ton b ni dung lun n tt nghip ca ngi dng my.
Nu ta dng khng gian phng t tn cho cc file trn 1 thit b
cha tin th v s lng file qu ln nn ta kh lng t tn, nhn
dng, x l,... (ni chung l qun l) tng file.
gii quyt vn trn ta dng khng gian cy th bc t chc
v qun l cc file trn tng thit b cha tin.
2.5 H thng file
Chng 2 : Th hin d liu trong my tnh s
27
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 53
to khng gian cy th bc, ta dng khi nim th mc (directory).
th mc l phn t cha nhiu phn t bn trong n : c th l file hay
th mc. Thng ta s dng th mc cha nhng phn t con c
mi quan h mt thit no , th d nh th mc cha cc nh k
nim, th mc cha cc file nhc a thch,...
Thit b cha tin vt l (a mm, a cng, CDROM,...) c tru
tng ha nh l 1 th mc (ta gi th mc c bit ny l th mc
gc). Th mc gc cha nhiu phn t con bn trong, mi phn t
con ca th mc gc thng l th mc con nhng cng c th l file.
Mi th mc con li c th cha nhiu th mc con hay file... v c
th ta s hnh thnh 1 cy th bc cc th mc v file.
Ta cng dng tn gi nh nhn dng tng th mc. Trong khng
gian cy th bc, ta s dng khi nim ng dn (pathname)
nhn dng 1 file hay 1 th mc.
Thit b cha tin : Khng gian cy th bc
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 54
\
Windows AudioFile VideoFile ...
config.sys
System Fonts
...
win.com
arial.ttf
USAFilm VNFilm
...
Dng i.mpg
Cy th bc ca c:
ChinaFilm
Th d v h thng file
Chng 2 : Th hin d liu trong my tnh s
28
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 55
ng dn (pathname) l thng tin tm kim (xc nh) 1 phn t
t 1 v tr no , n cha danh sch chnh xc cc tn gi nh ca
cc phn t m ta phi i qua xut pht t v tr u n phn t
cn tm.
ta dng 1 du ngn c bit ngn cch 2 tn gi nh lin tip nhau
trong ng dn (trong Windows, du ngn l '\')
Tn th mc gc lun l '\'.
C 2 khi nim ng dn : ng dn tuyt i v ng dn tng
i. ng dn tuyt i l ng dn xut pht t th mc gc,
ng dn tng i xut pht t th mc lm vic (working
directory).
Trc khi ng dng bt u chy, h thng s khi ng th mc
lm vic cho ng dng (theo c ch no ). Trong qu trnh thc thi,
ng dng c quyn thay i th mc lm vic theo yu cu ring.
ng dn tuyt i v tng i
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 56
Xt cy th bc ca c: trn slide 54, ng dn tuyt i sau s
nhn dng chnh xc file arial.ttf trong th mc 'Fonts' :
c:\Windows\Fonts\arial.ttf
Nu th mc working ca chng trnh hin l c:\Windows\Fonts th ta
c th dng ng dn tng i sau y xc nh file arial.ttf :
arial.ttf
ng dn tuyt i thng di hn ng dn tng i nhng n
lun c gi tr bt chp ng dng ang th mc working no.
ng dn tng i thng gn hn (a s ch cha tn file cn truy
xut v ng dng s thit lp th mc working l th mc cha cc file
m ng dng truy xut) nhng ch c gi tr vi 1 th mc working c
th.
Trong 1 vi trng hp c bit, ta phi dng ng dn tng i
ngay c n di v phc tp hn ng dn tuyt i.
ng dn tuyt i v tng i (tt)
Chng 2 : Th hin d liu trong my tnh s
29
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 57
Hnh dng v cu trc ca 1 h thng file ca 1 thit b cha tin s do
ngi dng thit lp nh cc tc v ph bin nh : to/xa th mc,
to/xa file, copy/move file/th mc t ni ny n ni khc.
Nhng trc khi thc hin 1 tc v no , ngi dng thng duyt file
: lm hin th cu trc ca h thng file 1 dng no quan st n
d dng.
H thng dng nhiu c ch khc nhau bo v vic truy xut file bi
ngi dng. 1 trong cc c ch m Windows XP dng l kt hp vi
mi file 1 s thuc tnh truy xut, mi thuc tnh c lu tr trong 1 bit :
Read Only, nu = 1 th h thng khng cho cc ng dng
xa/hiu chnh phn t.
Hidden, nu = 1 th h thng s du khng hin th phn t bi
cc ng dng duyt file.
Archive c thit lp =1 nu phn t b hiu chnh ni dung
(phc v cho c ch backup tng dn).
2.6 Qun l h thng file
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 58
Tt c tc v lin quan n h thng file c gi l tc v qun l h
thng file.
h thng s cung cp 1 ng dng (tin ch) ngi dng d dng
thc hin cc tc v qun l file. Th d trn Windows ta thng dng
tin ch "Windows Explorer" qun l h thng file.
C 4 cch ph bin chy 1 ng dng (tin ch) :
1. double-click vo icon miu t ng dng trn mn hnh desktop
(phi to icon shortcut chng trnh trc khi dng cch chy ny).
2. duyt v chn ng dng t menu Start.Programs...
3. chy trnh Windows Explorer (t menu
Start.Programs.Accessories.Windows Explorer), duyt th mc tm
file ng dng, n kp chut vo file chy n.
4. vo menu Start.Run, ri nhp hng lnh cha ng dn xc nh
file chng trnh v cc tham s hng lnh.
Tin ch qun l h thng file
Chng 2 : Th hin d liu trong my tnh s
30
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 59
MenuBar cha tt c
tc v m ng dng
h tr
Toolbar cha cc
icon tc v thng
dng
TreeCtrl hin th h
thng file dng cy
ListCtrl hin th cc
phn t trong th mc
StatusBar
Taskbar
Ca s ca WE & cc phn t giao din chnh
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 60
Click vo - thu
nh ni dung th mc
Click vo + chi
tit ha ni dung th
mc.
Nhng tt nht l
double-click vo tn
th mc chi tit
ha/thu nh ni dung
Click vo tn th mc
hin th ni dung
chi tit ca n
Cc thao tc duyt h thng file
Chng 2 : Th hin d liu trong my tnh s
31
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 61
Qui trnh chung thc hin tc
v trn 1 hay nhiu phn t no
l :
1. chn 1 hay nhiu phn t
cn x l.
2. chn option trong menu hay
icon trong toolbar thc hin
tc v mong mun.
Chn nhiu phn t lin tip :
1. chick vo phn t u,
2. n v gi phm Shift,
3. click vo phn t cui.
4. th phm Shift.
Cc tc v x l file
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 62
Chn nhiu phn t ri rc :
1. chick vo phn t u,
2. n v gi phm Ctrl,
3. di mouse n tng phn t
cn chn ri click vo n.
4. lp li bc 3 nhiu ln cho
nhiu phn t
5. th phm Ctrl.
Cc tc v x l file
Chng 2 : Th hin d liu trong my tnh s
32
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 63
Thng vic to file mi c
thc hin bn trong ng
dng. Qui trnh to mi 1
th mc/file trong WE
nh sau :
1. duyt cy th mc
trong ca s bn tri
v chn th mc m
bn mun to th
mc/file mi.
2. chn menu File.New
3. nu mun to th
mc, chn Folder.
4. nu mun to file,
chn loi file trong
danh sch.
To th mc/file mi
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 64
Qui trnh xa 1 th mc/file
trong WE nh sau :
1. duyt cy th mc
trong ca s bn tri v
chn th mc m
bn mun xa th
mc/file.
2. chn cc phn t cn
xa trong ListCtrl bn
phi.
3. chn menu File hay n
phi chut vo v tr
chn cc phn t
hin th menu cc tc
v c th thc hin.
4. chn option "Delete"
Xa th mc/file ang tn ti
Chng 2 : Th hin d liu trong my tnh s
33
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 65
Qui trnh copy th mc/file
trong WE nh sau :
1. duyt cy th mc
trong ca s bn tri v
chn th mc m
bn mun copy th
mc/file.
2. chn cc phn t cn
copy trong ListCtrl bn
phi.
3. chn menu Edit hay n
phi chut vo v tr
chn cc phn t
hin th menu cc tc
v c th thc hin.
4. chn option "Copy"
Copy th mc/file vo clipboard
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 66
Qui trnh dn th mc/file t
clipboard vo th mc
cha nh sau :
1. duyt cy th mc
trong ca s bn tri v
chn th mc m
bn mun dn th
mc/file.
2. chn menu Edit
hin th menu cc tc
v c th thc hin.
3. chn option "Paste"
Dn th mc/file t clipboard
Chng 2 : Th hin d liu trong my tnh s
34
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 67
Vic di chuyn th mc/file c
thc hin bi 3 tc v
copy/paste/delete nh c
trnh by. Qui trnh move th
mc/file khc nh sau :
1. duyt cy th mc trong ca
s bn tri v chn th mc
m bn mun copy
th mc/file.
2. chn cc phn t cn copy
trong ListCtrl bn phi.
3. chn menu Edit hin th
menu cc tc v c th thc
hin.
4. chn option "Move to
Folder" v xc nh th mc
ch.
Di chuyn (move) th mc/file
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 68
Qui trnh chy ng dng v
load file vo b nh
hiu chnh ni dung file
nh sau :
1. duyt cy th mc trong
ca s bn tri v chn
th mc cha file cn
hiu chnh.
2. chn file cn hiu chnh
trong ListCtrl bn phi.
3. n phi chut vo file
chn hin th menu
cc tc v c th thc
hin.
4. chn option "Open with"
v xc nh ng dng
c dng hiu
chnh file.
Load file vo b nh hiu chnh
Chng 2 : Th hin d liu trong my tnh s
35
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 69
Qui trnh lm hin th ca s
thng tin th mc/file nh sau :
1. duyt cy th mc trong
ca s bn tri v chn
th mc/file cn hin th
thng tin.
2. chn th mc/file cn
hin th thng tin trong
ListCtrl bn phi.
3. n phi chut vo file
chn hin th menu
cc tc v c th thc
hin.
4. chn option "Properties"
lm hin th ca s
thng tin ca th mc/file
tng ng.
Hin th ca s thng tin v file/th mc
Chng 2 : Th hin d liu trong my tnh s
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 70
Khi ca s thng tin ca th
mc/file c hin th,
chn trang
general/Version thy
cc thng tin tng ng.
Trang bn phi l trang
General.
1. xem cc thuc tnh file.
2. nu mun thay i
thuc tnh no , n
chut vo checkbox
tng ng. Thuc tnh
s chuyn t khng
thnh c hay ngc li.
3. nu mun cp nht cc
hiu chnh th n chut
vo button OK.
Xem v hiu chnh thuc tnh file/th mc
Chng 2 : Th hin d liu trong my tnh s
36
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 71
MN TIN HC
Chng 3
TNG QUT V LP TRNH
BNG VISUAL BASIC
Chng 3 : Tng qut v lp trnh Visual Basic
3.1 Cc khi nim c bn v m hnh hng i tng
3.2 Cc i tng giao din ca VB 6.0
3.3 Hiu chnh thuc tnh ca cc i tng giao din
3.4 To th tc x l s kin ca cc i tng giao din.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 72
Hnh v sau y tng kt cu trc ca 1 ng dng c lp trnh cu
trc :
Chng trnh = cu trc d liu + gii thut
entry 'start'
global data module
(package)
local data
of module
local data
of function
Chng 3 : Tng qut v lp trnh Visual Basic
3.1 Cc khi nim c bn v m hnh hng i tng
37
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 73
Xt cu trc chng trnh c in ca slide trc, ta thy c 2 nhc im
chnh sau :
1. rt kh m bo tnh nht qun v ng n ca d liu ton cc v
bt k lnh no trong hm no cng c th truy xut chng.
2. nu chng trnh cn ng thi nhiu 'instance' ca cng 1 module
th c ch lp trnh cu trc khng cho php to t ng cc
'instance' ny.
khc phc 2 nhc im chnh trn (v b sung nhiu u im khc),
ta s lp trnh theo hng i tng (OOP - Object Oriented
Programming) trong chng trnh l 1 tp cc i tng sng tng tc
nhau (xem slide k tip).
Visual Basic l ngn ng h tr vic lp trnh theo hng i tng, hn
na VB cn l mi trng lp trnh trc quan (visual) nn rt d dng.
Chng 3 : Tng qut v lp trnh Visual Basic
T lp trnh cu trc n OOP
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 74
Chng trnh = tp cc i tng tng tc nhau
entry
i tng
(object)
local data
of object
local data
of operation
Chng 3 : Tng qut v lp trnh Visual Basic
Cu trc ca 1 ng dng OOP
38
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 75
~ M hnh i tng quan nim chng trnh bao gm cc i tng sinh sng
v tng tc vi nhau.
~ i tng bao gm nhiu thnh phn, mi thnh phn thuc 1 trong 2 loi :
thuc tnh (attribute) : mang 1 gi tr nht nh ti tng thi im.
tc v (operation) : thc hin 1 cng vic no .
Interface
(abstract type)
Implementation
(class)
Chng 3 : Tng qut v lp trnh Visual Basic
i tng (Object)
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 76
Abstract type (type) nh ngha interface s dng i tng. Ta
dng tn nhn dng t tn cho kiu v nhn dng n.
Interface l tp hp cc 'entry' m bn ngoi c th giao tip vi
i tng.
Ta dng signature nh ngha mi 'entry'. Signature gm :
tn tc v (operation, function)
danh sch tham s hnh thc, mi tham s c c t bi 3
thuc tnh : tn, type v chiu di chuyn (IN, OUT, INOUT).
c t chc nng ca tc v (thng dng ch thch).
Ta dng tn ca abstract type (ch khng phi class) c t
kiu cho bin, thuc tnh, tham s hnh thc.
User khng cn quan tm n class (hin thc c th) ca i
tng.
Chng 3 : Tng qut v lp trnh Visual Basic
Kiu tru tng (Abstract type)
39
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 77
~ Ta dng tn nhn dng t tn cho class v nhn dng n.
Class nh ngha chi tit hin thc i tng :
nh ngha cc thuc tnh d liu, mi thuc tnh c c t bi
cc thng tin v n nh tn nhn dng, kiu d liu, tm vc truy
xut,... Kiu ca thuc tnh c th l type c in (s nguyn, thc,
k t, chui k t,...) hay 'abstract type', trong trng hp sau thuc
tnh s l tham kho n i tng khc. Trng thi ca i tng
l tp gi tr ti thi im tng ng ca tt c thuc tnh ca i
tng. Trong thi gian tn ti v hot ng, trng ti ca i tng
s thay i.
'coding' cc tc v (miu t gii thut chi tit v hot ng ca tc
v) v cc 'internal function'.
~ nh ngha cc tc v to (create) v xa (delete) i tng.
~ nh ngha cc tc v 'constructor' v 'destructor'.
~ User khng cn quan tm n class ca i tng.
Chng 3 : Tng qut v lp trnh Visual Basic
Class (Implementation)
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 78
~ Bao ng : che du mi chi tit hin thc ca i tng, khng
cho bn ngoi thy v truy xut m bo tnh c lp cao
gia cc i tng, ngha l ph thuc (hay tnh ghp ni -
coupling gia cc i tng) rt thp, nh d bo tr, pht
trin ng dng :
che du cc thuc tnh d liu : nu cn cho php truy xut
1 thuc tnh no t bn ngoi, ta to 2 tc v get/set
tng ng gim st vic truy xut v che du chi tit
hin thc bn trong.
che du chi tit hin thc cc tc v.
che du cc 'internal function' v s hin thc ca chng.
Chng 3 : Tng qut v lp trnh Visual Basic
Tnh bao ng (encapsulation)
40
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 79
~ Vit 1 ng dng OOP l nh ngha cc type/class ca cc i
tng cu thnh ng dng.
~ Tnh tha k cho php gim nh cng sc nh ngha type/class :
ta c th nh ngha cc type/class khng phi t u m bng
cch k tha cc type/class c sn, ta ch nh ngha thm cc
chi tit mi m thi (thng kh t).
a tha k hay n tha k.
Mi quan h supertype/subtype v superclass/subclass.
c th 'override' s hin thc cc tc v ca class cha, kt
qu override ch c tc dng trn cc i tng ca class
con.
i tng ca class con c th ng vai tr ca i tng cha
nhng ngc li th khng ng.
Chng 3 : Tng qut v lp trnh Visual Basic
Tnh tha k (inheritance)
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 80
1 i tng c th cha nhiu i tng khc nh mi quan h
bao gp 1 cch qui gia cc i tng.
C 2 gc nhn v tnh bao gp : ng ngha v hin thc.
Gc nhn ng ngha
Gc nhn hin thc
O
1
O
2
O
3
O
1
O
2
O
3
O
4
O
5
O
4
O
5
Chng 3 : Tng qut v lp trnh Visual Basic
Tnh bao gp (aggregation)
41
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 81
~ Thng ip l 1 php gi tc v ca 1 i tng t 1 tham kho.
~ Thng ip bao gm 3 phn :
tham kho n i tng ch.
tn tc v mun gi.
danh sch tham s thc cn truyn theo (hay nhn v t) tc
v.
v d : aCircle.Draw (pWnd)
truy xut thuc tnh trong interface :
aCircle.Radius = 10 aCircle.SetRadius(10)
r = aCircle.Radius r = aCircle.GetRadius()
~ Thng ip l phng tin giao tip (hay tng tc) duy nht gia
cc i tng.
Chng 3 : Tng qut v lp trnh Visual Basic
Thng ip (Message)
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 82
Xem li slide 15 miu t qui trnh tng qut ca vic dng my tnh
gii quyt 1 vn ngoi i, ta thy 1 ng dng gm 2 phn
thnh phn chnh :
1. giao din ngi dng : l phng tin cho ngi dng tng
tc vi chng trnh nhp/xut d liu, iu khin/gim
st hot ng ca chng trnh. Trong OOP, giao din ngi
dng l tp cc i tng giao din nh form, mi form cha
nhiu i tng nh hn nh menu, toolbar, button, textedit,
listbox, treeview...
2. gii thut x l bn trong : c th hin bi cc method
ca cc i tng giao din v cc i tng bn trong ng
dng. Mi method l danh sch cc lnh thc thi (cu trc
iu khin) miu t gii thut m tc v tng ng thc
hin.
Chng 3 : Tng qut v lp trnh Visual Basic
Hai thnh phn chnh ca 1 ng dng
42
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 83
nh ngha cc i tng giao din bng cch vit code tng minh l 1
cng vic rt kh khn v tn nhiu cng sc, thi gian.
gim nh cng sc nh ngha cc i tng giao din, cc mi
trng lp trnh trc quan (visual) vit sn 1 s i tng giao din
thng dng v cung cp cng c ngi lp trnh thit k trc quan
giao din ca ng dng bng cch tch hp cc i tng giao din c
sn ny : ngi lp trnh ng vai tr ha s v/hiu chnh kch thc,
di chuyn v tr cc phn t giao din cn cho ng dng.
Ngoi ra mi trng trc quan cn cho php ngi lp trnh t to cc
i tng giao din mi (ActiveX Control) dng trong cc ng dng
c vit sau . Qui trnh vit ng dng theo c ch ny c gi l
vit ng dng bng cch lp ghp cc linh kin phn mm, n ging
nh vic lp my tnh t cc linh kin phn cng nh CPU, RAM, disk,
keyboard, monitor,...rt d dng v nhanh chng.
Chng 3 : Tng qut v lp trnh Visual Basic
Thit k trc quan cc i tng giao din
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 84
Control buttons
Window Form,
Dialogbox
Title bar
Textbox
Command Button
Chng 3 : Tng qut v lp trnh Visual Basic
3.2 Cc i tng giao din c trong VB
43
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 85
Label
DriveListBox
Combobox
Textbox + ListBox
DirListBox
FileListBox ListBox
Image Picture
Chng 3 : Tng qut v lp trnh Visual Basic
Cc i tng giao din c trong VB (tt)
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 86
Frame
OptionButton
Checkbox
Chng 3 : Tng qut v lp trnh Visual Basic
Cc i tng giao din c trong VB (tt)
44
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 87
MenuBar
Toolbar
CommandButton
Pop-up Menu
1 window cha 1
document ca ng
dng
StatusBar
Chng 3 : Tng qut v lp trnh Visual Basic
Cc i tng giao din c trong VB (tt)
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 88
i tng giao din c nhng tnh cht ging nh i tng bnh thng,
ngoi ra chng cn c 1 s c im ring.
i tng giao din cng c cu thnh t 2 loi thnh phn : thuc tnh
v tc v.
Mi i tng giao din cha kh nhiu thuc tnh lin quan n nhiu loi
trng thi khc nhau :
thuc tnh 'Name' : y l thuc tnh c bit, xc nh tn nhn dng
ca i tng, gi tr ca thuc tnh ny s tr thnh bin tham kho
n i tng, code ca ng dng s dng bin ny truy xut i
tng.
cc thuc tnh xc nh v tr v kch thc : Left, Top, Height, Width...
cc thuc tnh xc nh tnh cht hin th : Caption, Picture,
BackColor,...
cc thuc tnh xc nh hnh vi : Enable, ...
...
Chng 3 : Tng qut v lp trnh Visual Basic
Cc tnh cht chung ca cc i tng giao din
45
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 89
Khi to trc quan 1 i tng giao din, mi trng
gn gi tr ban u cho cc thuc tnh, thng
ta ch cn thay i 1 vi thuc tnh l p ng
c yu cu ring. C 2 cch hiu chnh gi
tr 1 thuc tnh :
1. trc quan thng qua ca s thuc tnh ca i
tng giao din.
2. lp trnh truy xut thuc tnh ca i tng
giao din.
Chng 3 : Tng qut v lp trnh Visual Basic
3.3 Hiu chnh thuc tnh ca cc i tng giao din
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 90
Mi i tng giao din c
kh nhiu tc v (operation),
hu ht chng c gi l
th tc x l s kin v c
ch gi th tc ny ch yu
l trc tip t ngi dng ng
dng thng qua s tng tc
trc tip vi i tng, t
to s kin kch khi th tc
x l tng ng chy.
Th d khi ta n chut vo
button tn "Command1", h
thng to ra s kin "Click"
kch khi th tc
Command1_Click() chy.
Chng 3 : Tng qut v lp trnh Visual Basic
3.4 S kin - Th tc x l s kin
46
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 91
Qui trnh tng qut ca vic to
th tc x l cho 1 s kin
no ca 1 i tng :
1. chn menu View.Code
hin th ca s code.
2. chn tn i tng lin
quan trong danh sch cc
i tng.
3. chn s kin cn to th
tc x l trong danh sch
cc s kin, template ca
th tc x l s c to t
ng.
4. s dng kin thc v gii
thut & c php ngn ng
VB vit code cho th
tc x l.
Chng 3 : Tng qut v lp trnh Visual Basic
Cch to hm x l s kin ca i tng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 92
1. Trc ht phi nm bt yu cu phn mm xc nh cc chc
nng m ng dng phi cung cp cho ngi dng.
2. Phn tch s lc tng chc nng v tm ra cc class phn tch cu
thnh chc nng tng ng.
3. Thit k chi tit cc class phn tch : xc nh cc thuc tnh v cc
tc v cng nh phc ha gii thut ca tng tc v.
4. Hin thc phn mm bng VB gm 2 cng vic chnh :
1. thit k trc quan cc form giao din ngi dng : mi form
cha nhiu phn t giao din, cc phn t giao din thng c
sn, nu khng ta phi to thm 1 s i tng giao din mi
(ActiveX Control). ng vi mi phn t giao din va to ra, nn
thit lp gi tr u cho thuc tnh "Name" v 1 vi thuc tnh cn
thit.
2. to th tc x l s kin cho cc s kin cn thit trn cc phn
t giao din ri vit code cho tng th tc x l s kin va to ra.
Chng 3 : Tng qut v lp trnh Visual Basic
Tng kt qui trnh vit 1 ng dng bng VB
47
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 93
Chng 4
QUI TRNH THIT K TRC QUAN
GIAO DIN CA NG DNG
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
MN TIN HC
4.1 D n V ng Dng
4.2 To/xa i tng giao din.
4.3 Hiu chnh gi tr thuc tnh ca i tng giao din
4.4 To menubar
4.5 To Toolbar
4.6 To v vit th tc x l s kin
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 94
4.1 D n V ng Dng
1 ng dng VB c cu thnh t nhiu i tng thuc nhiu loi :
Cc phn t giao din
Cc "class module", mi class c t 1 loi i tng cn dng cho
gii thut ca chng trnh.
Cc i tng khc nh cc th vin lin kt ng, cc database,...
qun l ng dng c d dng ta s dng phng tin "D n"
(Project). D n l 1 cy th bc cc phn t cu thnh ng dng. Vit
ng dng l qui trnh to d n, thm/bt, hiu chnh tng phn t trong
d n.
Thao tc thc hin cc tc v trn kh ging vi cc thao tc m ta
bit trn h thng file th bc ca my tnh.
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
48
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 95
Khi ng VB 6.0
VB l 1 ng dng nh bao ng dng khc. khi ng 1 ng dng,
ta c nhiu cch khau nhau :
chn menu Start.Programs.Microsoft Visual Basic
6.0.Microsoft Visual Basic 6.0.
n kp chut vo icon shortcut ca VB trn mn hnh desktop
(ta phi to trc icon shortcut ny).
chn menu Start.Run, ri nhp hng lnh chy ng dng, th d
nh "c:\Program Files\Microsoft Visual Studio\VB98\VB6.exe".
dng trnh qun l h thng file WE, duyt n th mc cha
file chng trnh VB (th d c:\Program Files\Microsoft Visual
Studio\VB98), n kp vo file chng trnh VB6.exe.
Sau khi VB c khi ng, ta thng thy ca s mn hnh nh
sau:
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 96
Ca s khi ng VB
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
49
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 97
To mi d n
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Ca s New Project ca VB c ba th (Tab) :
New : to mi mt d n (tab ny c chn default)
Existing : M 1 d n c sn trn my (d n c no ).
Recent : M 1 d n trong n d n gn hin ti nht.
Vi tab New c chn, bn c th to 1 d n theo 1 loi no ,
nhng i vi cc ng dng thng thng ta s dng loi d n
"Standard EXE". n kp vo icon "Standard EXE" to mi d n
tng ng. 1 form mi c to ra t ng bn c th thit k trc
quan form giao din ny.
Qui trnh thit k giao din l tun t thit k tng form theo yu cu,
nu mun to mi 1 form khc (hay 1 i tng no vo d n),
bn n kp chut vo ca s Project, di chut n menu "Add", ri
chn mc "Form" trong danh sch.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 98
Control buttons
Window Form,
Dialogbox
Title bar
Menu
Toolbar
Textbox
Command Button
Th d v form thit k : MiniCalculator
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
50
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 99
4.2 To 1 i tng giao din trn form
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
hin th v lm vic trc quan vi 1 form, n kp chut vo mc
tn form trong ca s Project.
to mi 1 i tng giao din trong form, dng chut chn icon
tng ng vi i tng trong ca s Toolbox ri v i tng v tr
v kch thc mong mun trn form.
Bn cng c th to mi i tng giao din dng c ch sinh sn v
tnh : chn i tng c, n button Copy trn Toolbar ri n button
Past trn Toolbar, i tng mi sinh ra ging y nh i tng c sn
(nn t li tn khc bng cch chn button "No" trong hp thoi yu
cu sau khi n icon Past). y l 1 trong nhiu cch to nhiu i
tng c kch thc ging ht nhau.
Th d slide sau miu t trng thi ca form sau khi ta v c 1 textbox
hin th s v 5 button bn tri nht ca my tnh.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 100
d cn chnh v tr
v kch thc ca cc
i tng, ta nn thit
lp cc thuc tnh c
bn sau : "Name",
"Caption". Thuc tnh
"Name" c dng
truy xut i tng lc
lp trnh, cn thuc
tnh "Caption" c
hin th trn phn t
(khng phi i tng
no cng c Caption).
4.3 Thit lp gi tr cho cc thuc tnh
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
51
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 101
xem v hiu chnh
gi tr ca cc thuc
tnh ca 1 i tng
giao din, bn n
chut chn i tng,
ca s Properties bn
phi mn hnh s
hin th cc thuc tnh
ca i tng c
chn. Bn duyt cc
thuc tnh t trn
xung v nhp vo
gi tr mi cho thuc
tnh mong mun.
Thit lp gi tr cho cc thuc tnh (tt)
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 102
Nu v bng tay tun t cc i tng th kh lng m bo kch thc ca chng
bng nhau, do bn nn dng c ch sinh sn v tnh (Copy-Paste). Tuy nhin
nu l to bng tay cc i tng ri th lm kch thc nhiu i tng ging y
nhau, bn chn cc i tng ri chn menu Format.Make Same Size.Both (bng
kch thc ca i tng c chn cui cng).
Cn chnh kch thc cc i tng
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
52
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 103
Tng t, nu v bng tay tun t cc i tng th kh lng m bo khong
cch gia chng u nhau. khong cch dc gia cc i tng u nhau, bn
chn cc i tng ri chn menu Format.Vertical Spacing.Make Equal (c nh v
tr 2 i tng xa nht theo chiu dc ri chnh dc cc i tng cn li).
ng chnh v tr cc i tng
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 104
Kt qu tm thi ca form MiniCalculator
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Vi qui trnh to i
tng, thit lp cc
thuc tnh cn thit v
chnh dng cc i
tng giao din nh
c trnh by, bn
tip tc to cc i
tng cn li ca form
MiniCalculator. Kt qu
nh sau :
53
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 105
Danh sch thuc tnh cc i tng
Caption = , Name = cmdMemStatus
Caption = MC, Name = cmdMC
Caption = MR, Name = cmdMR
Caption = MS, Name = cmdMS
Caption = MA, Name = cmdMA
Caption = 0, Name = cmd0
Caption = 1, Name = cmd1
Caption = 2, Name = cmd2
Caption = 3, Name = cmd3
Caption = 4, Name = cmd4
Caption = 5, Name = cmd5
Caption = 6, Name = cmd6
Caption = 7, Name = cmd7
Caption = 8, Name = cmd8
Caption = 9, Name = cmd9
Caption = +, Name = cmdAdd
Caption = -, Name = cmdSub
Caption = *, Name = cmdMul
Caption = /, Name = cmdDiv
Caption = +/-, Name = cmdPosNeg
Caption = ., Name = cmdPoint
Caption = =, Name = cmdEqual
Caption = 1/x, Name = cmd1x
Caption = %, Name = cmdPercent
Caption = sqrt, Name = cmdSqrt
Caption = C, Name = cmdC
Caption = CE, Name = cmdCE
Caption = Backspace, Name =
cmdBack
Text = 0., Name = txtDisplay
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Danh sch gi tr cc thuc tnh c thit lp cho cc i tng (s c tham
kho bi code chng trnh c vit sau) :
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 106
4.4 Thit k menu bar cho form giao din
Gi s form MiniCalculator cn c 1 h thng menu nh sau :
to menu bar cho 1 form no
, ta hin th ca s cha form
(n kp mc tn form trong
ca s Project cha cy th bc
cc phn t) ri chn menu
Tools.Menu Bar... Ca s trong
slide sau s hin ln :
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
54
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 107
Dng Menu Editor thit k menu bar
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
VB lun to sn 1 mc mi trng
hng cui ca danh sch. Thm 1
phn t mi l chn mc mi ny v
nhp t nht 2 thuc tnh Caption v
Name ca n.
Button Next cho php di mc chn
xung 1 hng.
Button Insert cho php chn 1 mc
trng vo trc mc c chn hin
hnh.
Button Delete cho php xa mc
c chn.
Cc button , cho php di mc
c chn i ln hay xung 1 v tr.
Cc button , cho php di mc
c chn v thm hay ra bt 1 cp
trong h thng cy phn cp menu.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 108
Dng Menu Editor thit k menu bar (tt)
Da vo c t menu bar ca slide trc y, nhp ln lt cc mc sau :
Caption = File, Name = mnuFile
Caption = Copy, Name = mnuFileCopy, n button v thm 1 cp
Caption = Paste, Name = mnuFilePaste
Caption = View, Name = mnuView, n button ra 1 cp
Caption = Standard, Name = mnuViewStand, n button v thm 1
cp
Caption = Scientific, Name = mnuViewScien
Caption = -, Name = mnuViewBar
Caption = Digital grouping, Name = mnuViewDigital
Caption = Help, Name = mnuHelp, n button ra 1 cp
Caption = Help Topics, Name = mnuHelpTopics, n button v thm 1
cp
Caption = -, Name = mnuHelpBar
Caption = About MiniCalculator, Name = mnuHelpAbout.
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
55
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 109
Dng Menu Editor thit k menu bar (tt)
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Sau khi c t xong menu, ca
s menu editor c dng nh
sau. Lu lc ny bn vn
cha thy menu 1 cch trc
quan :
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 110
Kt qu ca hot ng thit k menubar
Sau khi to menu xong,
hy n nt OK ng
tin ch "Menu Editor",
form giao din ca
chng trnh s ging
nh hnh bn :
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
56
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 111
to Toolbar cho 1 form trong project, trc ht ta phi thm tp cc iu
khin "Window Common Controls 6.0" vo ca s Toolbox ca project :
4.5 Thit k Toolbar cho form giao din
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
1. n phi chut vo v tr
trng ca Toolbox, chn
mc Components
2. chn tab Controls, duyt v chn mc tng ng, chn OK.
3. cc
icon
mi
c
thm
vo
Tool-
box
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 112
Qui trnh to Toolbar ca form
Toolbar l 1 ca s cha nhiu button (icon), mi button cho php
thc hin 1 chc nng ca ng dng. Cc button c kch thc
u nhau, nn kt hp 1 nh bitmap vi tng button, ni dung nh
lm sao gi cho ngi dng v chc nng tng ng (th d nh
dng ci ko gi chc nng Cut,...).
1. Cng vic u tin cn thc hin l dng 1 trnh son tho ha
(Paint, CorelDraw,...) thit k (v) tng nh bitmap gi cho
tng button trong Toolbar. Bn c th dng trnh "Screen Capture"
ct cc icon c sn ca ng dng ang chy v dn vo vng
son tho nh ca trnh son tho ha. Sau khi son xong 1
nh, ta ct nh ln file dng *.bmp. Lu rng cc nh phi c
cng kch thc (th d 16*16, 20*20,32*32,...). Slide k miu t
ca s ca trnh son tho ha Paint.
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
57
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 113
V nh cho button bng trnh Paint
son tho 1 button l v tng pixel nh.
d v, bn nn phng to nh ln
khong 400% tr ln.
trc khi v 1 pixel, hy chn mu v
thch hp.
sau khi v xong, dng menu File.Save
As ct nh ln file thch hp :
copy.bmp
paste.bmp
standard.bmp
scientific.bmp
help.bmp
about.bmp
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 114
2. Dng qui trnh to phn t giao
din trong form nh gii
thiu to 1 i tng
ImageList, i tng ny s
cha cc nh bitmap c
dng cho cc icon Toolbar, v
tr v kch thc ca i tng
ImageList khng quan trng v
n s b n khi chng trnh
chy.
2.1 n phi chut vo i tng
ImageList ri chn mc
Properties hin th ca s
"Properties Page" ca i
tng ImageList.
Qui trnh to Toolbar ca form (tt)
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
58
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 115
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Qui trnh to Toolbar ca form (tt)
2.2 chn tab General, chn checkbox Custom ri nhp kch thc ca
button Toolbar vo 2 field Height v Width.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 116
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Qui trnh to Toolbar ca form (tt)
2.3 chn tab Images ri thm tng nh button vo ImageList bng trnh
t : n Insert Picture, duyt v chn file image, nhp gi tr cho field
Key. truy xut nh button, ta dng hoc thuc tnh Index hoc
thuc tnh Key (tn gi nh).
59
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 117
2.4 sau 6 ln insert
icon vo
ImageList, ta c
kt qu nh hnh
bn. Bn c th
chn li tng icon
kim tra/hiu
chnh cc thuc
tnh ca n.
Qui trnh to Toolbar ca form (tt)
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 118
Qui trnh to Toolbar ca form (tt)
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
3. To 1 i tng Toolbar, v tr v kch thc ca i tng ny khng
quan trng v n s lun c xp ngay di menubar.
60
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 119
Qui trnh to Toolbar ca form (tt)
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
3.1 M ca s thuc tnh ca
Toolbar, chn tab
General, chn ImageList
kt hp vi Toolbar trong
listbox ImageList. Nu
mun hnh nh ca tng
icon khc nhau cho tng
trng thi (cha chn,
c chn, b cm), bn
phi to 2 ImageList khc
: HotImageList (trng thi
c chn) v
DisableImageList (trng
thi b cm).
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 120
Qui trnh to Toolbar ca form (tt)
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
3.2 Chn tab Buttons, thm
tng button vo Toolbar
v thit lp thuc tnh ca
n bng trnh t cc hot
ng sau :
n Insert Button
thm button mi,
nhp gi tr thuc tnh
"Key",
nhp ch s "Images"
trong ImageList c
dng cho button,
nhp tr cho thuc tnh
"ToolTipText"...
61
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 121
Qui trnh to Toolbar ca form (tt)
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
3.3 sau khi thm 6 button vo Toolbar th Toolbar c dng sau :
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 122
Ghi ch v qui trnh to giao din
Thng th form giao din nh MiniCalculator khng cn cha
menubar v Toolbar. Giao din dng ny c gi l Dialog
based.
Cn 2 dng giao din ng dng ph bin khc l :
SDI (Single Document Interface) : ca s ca chng trnh gm
1 menubar, 1 hay nhiu Toolbar v 1 ca s lm vic duy nht.
Tng thi im, ca s lm vic ny s cho php hin th/hiu
chnh 1 document ca ng dng.
v MDI (Multiple Document Interface) : ca s ca chng trnh
gm 1 menubar, 1 hay nhiu Toolbar v n ca s lm vic khc
nhau, mi ca s lm vic s cho php hin th/hiu chnh 1
document ca ng dng.
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
62
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 123
Giao din SDI (Single Document Interface)
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Menubar
Toolbar
Working
region
(ti tng
thi im
ch c 1
x l 1
document
ca ng
dng)
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 124
Giao din MDI (Multiple Document Interface)
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Menubar
Toolbar
Working
region
(ti tng
thi im
c th m
n ca s
x l n
document
khc
nhau)
63
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 125
Ghi ch v qui trnh to giao din (tt)
to giao din trc quan ca cc ng dng SDI v MDI c d
dng, VB cung cp cho ngi dng 1 dng Project tn l "VB
Application Wizard".
Chn dng Project ny khi to Project, VB s hng dn ngi
dng to ra cc phn t giao din rt d dng, trong 2 i
tng c bn l menubar v Toolbar c VB to t ng, ngi
lp trnh ch cn hiu chnh li theo yu cu ring.
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 126
4.6 To th tc x l s kin cho cc i tng giao din
Sau khi thit k trc quan giao din ca ng dng theo yu cu, bn s to
cc th tc x l s kin cn thit cho tng i tng giao din.
to th tc x l cho 1 option trong menu, bn chn menu tng ng, di
chut v option cn to th tc ri chn n, template ca th tc s c to ra.
Cc chng ti s gii thiu c php VB bn c th vit code cho th tc.
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
64
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 127
To th tc x l s kin cho cc i tng giao din (tt)
to th tc x l cho 1 button trong Toolbar, bn n kp chut vo button ,
template ca th tc s c to ra (lu ch c 1 th tc x l cho tt c cc
button trong 1 Toolbar, th tc ny s da vo thuc tnh Button.Key bit
button no c chn).
to th tc x l cho 1 command button, bn n kp chut vo command
button , template ca th tc s c to ra :
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 128
To th tc x l s kin cho cc i tng giao din (tt)
Cch tng qut to th tc x l s kin l m ca s code (View.Code),
chn tn i tng trong danh sch ri chn s kin cn x l, th tc x l
tng ng s c to ra :
Chng 4: Qui trnh thit k trc quan giao din ca ng dng
65
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 129
Chng 5
CC KIU D LIU TRONG VB
Chng 5 : Cc kiu d liu trong VB
MN TIN HC
5.1 Bin d liu & nh ngha bin
5.2 Cc kiu d liu nh sn ca VB 6.0.
5.3 Vic dng & to class i tng
5.4 Cc tnh cht chnh yu ca bin d liu
5.5 Hng gi nh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 130
5.1 Bin d liu
Mi ng dng thng x l nhiu d liu, ta dng khi nim "bin" lu
tr d liu trong b nh my tnh, mi bin lu tr 1 d liu ca chng
trnh.
Mc d VB khng i hi, nhng ta nn nh ngha r rng tng bin
trc khi truy xut n code ca chng trnh c trong sng, d
hiu, d bo tr v pht trin.
nh ngha 1 bin l :
nh ngha tn nhn dng cho bin,
kt hp kiu vi bin xc nh cu trc d liu ca bin,
nh ngha tm vc truy xut bin.
C php n gin ca lnh nh ngha bin :
[Static|Public|Private|Dim] AVariable As Type
ti tng thi im, bin cha 1 gi tr (ni dung) c th. Theo thi gian
ni dung ca bin s b thay i theo tnh cht x l ca code.
Chng 5 : Cc kiu d liu trong VB
66
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 131
nh ngha tn bin
Cch t tn cho 1 bin (hay cho bt k phn t trong chng trnh):
Tn bin c th di n 255 k t,
K t u tin phi l mt k t ch (letter),
Cc k t tip theo c th l cc k t ch (letter), k s (digit), du
gch di,
Tn bin khng c cha cc k t c bit nh cc k t : ^, &, ),
(,%, $, #, @, !, ~, +, -, *,
VB khng phn bit ch HOA hay ch thng trong tn bin.
V d: Tn bin hp l Tn bin khng hp l
+ Base1_ball + Base.1 : v c du chm
+ ThisIsLongButOk + Base&1 : v c du &
+ 1Base_Ball : k t u l 1 s
Nn chn tn bin ngn gn nhng th hin r ngha. V d: Ta mun
c mt bin lu h s li sut ngn hng (Interest Rate), ta nn dng
tn bin l: InterestRate hoc Irate ch khng nn dng tn bin l IR
Chng 5 : Cc kiu d liu trong VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 132
nh ngha tn bin (tt)
Vi v d trc, dng lnh sau y:
IterestRateEarned = Total*InterestRate
s d hiu hn dng lnh
IE = T*IR
Khi vit tn bin ta nn vit hoa ch u tin ca mt t c
ngha.
V d : InterestRate s d c hn interestrate hay
iNTERestRaTe
Khng c dng tn bin trng vi cc t kho nh : Print, Sub,
End(t kha l nhng t m ngn ng VB dng cho nhng
thnh phn xc nh ca ngn ng)
Chng 5 : Cc kiu d liu trong VB
67
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 133
5.2 Cc kiu d liu c bn nh sn ca VB
Byte : 1 byte, 0 to 255
Boolean : 2 bytes, True or False
Integer : 2 bytes, -32,768 to 32,767
Long (long integer) : 4 bytes
-2,147,483,648 to 2,147,483,647
Single (single-precision floating-point) :4 bytes
-3.402823E38 to -1.401298E-45 ;1.401298E-45 to 3.402823E38
Double (double-precision floating-point) : 8 bytes
-1.79769313486231E308 to -4.94065645841247E-324;
4.94065645841247E-324 to 1.79769313486232E308
Currency (scaled integer) : 8 bytes
-922,337,203,685,477.5808 to 922,337,203,685,477.5807
Chng 5 : Cc kiu d liu trong VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 134
Cc kiu d liu c bn nh sn ca VB (tt)
Chng 5 : Cc kiu d liu trong VB
Decimal : 14 bytes
+/-79,228,162,514,264,337,593,543,950,335 (khng c du chm thp phn)
+/-7.9228162514264337593543950335 (c 28 k s bn phi du chm)
+/-0.0000000000000000000000000001 l s khc 0 nh nht.
Date : 8 bytes; t January 1, 100 ti December 31, 9999
Object : 4 bytes; cha tham kho n bt k i tng no
String (variable-length) : 10 bytes + di ca chui
0 ti 2G k t
String*n (fixed-length) : chui c di c nh
1 ti 65,400 k t
Variant (with numbers) : 16 bytes
Bt k s no nm trong phm vi kiu Double
Variant (with characters) : 22 bytes + di chui
cng di nh kiu String
User-defined (using Type) : kiu do ngi dng nh ngha (record)
gm nhiu field, mi field c kiu ring theo yu cu.
68
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 135
Cc kiu d liu c bn nh sn ca VB (tt)
Chng 5 : Cc kiu d liu trong VB
Array : dy nhiu phn t c cu trc d liu ng nht, mi phn t c truy
xut c lp nh ch s ca n trong dy.
V d : Dim vector(10) As Integer
nh ngha bin vector l 1 dy gm 10 phn t nguyn, vector(i) l tn nhn
dng ca phn t th i ca dy ny.
Ngoi cc kiu d liu nh sn, VB cn cung cp cho ngi lp trnh 1 phng
tin h c th nh ngha bt k kiu d liu cha cung cp sn nhng li cn
thit cho ng dng ca h, ta gi cc kiu ny l kiu do ngi dng nh
ngha. Th d sau y l pht biu nh ngha kiu miu t cc thng tin chnh v
my tnh c nhn :
Type SystemInfo
CPU As Variant
Memory As Long
DiskDrives(25) As String ' Fixed-size array.
VideoColors As Integer
Cost As Currency
PurchaseDate As Variant
End Type
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 136
c tnh chi tit v kiu String
Kiu String (chui k t) :
String l kiu d liu c dng lu tr chui cc k t ( di bt
k)
Gi tr chui k t c t trong cp du nhy kp (vd : "Mn Tin hc")
Trn l thuyt, mt bin thuc kiu String c th lu tr c n 2 t
k t nhng trong thc t, di ca chui b hn ch theo dung lng
b nh ca my tnh.
C th thc hin c cc php ton ni kt chui (+,&) trn cc chui
k t v c kh nhiu hm x l chui c sn.
C th nh ngha mt bin thuc kiu String nh sau :
Dim AStringVariable As String
Dim AStringVariable As String*100
Hay Dim AStringVariable$
Tip v ng $ i sau tn bin dng khai bo mt bin thuc kiu
String (nhng ta khng nn dng cch ny v ti ngha, kh bo tr).
Chng 5 : Cc kiu d liu trong VB
69
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 137
c tnh chi tit v kiu Integer
Kiu Integer (S nguyn) :
Integer l kiu d liu c dng lu tr cc s nguyn ngn nm
trong khong t - 32768 n 32767.
S nguyn c lu tr trong b nh bng 2 byte.
C th thc hin c cc php ton s hc (nh +,-,*,/,...) trn cc
d liu thuc kiu Integer.
Khai bo mt bin thuc kiu Integer nh sau :
Dim AnIntegerVariable As Integer
Hay Dim AnIntegerVariable%
Tip v ng % i sau tn bin c dng khai bo mt bin thuc
kiu Integer.
Vd: Dim Age As Integer
...
Age = 24
Chng 5 : Cc kiu d liu trong VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 138
c tnh chi tit v kiu Long
Kiu Long (S nguyn di) :
Dng lu tr cc s nguyn ln nm trong khong t :
-2,147,483,648 n 2,147,483,647
S nguyn di c lu tr trong b nh bng 4 byte.
C th thc hin c cc php ton s hc (nh +,-,*,/,...) trn cc
d liu thuc kiu Long.
Khai bo mt bin thuc kiu Long nh sau :
Dim ALongIntegerVariable As Long
Hay Dim AnIntegerVariable&
Tip v ng & i sau tn bin c dng khai bo mt bin thuc
kiu Long.
Vd: Dim EarthAge As Long
...
EarthAge = 3276979
Chng 5 : Cc kiu d liu trong VB
70
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 139
c tnh chi tit v kiu Byte
Kiu Byte (S nguyn dng nh) :
Dng lu tr cc s nguyn khng m nm trong tm tr t :
0 n 255
Chim 1 byte trong b nh.
C th thc hin c cc php ton s hc (nh +,-,*,/,...) trn
cc d liu thuc kiu Byte.
Kiu d liu ny rt hiu dng trong vic lu tr cc s nguyn
nh v n chim t b nh, tc x l nhanh.
V d: Khi cn lu tui ca mt ngi chng ta khng nn dng
kiu Integer hay Long m nn dng kiu Byte v tui ca mt
ngi lun l mt s khng m, c gi tr ti a thng nh hn
120.
Chng 5 : Cc kiu d liu trong VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 140
c tnh chi tit v kiu Boolean
Kiu Byte (tt) :
Khai bo cho mt bin thuc kiu Byte nh sau :
Dim AByteVariable As Byte 'khng c tip v ng
V d:
Dim Age As Byte
...
Age = 100
Kiu Boolean (gi tr lun l) :
L kiu d liu lu tr hai gi tr lun l True/False.
c lu tr trong my tnh bng 2 byte.
Khai bo
Dim ABooleanVariable As Boolean
Chng 5 : Cc kiu d liu trong VB
71
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 141
c tnh chi tit v kiu Single
Kiu Single (s thc c chnh xc n - Single Precision) :
Lu tr cc s thc c chnh xc n (gn ng vi gi tr gc vi chnh
xc mc 7 ch s)
V d s 1234.567 th k s 7 (bn phi nht) c th khng chnh xc.
Kiu d liu ny chim 4 byte trong b nh v miu t cc gi tr trong phm vi :
T -3.402823E38 n -1.401298E-45 cho cc gi tr m
v t 1.401298E-45 n 3.402823E38 cho cc gi tr dng
C th thc hin cc php ton s hc trn kiu d liu ny nhng thng chm
hn so vI cc bin thuc kiu Integer hay Long. Do cch cha s Single ch
mc gn ng nn cc php ton trn cc d liu thuc kiu ny s to kt qu
gn ng (nhng dng trong i a s yu cu thc t).
Khai bo nh sau :
Dim ASingleVariable As Single
Hay Dim ASingleVariable! 'Tip v ng l du !
V d:
Dim InterestRate As Single, Earned!, Total As Single
Earned = InterestRate * Total
Chng 5 : Cc kiu d liu trong VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 142
c tnh chi tit v kiu Double
Kiu Double (s thc c chnh xc kp - Double Precision) :
Lu tr cc s thc c chnh xc kp (gn ng vi gi tr gc vi chnh
xc mc 16 ch s).
V d s 1234.57890123456 th k s bn phi nht (6) c th khng chnh xc.
Kiu d liu ny chim 8 byte trong b nh v miu t cc gi tr trong phm vi :
-1.797693234862232E308 n -4.94065645841247E-324
v 4.94065645841247E-324 n 1.797693234862232E308
C th thc hin cc php ton s hc trn kiu d liu ny nhng rt chm
(chm hn c kiu Single). Do cch cha s Double ch mc gn ng nn
cc php ton trn cc d liu thuc kiu ny s to kt qu gn ng (nhng
qu dng trong i a s yu cu thc t).
Khai bo nh sau :
Dim ADoubleVariable As Double
Hay Dim ADoubleVariable# Tip v ng l du #
V d:
Dim InterestRate As Double, Earned#, Total As Double
Earned = InterestRate * Total
Chng 5 : Cc kiu d liu trong VB
72
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 143
c tnh chi tit v kiu Currency
Kiu Currency (Tin T)
Kiu Currency c dng lu cc d liu thuc kiu tin t (s lng
tin).
c lu tr trong b nh bng 8 byte.
C th c 4 ch s bn phi du chm thp phn v 15 ch s bn
tri du thp phn.
C tm tr: - 922337203685477.5808 n 922337203685477.5807
C th thc hin c cc php ton s hc trn kiu d liu ny nhng
tc x l rt chm nh i vi cc s thc c chnh xc kp, song
n l kiu d liu a dng cho cc php tnh ti chnh.
Khai bo: Dim ACurrencyVariable As Currency
Hay Dim ACurrencyVariable@'Tip v ng l du @
Chng 5 : Cc kiu d liu trong VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 144
c tnh chi tit v kiu Date
Kiu Date (Ngy thng)
Dng lu tr cc d liu thuc kiu ngy gi cho bt k thi im no t
0h00 ngy 01/01/100 n 0h00 ngy 31/12/9999.
Kiu Date c lu tr trong my tnh bng 8 bytes.
D liu thuc kiu Date phi c bao bi cp du # hai u.
V d: Millenium = #January 1, 2000#
Millenium = #Jan 1, 2000#
Millenium = #1/1/ 2000#
Nu ta cha gn tr cho bin thuc kiu Date th VB mc nhn l lc 0:0:0
cng ngy.
C th dng dng thc AM/PM hay dng 24 gi biu din cho gi tr gi
V d: PreMillenium = #December 31, 1999 11:59:59PM#
hay PreMillenium = #December 31, 1999 23:59:59#
Khai bo mt bin thuc kiu Date nh sau:
Dim ADateVariable As Date Khng c tip v ng
V d : Dim PreMillenium As Date
Chng 5 : Cc kiu d liu trong VB
73
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 145
c tnh chi tit v kiu Variant
Kiu Variant (Kiu d liu bin i)
Kiu d liu ny c thit k lu mi d liu thuc kiu nh sn ca VB. V
d nh : Date, String, Double, Integer
Nu khng khai bo kiu r rng cho 1 bin th bin ny s c hiu l thuc
kiu ny.
VB s chuyn i d liu thuc kiu Variant thnh mt kiu d liu khc cho
ph hp (khi gn d liu,...).
V d : String Variant,Integer Variant,Date Variant
Tuy nhin vic chuyn i kiu nh trn s dn n nhiu li khng lng trc
c.
Dng kiu Variant thay cho mt kiu c th s lm chm tc x l ca
chng trnh do phi tn thI gian chuyn i v tn nhiu b nh hn.
Khai bo mt bin thuc kiu Variant nh sau :
Dim AVariantVariable As Variant
Hay Dim AVariantVariable 'Mc nhin thuc kiu Variant
V d: Dim x, y, z As Integer 'x,y l kiu Variant
Chng 5 : Cc kiu d liu trong VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 146
5.3 Vic dng cc class i tng c sn
Nh chng ta trnh by trong chng 3, VB h tr vic lp trnh OOP 1 mc
nht nh :
o VB cung cp 1 s class i tng, ngi lp trnh c th dng chng bt
k project ng dng no, ta c th ni rng tn ca cc class nh sn ny
cng l kiu nh sn ca VB.
o VB cho php dng cc class i tng c ngi khc vit thng qua cng
ngh COM, ActiveX Control (s trnh by trong chng 12).
Chng 5 : Cc kiu d liu trong VB
o VB cho ngi lp
trnh nh ngha cc
class mi ngay trong
project phn mm
ca h nh khi
nim "class module"
(s c trnh by
chi tit trong chng
6).
74
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 147
Vic dng cc class i tng c sn (tt)
D dng no, mi class u c tn nhn dng, tn ny chnh l
tn kiu v c dng trong pht biu nh ngha bin i tng :
Dim pclipbd As Clipboard
...
Set pclipbd = New Clipboard
Lu rng bin thuc kiu class khng cha trc tip i tng,
n ch l tham kho (phng tin truy xut) n i tng. Do
trc khi dng bin i tng, nht thit phi to i tng (thng
thng qua hm New) nhn tham kho n i tng ri gn
tham kho ny vo bin nh th d trn.
Chng 5 : Cc kiu d liu trong VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 148
Qui trnh to 1 class mi dng trong project
n chut phi trong ca s Project, di chut ti mc "Add" ri chn mc "Class
Module" trong danh sch.
Khi ca s "Add class module" hin th, chn icon "Class module" ri n "Open"
to ra class mi.
Chng 5 : Cc kiu d liu trong VB
thit lp tn class module cho
ph hp (trong ca s thuc
tnh), tn ny chnh l tn kiu
c dng trong pht biu nh
ngha bin i tng.
n kp chut vo mc tn class
mi to ra hin th ca s
code c t cho class .
75
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 149
Ca s c t class
Chng 5 : Cc kiu d liu trong VB
nh ngha tng thuc tnh d liu v tng method ca class theo c php VB
(s c trnh by sau).
debug tng method ca class xem n hot ng ng chc nng mong mun
trc khi dng (s trnh by hot ng debug sau).
mi class c 2 method
c bit :
o Private Sub
Class_Initialize() :
miu t cc hnh
ng khi i tng
va c to ra.
o Private Sub
Class_Terminate() :
miu t cc hnh
ng khi i tng
sp sa b xa.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 150
5.4 t tn bin theo cch "k hiu Hungarian"
K hiu Hungarian
Mt s lp trnh vin thng thch b sung thm mt tip u ng vo
tn bin nu r kiu ca bin, nh tng d c cho chng
trnh.
V d: sngInterestRate : Bin c chnh xc n (Single)
intCount: Bin thuc kiu Integer
strName: Bin thuc kiu String
Qui c trn gi l k hiu Hungarian (do Charles Simonge, mt lp
trnh vin gc Hungari ca Miscrosoft) xng. Lu rng bn vn
phi khai bo kiu cho cc bin trn v kiu phi tng thch vi tip
u ng dng vi tn bin.
Mt s kiu v tip u ng tng ng :
String str Integer int Single sng Currency cur
Boolean bln Long lng Double dbl Variant vnt
Chng 5 : Cc kiu d liu trong VB
76
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 151
Cc lu v bin
Trong mt ng cnh (trong 1 chng trnh con, trong 1 module, cp ton cc),
khng th dng hai bin cng tn (VB khng phn bit ch HOA hay ch
thng).
Tn bin l phn tn, khng k n tip v ng miu t kiu kt hp.
V d: Bin a% v bin a! l trng nhau, VB s a ra thng bo li: Duplicate
Definition
Sau khi nh ngha bin, VB s khi ng tr ban u cho bin . V d :
o Bin thuc kiu Variant c gi tr ngm nh l Empty (rng), gi tr Empty
s bin mt khi ta gn cho bin mt gi tr c th.
o Bin chui c gi tr ngm nh l chuI rng "" (hai du nhy lin nhau).
o Bin s c gi tr ngm nh l 0.
Khng nn tin vo tr ngm nh ca bin, phi gn gi tr cho bin trc khi
dng chng.
1 bin tng ng vi 1 vng nh, do khi gn mt gi tr cho bin, gi tr c
ca bin s b mt i.
Chng 5 : Cc kiu d liu trong VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 152
Tm vc truy xut bin
Tm vc ca mt bin l tp cc lnh c php truy xut bin .
Nh c miu t trong silde 7 (chng 1), VB cho php 3 cp tm vc sau :
o cc b trong th tc : bt k lnh no trong th tc u c th truy xut
c bin cc b trong th tc .
Private Sub Command1_Click()
Dim strGreeting As String 'Khai bo cc b
...
End Sub
o cc b trong module : bt k lnh no trong module u c th truy xut
c bin cc b trong module .
Private strAddr As String 'bin cc b trong module
Public strName As String 'bin ton cc
o ton cc : bt k lnh no trong chng trnh cng c th truy xut c
bin ton cc.
Trong mt ng cnh (cng 1 th tc, cng 1 module, hay cp ton cc), khng
th dng hai bin cng tn (VB khng phn bit ch HOA hay ch thng).
Chng 5 : Cc kiu d liu trong VB
77
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 153
Thi gian sng ca bin
Bin l 1 thc th nn cng c thi gian sng hu hn, thi gian sng
ca bin thng ph thuc vo tm vc ca bin :
o bin cc b trong th tc : c to ra lc th tc c gi v mt
i khi th tc kt thc vic x l v iu khin c tr v lnh gi.
o bin cc b trong module : c to ra lc module c to ra v
mt i khi module b xa.
Cc (standard) modules c thi gian sng t lc chng trnh
chy cho n khi chng trnh kt thc.
Cc i tng ca class module hay form module c to ra khi
c yu cu c th. To i tng ngha l to cc thuc tnh ca
n, cc thuc tnh ca i tng s mt i khi i tng b xa.
o bin ton cc : c to ra lc chng trnh bt u chy v ch mt
i khi chng trnh kt thc.
Chng 5 : Cc kiu d liu trong VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 154
Thi gian sng ca bin (tt)
Mun ko di thi gian sng ca 1 bin, ta thng dng 2 cch sau :
o nng cp tm vc : t cc b trong th tc ln cc b trong module hay ln
ton cc... Cch ny t c dng tng minh v n s thay i tm vc ca
bin. khc phc iu ny, VB cung cp khi nim "Static" kt hp vi
bin : bin c thuc tnh "Static" s tn ti mi v ch mt i khi chng trnh
kt thc bt chp tm vc ca n ra sao.
Private Sub Command1_Click()
Dim strGreeting As String 'bin cc b
Static strAddr As String
'bin cc b c thi gian sng lu di theo ng dng.
...
End Sub
o ghi gi tr bin ra mi trng cha tin bn vng (file trn a) trc khi
bin b xa. Khi cn li gi tr ca bin ny, ta c gi tr ca n t file vo.
y l phng php thng dng trao i d liu gia 2 ng dng khc
nhau hay gia 2 ln chy khc nhau ca cng 1 ng dng.
Chng 5 : Cc kiu d liu trong VB
78
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 155
5.5 Hng gi nh
Nh ta bit, ta nh ngha bin lu tr d liu ca chng
trnh. Ngay sau khi c nh ngha, gi tr ban u ca bin
thng cha c xc nh tng minh, do ta phi thit lp
(gn) gi tr cho bin trc khi dng li tr ca bin.
C 3 cch khc nhau thit lp (gn) gi tr cho 1 bin :
t tng tc vi ngi dng, bin kt hp vi i tng giao din
tng ng s c gn gi tr m ngi dng nhp vo.
cc tham s c truyn khi gi th tc, khi hon thnh code trong
th tc s gn tr vo tham s.
nhng cch c bn v ph bin nht l dng pht biu gn vi c
php sau :
AVariable = AExpression
Chng 5 : Cc kiu d liu trong VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 156
Hng gi nh
Biu thc n gin nht l 1 gi tr, gi tr ny c th c dng
nhiu ni trong chng trnh.
Hng gi nh (Constant) l khi nim cho php ngi lp trnh kt
hp 1 tn gi nh vi 1 gi tr khi cn dng gi tr , ta khng
vit li chi tit c th ca tr m ch dng tn gi nh.
C php ca pht biu nh ngha hng gi nh :
Const ConstName = Value
V d : Const PI = 3.1416
LI ch ca vic dng hng gi nh :
Chng trnh s trong sng, d c hn, dn n vic bo tr, nng
cp chng trnh c thun tin hn.
Tit kim c b nh so vi vic dng bin.
Rt ngn c cc cu lnh qu di
Chng 5 : Cc kiu d liu trong VB
79
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 157
Chng 6
CC LNH NH NGHA & KHAI BO VB
Chng 6 : Cc lnh nh ngha & khai bo VB
MN TIN HC
6.1 Tng qut v ngn ng VB
6.2 Ch thch trong chng trnh.
6.3 Lnh nh ngha hng gi nh
6.4 Lnh nh ngha bin
6.5 Lnh nh ngha kiu ngi dng
6.6 Lnh khai bo Declare
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 158
6.1 Tng qut v code ca 1 ng dng VB
Mt project VB thng qun l cc thnh phn cu thnh 1 ng dng VB.
Trong 1 project VB c 3 loi phn t c cha code (do ta cn bit c php
VB xy dng cc loi phn t ny) :
class module nh ngha s hin thc ca 1 lp i tng c cu trc v
hnh vi ging nhau.
form module l trng hp c bit ca class module, n miu t s hin
thc ca 1 lp i tng c bit : mt form giao din.
(standard) module l n v phn mm nh c 1 chc nng r rng no .
Theo trng phi lp trnh cu trc (c in), ta dng module chia ng
dng ra nhiu phn nh d qun l VB h tr c 2 phng php lp trnh
: c cu trc v OOP.
Ngoi 1 vi ngoi l nh, t chc code cho 3 loi module trn hon ton ging
nhau : l danh sch nhiu lnh VB phc v nh ngha kiu, hng, bin v
th tc trong module . Trong lnh nh ngha th tc, ta s dng cc lnh thc
thi miu t gii thut ca th tc.
Chng 6 : Cc lnh nh ngha & khai bo VB
80
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 159
Tng qut v ngn ng VB
d tip cn ngn ng VB, ta hy nhn li ngn ng ting Vit. Ta ni ngn
ng ting Vit nh ngha 1 tp cc t c ngha c bn, cc qui tc ghp cc t
c bn ny li to thnh on cu (phrase), cu (sentence), on vn
(paragraph), bi vn (document) cng ng ngha ca cc phn t c to ra.
V ngn ng Vit l ngn ng t nhin nn thng cho php nhiu ngoi l trong
vic xy dng cc phn t.
Ngn ng lp trnh VB cng nh ngha 1 tp cc k t c bn (cha c ngha),
cc qui tc ghp cc k t to thnh cc t c ngha (identifier), biu thc
(expression), cu lnh (statement), th tc (Function, Sub, Property) cng ng
ngha ca cc phn t c to ra. V ngn ng VB l ngn ng lp trnh cho
my tnh thc hin nn s khng cho php 1 ngoi l no trong vic xy dng
cc phn t.
Nghin cu ngn ng lp trnh l hc nh r cc k t c bn ca ngn ng,
cc qui tc to danh hiu, biu thc, cc qui tc vit cc cu lnh... cng
ng ngha ca chng rt ging vi vic hc 1 ngn ng t nhin : Anh, Php,
Nht,...
Chng 6 : Cc lnh nh ngha & khai bo VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 160
Cc k hiu c bn ca ngn ng VB
V nguyn tc, VB cho php dng hu ht cc k t m bn c th nhp t bn
phm, trong cc k t ch v s c dng ch yu.
Qui tc cu to 1 danh hiu c trnh by Slide 113 (chng 5). 1 danh
hiu c th c dng t tn cho bin, hng gi nh, Function, Sub,
Property, form, class module, module,... v ng ngha ca tng danh hiu l do
s qui nh ca ngi lp trnh.
Qui tc xy dng 1 biu thc s c trnh by trong chng 7.
C nhiu loi cu lnh VB khc nhau, qui tc xy dng 1 cu lnh ph thuc
vo loi cu lnh c th ta phi nghin cu tng loi cu lnh v qui tc cu
thnh n, nhng may mn s lng loi cu lnh VB l khng nhiu (di 20
loi).
Cc cu lnh c chia lm 2 nhm chnh :
cc lnh nh ngha : xc nh 1 hnh ng no ti thi im dch.
v cc lnh thc thi : xc nh 1 hnh ng no ti thi im thc thi.
Chng 6 : Cc lnh nh ngha & khai bo VB
81
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 161
6.2 Ch thch trong chng trnh
Cc lnh nh ngha v cc lnh thc thi m ta va trnh by l my x l,
chng tun th cc c php c th m ta s trnh by sau. Nhng tng
chung l con ngi rt kh c v hiu chng.
tr gip cho ngi c v hiu cc lnh VB trong chng trnh, VB cn cung
cp 1 lnh c bit : lnh ch thch. y l lnh m my s b qua (v my s
khng th hiu ni ngha c miu t trong lnh ny), tuy nhin lnh ny cho
php ngi lp trnh dng ngn ng t nhin ch thch ngha ca cc lnh
VB khc hu gip chnh h hay ngi khc d dng hiu chng trnh.
C php ca lnh ch thch rt n gin : ch qui nh bt u lnh bng k t '
v c th c vit trn 1 hng ring bit hay i sau lnh hin hnh.
V d :
Private Sub cmdCE_Click()
' hm x l bin c khi n nt CE (Clear Entry)
dblDispValue = 0
blnFpoint = False
bytPosDigit = 0
txtDisplay.Text = ".0" ' bt u hin th .0 ln Display
End Sub
Chng 6 : Cc lnh nh ngha & khai bo VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 162
Ch thch trong chng trnh (tt)
Vic dng ch thch trong chng trnh l s dung ha gia 2 thi cc : lm
dng v khng bao gi dng. Thng ta nn dng ch thch nhng v tr sau :
u ca mi th tc miu t chc nng ca th tc , d liu nhp vo
th tc v d liu tr v t th tc.
cc on code miu t gii thut phc tp ghi ch on code ny hin
thc gii thut no trong l thuyt hc.
hng lnh c hiu ng c bit...
Chng 6 : Cc lnh nh ngha & khai bo VB
82
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 163
6.3 Cc lnh nh ngha
1 module VB (form, class, standard) gm 2 loi phn t : thuc tnh d liu v
cc method (th tc). Cc lnh nh ngha cho php ta nh ngha tnh cht ca
cc thuc tnh d liu, cc lnh thc thi cho php ta miu t gii thut thi hnh
ca cc method (th tc).
2 lnh nh ngha d liu ch yu l lnh nh ngha bin v lnh nh ngha
hng, trong 2 lnh ny c s dng tn kiu d liu. Tn kiu d liu c th l
nh sn, c th do ngi lp trnh t t. Lnh nh ngha kiu s phc v vic
nh ngha kiu mi ca ngi lp trnh.
VB kim tra vic nh ngha bin bt buc trong 1 module no , ta dng
lnh sau u module .
Option Explicit
C php nh ngha hng gi nh c bn :
Const AConst = Value
Lu ta dng ch nghing miu t phn t m ngi lp trnh t xc nh
theo yu cu ring (d nhin phi tha mn qui tc VB), ch m miu t phn
t bt buc v ngi lp trnh phi vit y nh vy trong lnh ca h.
Chng 6 : Cc lnh nh ngha & khai bo VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 164
Qui tc miu t cc loi gi tr
Gi tr lun l : True | False.
Gi tr thp phn nguyn : [+|-] [decdigit]+ (Vd. 125, -548)
Lu ta dng | miu t s chn la, [...] miu t c t 0 ti 1, [...]*
miu t c t 0 ti n, [...]+ miu t c t 1 ti n (n>1).
Gi tr thp lc phn nguyn : [+|-] &H[hexdigit]+ (&HFF)
Gi tr bt phn nguyn : [+|-] &O[ocdigit]+ (&O77)
Gi tr thp phn thc :
[+|-] [decdigit]+ [.[decdigit]*] [E [+|-] [decdigit]+]
3.14159, 0.31459E1,-83.1E-9,...
Gi tr chui : "Nguyen Van A"
"""Nguyen Van A"""
Lu dng 2 du nhy kp lin tip miu t 1 k t nhy kp trong
gi tr chui (c ch dng Escape gii quyt nhm ln).
Chng 6 : Cc lnh nh ngha & khai bo VB
83
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 165
Qui tc miu t cc loi gi tr (tt)
Gi tr ngy thng (Date) : trnh by trong slide 125, y ta
ch nhc li cho c tnh h thng.
V d: #January 1, 2000#
#Jan 1, 2000#
#1/1/ 2000#
#December 31, 1999 11:59:59PM#
#December 31, 1999 23:59:59#
Gi tr ngy thng lun c t trong cp du #....#.
C nhiu dng thc khc nhau miu t gi trong ngy v miu
t ngy/thng/nm. Dng thc miu t ngy dng 2/1/2000 s
c phn gii theo thng s "locale" ca Windows (dng
dd/mm/yyyy hay mm/dd/yyyy).
Chng 6 : Cc lnh nh ngha & khai bo VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 166
6.4 Pht biu nh ngha bin
C php c bn ca nh ngha bin cc b trong function, Sub,
Property :
Dim AVariable [As Type]
Static AVariable [As Type]
C php c bn ca nh ngha bin cc b trong module (class,
form, standard) :
Private AVariable [As Type]
Static AVariable [As Type]
C php c bn ca nh ngha bin ton cc :
Public AVariable [As Type]
Lu hn ch ti a vic dng bin ton cc (trong OOP ta khng
cn dng bin ton cc).
Chng 6 : Cc lnh nh ngha & khai bo VB
84
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 167
Pht biu nh ngha bin (tt)
C th dng tip v ng qui nh kiu (trong chng 5) thay th cho tn
kiu. Nu tn bin khng c tip v ng v khng c phn tn kiu trong
lnh nh ngha bin th bin thuc kiu Variant. Cho php nhiu pht
biu nh ngha bin trn 1 hng lnh (dng du ',' ngn cch chng).
Nn t tn bin theo k hiu Hungarian v lun miu t tn kiu kt
hp vi bin trong lnh nh ngha bin, nh vy chng trnh s rt
trong sng, d hiu v d pht trin.
V d :
Thay v dng lnh sau :
Private DispValue#
nh ngha bin thc chnh xc kp tn l "DispValue", ta nn dng
lnh nh ngha sau :
Private dblDispValue As Double
Chng 6 : Cc lnh nh ngha & khai bo VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 168
6.5 Pht biu nh ngha kiu ca ngi lp trnh
Nu trong 1 module no cn d liu c cu trc c th m VB cha cung
cp, ngi lp trnh s dng pht biu TYPE nh ngha kiu ny. Pht biu
ny kt hp tn kiu (t t) vi 1 cu trc d liu gm nhiu field d liu (do d
ta thng gi kiu ny l kiu record hay structure). C php nh sau :
Type TypeName
[AfieldName As Type]+
End Type
V d :
Type SystemInfo
CPU As Variant
Memory As Long
DiskDrives(25) As String ' Fixed-size array.
VideoColors As Integer
Cost As Currency
PurchaseDate As Variant
End Type
Chng 6 : Cc lnh nh ngha & khai bo VB
85
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 169
Pht biu nh ngha kiu Array
Nu trong 1 module no cn danh sch gm nhiu d liu c cu trc ng
nht, ta s dng pht biu nh ngha kiu array miu t danh sch ny. C
php c bn nh sau :
Dim varname[([subscripts])] [As [New] type]
trong subscripts l danh sch t 1 n n chiu cch nhau bng du ',', mi
chiu miu t phm vi ch s cc phn t thuc chiu dng :
[lower To] upper.
Nu ch s cn di ca 1 chiu no khng c miu t th VB chn gi tr
ngm nh (l 0 hay 1).
Pht biu nh ngha gi tr cn di ngm nh c c php :
Option Base {0|1}
Lu du {..} miu t c 1 v ch 1 ln. Nu khng c pht biu ny th VB
chn cn di l 0.
V d :
Dim vector(50) As Double 'vector c 51 phn t t 0 - 51
Dim MyArray (1 to 100, 1 to 50) As Double
Chng 6 : Cc lnh nh ngha & khai bo VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 170
Pht biu nh ngha kiu Array (tt)
Nu s lng phn t ca danh sch cha bit ti thi im vit chng trnh v
ch bit ti thi im chy, ta dng 1 trong 2 cch sau :
khai bo s lng tnh ti thi im vit, cch ny thng ph phm b nh hay
khai bo thiu s lng phn t.
Th d gii h n phng trnh tuyn tnh, n n s, ta c th khai bo tnh
ma trn thng s nh sau :
Option Base 1
Dim matran(100,100) As Double
nhng nu i a s ln dng ng dng ny, ta ch gii cc h phng
trnh c 2, 3,... n s th s rt ph phm b nh. Cn 1 ln chy no ,
nu ta cn gii h 200 phng trnh th chng trnh s chy sai.
khai bo s lng ng ti thi im chy. C php nh sau :
Dim varname() [As [New] type]
V d : Dim matran() As Double ' trng s lng
...
n = Val(txtInput.Text)
ReDim matran(n,n) 'phn phi phn t cho ma trn
Chng 6 : Cc lnh nh ngha & khai bo VB
86
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 171
6.6 Lnh khai bo Declare
Cc lnh nh ngha hng, bin, kiu, th tc cho php ta sn sinh phn
t tng ng trong phm vi ng cnh tng ng (th tc, module, ton
cc).
Ngoi ra Windows (v nhiu hng, c nhn khc) vit nhiu module
tng qut, mi module cha nhiu th tc khc nhau, cc th tc ny
gii quyt nhng vn no . Th d ta c module cc hm lng
gic, module cc hm thng k, module cc hm x l d liu
multimedia,...
Windows dng k thut lin kt ng cc module trn vo ng dng
dng chng, mi module c ct trn 1 file *.dll (dynamic link library).
VB cung cp lnh khai bo "Declare" cho php ngi lp trnh khai
bo ch k (signature, interface, prototype, header,...) ca cc th tc c
sn trong cc module *.dll gi n trong ng cnh ca mnh (module).
Chng 6 : Cc lnh nh ngha & khai bo VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 172
C php 1 :
[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"]
[([arglist])]
C php 2 :
[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"]
[([arglist])] [As type]
C php 1 cho php khai bo 1 subroutine vi tn l name th vin tn
l libname, ta c th gi subroutine ny bng 1 tn khc l aliasname v
truyn cho n 1 danh sch i s tng thch vi arglist.
C php 2 cho php khai bo 1 function vi tn l name th vin tn l
libname, ta c th gi function ny bng 1 tn khc l aliasname v
truyn cho n 1 danh sch i s tng thch vi arglist. Sau khi hon
thnh, function s tr v 1 gi tr kt qu thuc kiu type.
Chi tit v s khc bit gia subroutine v function s c trnh by
trong chng 9 v 10.
Lnh khai bo Declare (tt)
Chng 6 : Cc lnh nh ngha & khai bo VB
87
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 173
Chng ta trnh by qui trnh thit k trc quan giao din ca trnh
MiniCalculator cho php gi lp 1 my tnh tay n gin. Chng trnh ny ch c
1 form, trong form ny chng ta s nh ngha cc hng, bin cc b sau y
phc v hot ng cho ng dng :
Option Explicit
Const IDC_EQUAL = 0 ' nh ngha cc hng gi nh miu t ton t
Const IDC_ADD = 1
Const IDC_SUB = 2
Const IDC_MUL = 3
Const IDC_DIV = 4
Private dblDispValue As Double ' bin lu gi tr ang hin th
Private dblOldValue As Double ' bin lu gi tr trc
Private dblMemValue As Double ' bin lu gi tr trong b nh
Private blnFpoint As Boolean ' trng thi nhp s nguyn/l
Private bytPosDigit As Byte ' v tr l s l ang nhp
Private intPosNeg As Integer ' trng thi miu t gi tr m/dng
Private bytOperationId As Byte ' id ca php ton cn thc hin
Private blnFAfterOp As Boolean ' trng thi nhp k s u sau php ton
Th d v cc lnh nh ngha VB
Chng 6 : Cc lnh nh ngha & khai bo VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 174
Chng 7
BIU THC VB
Chng 7 : Biu thc VB
MN TIN HC
7.1 Tng qut v biu thc VB
7.2 Cc ton t
7.3 Qui trnh tnh biu thc
7.4 Quyn u tin ca cc ton t
88
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 175
7.1 Tng qut v biu thc VB
Ta bit trong ton hc cng thc l phng tin miu t 1 qui trnh
tnh ton no trn cc s.
Trong VB (hay ngn ng lp trnh khc), ta dng biu thc miu t
qui trnh tnh ton no trn cc d liu biu thc cng ging nh
cng thc ton hc, tuy n tng qut hn (x l trn nhiu loi d liu
khc nhau) v phi tun theo qui tc cu to kht khe hn cng thc
ton hc.
hiu c biu thc, ta cn hiu c cc thnh phn ca n :
Cc ton hng : cc bin, hng d liu,...
Cc ton t tham gia biu thc : +,-,*,/,...
Qui tc kt hp ton t v ton hng to biu thc.
Qui trnh m my dng tnh tr ca biu thc.
Kiu ca biu thc l kiu ca kt qu tnh ton biu thc.
Chng 7 : Biu thc VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 176
Cc biu thc c bn
Biu thc c bn l phn t nh nht cu thnh biu thc bt k. Mt
trong cc phn t sau c gi l biu thc c bn :
Bin,
Hng gi nh,
Gi tr d liu c th thuc kiu no (nguyn, thc,..)
Li gi hm,
1 biu thc c ng trong 2 du ().
Qui trnh to biu thc l qui trnh qui : ta kt hp tng ton t vi cc
ton hng ca n, trong ton hng hoc l biu thc c bn hoc l
biu thc sn c ( c xy dng trc v nn ng trong 2 du ()
bin n tr thnh biu thc c bn).
Chng 7 : Biu thc VB
89
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 177
7.2 Cc ton t
Da theo s ton hng tham gia, c 2 loi ton t thng dng nht :
ton t 1 ngi : ch cn 1 ton hng. V d ton t '-' tnh phn
m ca 1 i lng.
ton t 2 ngi : cn dng 2 ton hng. V d ton t '*' tnh tch
ca 2 i lng.
VB thng dng cc k t c bit miu t ton t. V d :
ton t '+' : cng 2 i lng.
ton t '-' : tr i lng 2 ra khi i lng 1.
ton t '*' : nhn 2 i lng.
ton t '/' : chia i lng 1 cho i lng 2...
Trong vi trng hp, VB dng cng 1 k t c bit miu t nhiu
ton t khc nhau. Trong trng hp ny, ng cnh s c dng gii
quyt nhm ln.
Ng cnh thng l kiu ca cc ton hng tham gia hoc do thiu ton
hng th ton t c hiu l ton t 1 ngi.
Chng 7 : Biu thc VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 178
Cc ton t (tt)
Da theo u tin ca cc ton t trong qui trnh tnh ton biu thc, c
3 loi ton t :
ton t s hc : c u tin cao nht trong qui trnh tnh ton biu
thc.
ton t so snh : c u tin k tip.
ton t lun l v bitwise : c u tin thp nht.
Trong cc slide sau, chng ta s trnh by chi tit cc ton t VB thuc
tng loi trn.
Chng 7 : Biu thc VB
90
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 179
Cc ton t s hc
Ty thuc kiu ca cc ton hng tham gia m ta c php dng nhng
ton t no trn chng s lng ton t c gi tr trn tng kiu d liu
l khc nhau phi hc v nh t t.
D liu s l loi d liu thng c x l nht trong cc ng dng (may
mn cho chng ta v ta quen vi ton hc).
Cc ton t trn d liu s l :
ton t '&' : ni kt 2 chui thnh 1 chui.
ton t '+' : cng 2 i lng.
ton t '-' : tr i lng 2 ra khi i lng 1.
ton t '*' : nhn 2 i lng.
ton t '/' : chia i lng 1 cho i lng 2.
ton t '\' : chia nguyn.
ton t Mod : ly phn d ca php chia nguyn.
ton t '^' : ly tha.
Chng 7 : Biu thc VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 180
C php :
expr1 & expr2 (kt qu)
ni kt 2 ton hng kiu chui thnh 1 chui mi, nu 1 trong 2 ton
hng thuc kiu s th n s c i thnh dng chui trc khi thc
hin ni kt.
V d :
Dim MyStr As String
MyStr = "Hello" & " World" ' kt qu l "Hello World".
MyStr = "Check " & 123 & " Check" ' kq l "Check 123 Check".
lu nn c k t trng trong cc chui con sao cho ni kt chui kt
qu d c.
Ton t '&' ni kt 2 chui
Chng 7 : Biu thc VB
91
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 181
Ton t '+' trn d liu s
C php :
expr1 + expr2 (kt qu) hoc + expr1
Nu c 2 ton hng u l s th kiu kt qu l kiu chnh xc nht ca
php + theo th t sau : Byte, Integer, Long, Single, Double, Currency,
Decimal vi cc ngoi l sau :
Chng 7 : Biu thc VB
Variant cha Long kt qu kiu Variant cha gi tr Integer v b trn
Variant cha Integer kt qu kiu Variant cha gi tr Byte v b trn
Date 1 ton hng Date,1 ton hng kiu khc
Variant cha Double kt qu kiu Variant cha gi tr Single, Long, Date v b
trn
Double 1 ton hng Single,1 ton hng Long
th kt qu l : Nu
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 182
Ton t '+' trn d liu s (tt)
Nu kiu ca c 2 ton hng u l Variant th vic xc nh ng ngha
php + v kiu kt qu s theo qui lut ca bng sau :
Cng 1 l Variant cha s, 1 l Variant cha chui
Ni kt 2 chui c 2 ton hng l Variant cha chui
Cng c 2 ton hng l Variant cha s
th : Nu
Chng 7 : Biu thc VB
92
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 183
Ton t '+' trn d liu s (tt)
Nu t nht 1 ton hng khng phi Variant th vic xc nh ng ngha
php + v kiu kt qu s theo qui lut ca bng sau :
Ni kt 2 chui 1 l chui, 1 l Variant gi tr khc Null
Cng 1 l s, 1 l Variant gi tr khc Null
kt qu l ton hng cn li 1 biu thc l Variant cha Empty
kt qu l Null 1 trong 2 ton hng l Null
A Type mismatch error 1 l s v 1 l chui
Ni kt 2 chui c 2 ton hng l chui
Cng c 2 ton hng l d liu s
th : Nu
Chng 7 : Biu thc VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 184
Ton t '-' trn d liu s
C php :
expr1 - expr2 (kt qu) hoc - expr1
Kiu kt qu thng l kiu chnh xc nht ca php - theo th t sau :
Byte, Integer, Long, Single, Double, Currency, Decimal vi cc ngoi l
sau :
Chng 7 : Biu thc VB
Date 1 ton hng Date,1 ton hng kiu khc
Variant cha Long kt qu kiu Variant cha gi tr Integer v b trn
Double c 2 tong hng Date
Variant cha Double kt qu kiu Variant cha gi tr Single, Long, Date v b
trn
Double 1 ton hng Single,1 ton hng Long
th kt qu l : Nu
93
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 185
Ton t '*' trn d liu s
C php :
expr1 * expr2 (kt qu)
Kiu kt qu thng l kiu chnh xc nht ca php * theo th t sau :
Byte, Integer, Long, Single, Double, Currency, Decimal vi cc ngoi l
sau :
Chng 7 : Biu thc VB
Variant cha Long kt qu kiu Variant cha gi tr Integer v b trn
Variant cha Integer kt qu kiu Variant cha gi tr Byte v b trn
Variant cha Double kt qu kiu Variant cha gi tr Single, Long, Date v b
trn
Double 1 ton hng Single,1 ton hng Long
th kt qu l : Nu
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 186
Ton t '/' trn d liu s
C php :
expr1 / expr2 (kt qu)
Kiu kt qu thng l kiu Double hay Variant cha Double vi cc
ngoi l sau :
Chng 7 : Biu thc VB
Decimal 1 ton hng Decimal
Variant cha Single, nu trn th i
thnh Variant cha Double
c 2 ton hng l variant cha tr Byte, Integer, Single
Single, nu trn th bo sai c 2 ton hng l Byte, Integer,Single
th kt qu l : Nu
94
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 187
Ton t '\' v Mod trn d liu s
C php :
expr1 \ expr2 (kt qu)
y l php chia nguyn, 2 ton hng c i v dng nguyn
(c lm trn) trc khi thc hin php chia.
Kiu kt qu hoc l Byte, Integer, Long hoc l Variant cha tr
Byte, Integer, Long.
V d : 19 \ 6.7 kt qu l 2
C php :
expr1 Mod expr2 (kt qu)
y l php ly phn d ca php chia nguyn, 2 ton hng c
i v dng nguyn (c lm trn) trc khi thc hin php chia.
Kiu kt qu hoc l Byte, Integer, Long hoc l Variant cha tr
Byte, Integer, Long.
V d : 19 Mod 6.7 kt qu l 5
Chng 7 : Biu thc VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 188
Ton t '^' trn d liu s
C php :
number ^ exponent (kt qu)
y l php ly tha, 2 ton hng thuc kiu s (Byte, Integer,
Long, Single, Double,...) vi hn ch l nu phn m l s nguyn
th phn c s (number) mi c php m.
Kiu kt qu hoc l Double hoc l Variant cha tr Double.
V d : (-5) ^ 3 kt qu l -125.0
3 ^ 3 ^ 3 kt qu l 19683.0
3.2 ^ 2.7 kt qu l 23.115587799
Chng 7 : Biu thc VB
95
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 189
C php :
expr1 op expr2 (kt qu)
2 ton hng thng l kiu s hay chui. Kt qu lun l kiu lun l
(nhn 1 trong 2 tr True, False).
op l 1 trong cc ton t so snh sau :
< : php ton nh hn
<= : php ton nh hn hoc bng
> : php ton ln hn
>= : php ton ln hn hoc bng
= : php ton so snh bng
<> : php ton khc nhau (khng bng)
Ngoi cc ton t so snh thng thng trn, VB cn cung cp 2 ton t
so snh c bit sau (vi ng ngha c bit s c trnh by trong cc
slide sau) :
expr1 Like expr2 (kt qu)
expr1 Is expr2 (kt qu)
Cc ton t so snh d liu
Chng 7 : Biu thc VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 190
C php :
string Like pattern (kt qu)
xc nh xem chui c th string c thuc v pattern khng. Nu
thuc v th cho kt qu True, nu khng thuc v th cho kt qu
False.
V d :
MyCheck = "aBBBa" Like "a*a" ' Returns True.
MyCheck = "F" Like "[A-Z]" ' Returns True.
MyCheck = "F" Like "[!A-Z]" ' Returns False.
MyCheck = "a2a" Like "a#a" ' Returns True.
MyCheck = "aM5b" Like "a[L-P]#[!c-e]" ' Returns True.
MyCheck = "BAT123khg" Like "B?T*" ' Returns True.
MyCheck = "CAT123khg" Like "B?T*" ' Returns False.
Ton t Like
Chng 7 : Biu thc VB
96
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 191
Hnh vi ca ton t Like ph thuc vo 1 trong 2 ch do pht biu
"Option Compare" qui nh :
Option Compare Binary ' default
Option Compare Text
Trong ch so snh Binary, VB da vo th t sp xp cc k t trn c
s m nh phn ca cc k t. Trong bng m ISO8859-1, ta c :
A < B < E < Z < a < b < e < z < < < < < <
Trong ch so snh Text, VB da vo th t sp xp cc k t trn c s
ng ngha k t v thng tin "locale" ca Windows (do khng phn bit
ch thng v hoa) :
(A=a) < (=) < (B=b) < (E=e) < (=) < (Z=z) < (=)
Thng tin v ch so snh cng c p dng cho cc ton t so snh
thng thng trn cc chui.
Ton t Like (tt)
Chng 7 : Biu thc VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 192
Ton hng string l chui k t c th, cn ton hng pattern l chui cha
cc k t c th v/hoc cc k t c bit c ngha theo bng sau :
Ton t Like (tt)
Chng 7 : Biu thc VB
Bt k 1 k t no ?
Tng ng vi : K t trong pattern
Bt k k t khng c trong charlist. [!charlist]
Bt k k t c trong charlist. [charlist]
Bt k k s thp phn no (09). #
bt k chui k t no (di t 0 k t tr ln) *
dng '-' miu t 1 phm vi xc nh bi 2 cn di v trn.
dng c php [c] miu t cc k t c bit.
97
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 193
C php :
ObjVar1 Is ObjVar1 (kt qu)
xc nh xem 2 bin ObjVar1 v ObjVar2 c cha cng tham kho
n 1 i tng duy nht khng. Nu ng vy th kt qu ca biu
thc l True, nu khng tr biu thc l False.
V d :
Dim MyObject, YourObject, ThisObject, ThatObject
Dim MyCheck As Boolean
Set YourObject = New Clipboard ' to object v gn tham kho.
Set ThisObject = YourObject
Set ThatObject = New Clipboard
MyCheck = YourObject Is ThisObject ' kt qu True.
MyCheck = ThatObject Is ThisObject ' kt qu False.
Ton t Is
Chng 7 : Biu thc VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 194
Cc ton t lun l
Cc ton t lun l cho php thc hin 1 hnh vi lun l trn 1 hay 2 ton
hng thuc kiu lun l cho kt qu l 1 gi tr lun l.
Cc ton t lun l l :
ton t And : php ton 'v'.
ton t Or : php ton 'hoc'.
ton t Xor : php ton loi tr.
ton t Not : php ton o.
ton t Eqv : php ton tng ng.
ton t Imp : php ton ko theo.
Nu c 2 ton hng u l s th cc php ton trn s thc hin hnh vi
ca chng trn tng cp bit tng ng ca 2 ton hng (s gii thch c
th sau).
Chng 7 : Biu thc VB
98
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 195
Ton t lun l And
C php :
expr1 And expr2 (kt qu)
kt qu c xc nh theo bng sau :
Chng 7 : Biu thc VB
False False Null
Null True Null
Null
Null
False
True
Null
False
True
expr2
False False
False False
False False
Null True
Null Null
False True
True True
kt qu expr1
Ghi ch :
o kt qu ch True khi c 2
ton hng l True.
o Kt qu l False nu c 1
ton hng l False.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 196
Ton t bitwise And
C php :
expr1 And expr2 (kt qu)
2 ton hng thuc kiu s v ton t And thc hin hnh vi trn tng
cp bit tng ng ca 2 ton hng, kt qu trn tng cp bit c
xc nh theo bng sau :
Chng 7 : Biu thc VB
0
1
0
1
biti of expr2
0 0
0 0
0 1
1 1
kt qu biti of expr1
99
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 197
Ton t lun l Or
C php :
expr1 Or expr2 (kt qu)
kt qu c xc nh theo bng sau :
Chng 7 : Biu thc VB
Null False Null
True True Null
Null
Null
False
True
Null
False
True
expr2
Null False
False False
True False
True True
Null Null
True True
True True
kt qu expr1
Ghi ch :
o kt qu l True nu c 1
ton hng l True.
o Kt qu ch False khi c 2
ton hng u l False.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 198
Ton t bitwise Or
C php :
expr1 Or expr2 (kt qu)
2 ton hng thuc kiu s v ton t Or thc hin hnh vi trn tng
cp bit tng ng ca 2 ton hng, kt qu trn tng cp bit c
xc nh theo bng sau :
Chng 7 : Biu thc VB
0
1
0
1
biti of expr2
0 0
1 0
1 1
1 1
kt qu biti of expr1
100
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 199
Ton t lun l Xor
C php :
expr1 Xor expr2 (kt qu)
kt qu c xc nh theo bng sau :
Chng 7 : Biu thc VB
Null False Null
Null True Null
Null
Null
False
True
Null
False
True
expr2
Null False
False False
True False
Null True
Null Null
True True
False True
kt qu expr1
Ghi ch :
o Nu c 1 ton hng l Null
th kt qu l Null.
o Kt qu l True nu 2 ton
hng khc nhau v khc
Null.
o Kt qu l False nu 2
ton hng ging nhau v
khc Null.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 200
Ton t bitwise Xor
C php :
expr1 Xor expr2 (kt qu)
2 ton hng thuc kiu s v ton t Xor thc hin hnh vi trn tng
cp bit tng ng ca 2 ton hng, kt qu trn tng cp bit c
xc nh theo bng sau :
Chng 7 : Biu thc VB
0
1
0
1
biti of expr2
0 0
1 0
1 1
0 1
kt qu biti of expr1
101
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 201
Ton t lun l Eqv
C php :
expr1 Eqv expr2 (kt qu)
kt qu c xc nh theo bng sau :
Chng 7 : Biu thc VB
Null False Null
Null True Null
Null
Null
False
True
Null
False
True
expr2
Null False
True False
False False
Null True
Null Null
False True
True True
kt qu expr1
Ghi ch :
o Nu c 1 ton hng l Null
th kt qu l Null.
o Kt qu l True nu 2 ton
hng ging nhau v khc
Null.
o Kt qu l False nu 2 ton
hng khc nhau v khc
Null.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 202
Ton t bitwise Eqv
C php :
expr1 Eqv expr2 (kt qu)
2 ton hng thuc kiu s v ton t Eqv thc hin hnh vi trn tng
cp bit tng ng ca 2 ton hng, kt qu trn tng cp bit c
xc nh theo bng sau :
Chng 7 : Biu thc VB
0
1
0
1
biti of expr2
1 0
0 0
0 1
1 1
kt qu biti of expr1
102
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 203
Ton t lun l Imp
C php :
expr1 Imp expr2 (kt qu)
kt qu c xc nh theo bng sau :
Chng 7 : Biu thc VB
Null False Null
True True Null
Null
Null
False
True
Null
False
True
expr2
True False
True False
True False
Null True
Null Null
False True
True True
kt qu expr1
Ghi ch :
o Nu ton hng 1 l False th
kt qu l True.
o Kt qu l True nu 2 ton
hng u l True.
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 204
Ton t bitwise Imp
C php :
expr1 Imp expr2 (kt qu)
2 ton hng thuc kiu s v ton t Imp thc hin hnh vi trn tng
cp bit tng ng ca 2 ton hng, kt qu trn tng cp bit c
xc nh theo bng sau :
0
1
0
1
biti of expr2
1 0
1 0
0 1
1 1
kt qu biti of expr1
Chng 7 : Biu thc VB
103
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 205
Ton t lun l v bitwise Not
C php :
Not expr (kt qu)
kt qu ca biu thc theo bng sau :
Null Null
True False
False True
kt qu expr
Chng 7 : Biu thc VB
C php :
Not expr (kt qu)
ton hng thuc kiu s v ton t Not thc hin hnh vi trn tng
bit tng ng ca ton hng, kt qu trn tng bit c xc nh
theo bng trn :
1 0
0 1
kt qu biti of expr
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 206
7.3 Qui trnh tnh biu thc
Nu biu thc c xy dng ch trn cc biu thc c bn th qui trnh tnh biu
thc chnh l qui trnh xy dng biu thc .
Nu biu thc c xy dng trn cc biu thc con bt k th qui trnh tnh ton
nh sau : tnh t tri sang phi, mi ln gp 1 ton t (k hiu l CurrentOp) th
phi nhn trc ton t i ngay sau n (SussesorOp), so snh u tin ca 2
ton t v ra quyt nh nh sau :
nu khng c SussesorOp th tnh ngay ton t CurrentOp (trn 1 hay 2
ton hng ca n).
nu ton t CurrentOp c u tin cao hn hay bng ton t SussesorOp
th tnh ngay ton t CurrentOp (trn 1 hay 2 ton hng ca n).
nu ton t CurrentOp c u tin thp hn SussesorOp th c gng thc
hin ton t SussesorOp trc. Vic c gng ny cng c th b tm hon
nu ton t i sau ton t SussesorOp c u tin cao hn
SussesorOp,...
Khi ton t SussesorOp c thc hin xong th ton t ngay sau
SussesorOp tr thnh ton t i ngay sau CurrentOp vic kim tra xem
CurrentOp c c thc hin khng s c lp li.
Chng 7 : Biu thc VB
104
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 207
Cc ton t s hc c u tin cao nht, ri ti cc ton t so snh v
sau cng l cc ton t lun l :
Gia cc ton t s hc, quyn u tin t cao xung thp theo t t t
trn xung trong bng sau.
Cc ton t so snh c cng th t u tin.
Gia cc ton t lun l, quyn u tin t cao xung thp theo t t t
trn xung trong bng sau.
Arithmetic Comparison Logical
1.Exponentiation (^) 8.Equality (=) 9. Not
2.Negation () 8.Inequality (<>) 10.And
3.Multiplication and division (*, /) 8.Less than (<) 11.Or
4.Integer division (\) 8.Greater than (>) 12.Xor
5.Modulus arithmetic (Mod) 8.Less than or equal to (<=) 13.Eqv
6.Addition and subtraction (+, ) 8.Greater than or equal to (>=) 14.Imp
7.String concatenation (&) 8.Like, Is
7.4 Th t u tin c th ca cc ton t
Chng 7 : Biu thc VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 208
Th d sau l biu thc tnh gi tr mi ca phn t Display trong chng
trnh MiniCalculator trong trng hp ngi dng mi nhp thm 1 k s
phn l, trong :
dblDispValue l bin cha tr ca Display.
intNegative l bin miu t du ca tr Display (1 : dng, -1 : m).
d l bin cha k s mi nhp.
bytPosDigit l bin miu t v tr k s va nhp bn phi du '.'.
dblDispValue = dblDispValue + intNegative * d * (10 ^ -bytPosDigit)
Th d v qui trnh tnh biu thc
Chng 7 : Biu thc VB
1
2
3
4 5
Ghi ch : theo th t, ton t ly
tha c tnh trc ton t -,
nhng y tnh c lu
tha, ta buc phi xc nh c
ton hng i sau n v nh vy
ton t - phi c tnh trc
trong trng hp ny.
105
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 209
Chng 8
CC LNH THC THI VB
Chng 8 : Cc lnh thc thi VB
MN TIN HC
8.1 Tng qut v ngn ng VB
8.2 Cc lnh gn.
8.3 Cc lnh kim tra iu kin & r nhnh
8.4 Cc lnh lp
8.5 Vn lng nhau gia cc lnh
8.6 Thot t ngt khi khi cp iu khin
8.7 Lnh gi hm/th tc
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 210
8.1 Tng qut v cc lnh thc thi VB
Ta bit gii thut gii quyt 1 vn no l trnh t cc cng vic
nh hn, nu ta thc hin ng trnh t cc cng vic nh hn ny th s
gii quyt c vn ln.
VB (hay ngn ng lp trnh khc) cung cp 1 tp cc lnh thc thi, mi
lnh thc thi c dng miu t 1 cng vic nh trong 1 gii thut vi
tng chung nh sau :
Nu tn ti lnh thc thi miu t c cng vic nh ca gii thut th
ta dng lnh thc thi ny.
Nu cng vic nh vn cn qu phc tp v khng c lnh thc thi no
miu t c th ta dng lnh gi th tc (Function, Sub, Property)
trong th tc l trnh t cc lnh thc hin cng vic nh ny...
Hu ht cc lnh thc thi c cha biu thc v dng kt qu ca biu thc
ny quyt nh cng vic k tip cn c thc hin ta thng gi
cc lnh thc thi l cc cu trc iu khin.
Chng 8 : Cc lnh thc thi VB
106
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 211
Tng qut v cc lnh thc thi VB (tt)
d hc, d nh v d dng, VB (cng nh cc ngn ng khc) ch cung
cp 1 s lng rt nh cc lnh thc thi :
Nhm lnh khng iu khin :
o Lnh gn d liu vo 1 bin.
o Lnh gn tham kho n i tng vo 1 bin tham kho.
Nhm lnh to quyt nh :
o Lnh kim tra iu kin lun l If ... Then ... Else
o Lnh kim tra iu kin s hc Select Case
Nhm lnh lp :
o Lnh lp Do ... Loop
o Lnh lp For ... Next
o Lnh lp For Each ... Next
Nhm lnh gi th tc :
o Lnh gi th tc
o Lnh thot khi cu trc iu khin Exit
Chng 8 : Cc lnh thc thi VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 212
8.2 Lnh gn d liu
Lnh c dng nhiu nht trong 1 chng trnh l lnh gn gi tr d liu vo
1 vng nh lu tr li d liu ny hu s dng li n sau . Chng ta
thy lnh ny nhiu ln trong cc chng trc, by gi chng ta ni r hn v
n.
C php :
lvar = expr
biu thc bn phi s c tnh to ra kt qu (1 gi tr c th thuc 1
kiu c th), gi tr ny s c gn vo nh do lvar qui nh. Trc khi
gn, VB s kim tra kiu ca 2 phn t (qui tc kim tra s c trnh by
sau).
lvar thng l 1 bin d liu c bn, nhng c th qui theo qui tc :
o nu lvar l bin dy th 1 phn t dy c th l lvar.
o nu lvar l bin d liu ngi dng th 1 field ca n c th l lvar.
o nu lvar l bin i tng th 1 thuc tnh ca i tng c th l lvar.
V d :
dblDispValue = dblDispValue + intNegative * d * (10 ^ -bytPosDigit)
Chng 8 : Cc lnh thc thi VB
107
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 213
Lnh gn tham kho n i tng
Nh c trnh by trong chng 5, bin i tng (c kiu l Object hay
tn class module no ) ch cha tham kho n i tng ch khng cha
trc tip i tng. Khi mi nh ngha, nhng bin ny cha tham kho n
i tng c th no, do trc khi dng chng, ta phi gn tham kho ca
i tng c th vo bin.
C php :
Set lvar = expr
biu thc bn phi s c tnh to ra kt qu l 1 tham kho n i
tng, tham kho ny s c gn vo nh do lvar qui nh. Trc khi
gn, VB s kim tra kiu ca 2 phn t (qui tc kim tra s c trnh by
sau).
lvar thng l 1 bin i tng c bn, nhng c th qui theo qui tc :
o nu lvar l bin dy th 1 phn t dy c th l lvar.
o nu lvar l bin d liu ngi dng th 1 field ca n c th l lvar.
o nu lvar l bin i tng th 1 thuc tnh ca i tng c th l lvar.
V d :
Set objClipbd = New Clipboard
Chng 8 : Cc lnh thc thi VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 214
8.3 Lnh kim tra iu kin lun l IF
Cho php da vo kt qu lun l (tnh c t 1 biu thc lun l) quyt
nh thi hnh 1 trong 2 nhnh lnh. Sau khi thc hin 1 trong 2 nhnh lnh,
chng trnh s tip tc thi hnh lnh ngay sau lnh IF. C nhiu c php
khc nhau :
C php 1a :
If condition Then Statement1 [Else Statement2 ]
condition l 1 biu thc lun l miu t iu kin cn kim tra, n c kt
qu True/False.
Statement1, Statement2 l lnh thc thi VB bt k.
nu kt qu l True th thi hnh Statement1.
nu kt qu l False v c dng Else th thi hnh Statement2.
V d :
If blnThaybenh Then MsgBox("Thy bnh. Sinh vin v ngh")
Chng 8 : Cc lnh thc thi VB
108
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 215
Lnh kim tra iu kin lun l IF (tt)
C php 2 :
If condition Then
[Statement]+
End If
condition l 1 biu thc lun l miu t iu kin cn kim tra, n c kt
qu True/False.
[Statement]+ l danh sch cc lnh thc thi VB bt k.
nu kt qu l True th thi hnh cc lnh [Statement]+, nu kt qu l
False thi thi.
V d :
If del >=0 Then
x1 = (-b-sqr(del))/(2*a)
x2 = (-b+sqr(del))/(2*a)
MsgBox("x1= " & x1 & " ,x2= " & x2)
End If
Chng 8 : Cc lnh thc thi VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 216
Lnh kim tra iu kin lun l IF (tt)
C php 3 :
If condition Then
[Statement1]+
Else
[Statement2]+
End If
condition l 1 biu thc lun l miu t iu kin cn kim tra, n c kt
qu True/False.
[Statement1]+, [Statement2]+ l danh sch cc lnh thc thi VB bt k.
nu kt qu l True th thi hnh cc lnh [Statement1]+, nu kt qu l
False th thi hnh cc lnh [Statement2]+.
Chng 8 : Cc lnh thc thi VB
109
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 217
V d :
If del >=0 Then
x1 = (-b-sqr(del))/(2*a)
x2 = (-b+sqr(del))/(2*a)
MsgBox("x1= " & x1 & " ,x2= " & x2)
Else
MsgBox("Phng trnh v nghim")
End If
V d : hiu chnh tr phn t Display khi ngi dng nhp thm k s d
If (blnFpoint) Then ' phn l
bytPosDigit = bytPosDigit + 1
dblDispValue = dblDispValue + intPosNeg * d * (10 ^ -bytPosDigit)
Else ' phn nguyn
dblDispValue = dblDispValue * 10 + intPosNeg * d
End If
Lnh kim tra iu kin lun l IF (tt)
Chng 8 : Cc lnh thc thi VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 218
Lnh kim tra iu kin s hc Select
C php :
Select Case condition
Case expr1
[Statement1]+
Case expr2
[Statement2]+
...
Case Else
[Statementn]+
End Select
condition l 1 biu thc s hc miu t iu kin cn kim tra, n c gi tr
s.
[Statement1]+, [Statement2]+ l danh sch cc lnh thc thi VB bt k.
ty gi tr ca iu kin trng vi nhnh Case no m cc lnh VB trong
nhnh c thi hnh, sau VB s thi hnh lnh ngay sau lnh Select.
Chng 8 : Cc lnh thc thi VB
110
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 219
Th d sau l lnh Select phc v vic thc hin 1 nt lnh trong trnh
MiniCalculator m ta s thc hnh :
Select Case bytOperationId
Case IDC_ADD ' php cng
dblDispValue = dblOldValue + dblDispValue
txtDisplay.Text = Str(dblDispValue)
Case IDC_SUB ' php tr
dblDispValue = dblOldValue - dblDispValue
txtDisplay.Text = Str(dblDispValue)
Case IDC_MUL ' php nhn
dblDispValue = dblOldValue * dblDispValue
txtDisplay.Text = Str(dblDispValue)
Case IDC_DIV ' php chia
dblDispValue = dblOldValue / dblDispValue
txtDisplay.Text = Str(dblDispValue)
End Select
Lnh kim tra iu kin s hc Select (tt)
Chng 8 : Cc lnh thc thi VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 220
VB cn cung cp 1 lnh khc kim tra iu kin s hc, nhng yu hn
lnh Select, l lnh On...GoSub (thc ra y l lnh ca ngn ng
Basic nguyn thy, Microsoft thy cha trong sng nn mi cung cp
thm lnh Select). C php nh sau :
On condition GoSub label1, label2, label3,...
condition l 1 biu thc s hc v nn c gi tr t 1 ti n, trong n l s
lng nhn lnh c lit k sau t kha GoSub.
nu gi tr ca condition l i th my s gi 'subroutine' bt u t lnh c
nhn l labeli.
'subroutine' l 1 danh sch gm nhiu lnh thc hin 1 cng vic no
(c th ln, c th nh) vi c im lnh cui trong danh sch l lnh
Return tr iu khin v lnh gi GoSub.
xc nh c lnh cn nhy n, VB cho php dng 1 nhn gi nh
(danh hiu) hay 1 nhn s (s) kt hp vi lnh cn tham kho (ng lm
dng tnh cht ny t nhn cho mi lnh trong chng trnh).
Lnh kim tra iu kin s hc On...GoSub
Chng 8 : Cc lnh thc thi VB
111
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 221
on code sau c cng dng nh slide th d dng lnh Select case (nu
IDC_ADD = 1, IDC_SUB = 2, IDC_MUL = 3, IDC_DIV = 4) :
On bytOperationId GoSub LblAdd, LblSub, LblMul, LblDiv
...
LblAdd:
dblDispValue = dblOldValue + dblDispValue
txtDisplay.Text = Str(dblDispValue)
return ' tr u khin v lnh GoSub
LblSub:
dblDispValue = dblOldValue - dblDispValue
txtDisplay.Text = Str(dblDispValue)
return ' tr u khin v lnh GoSub
LblMul:
dblDispValue = dblOldValue * dblDispValue
txtDisplay.Text = Str(dblDispValue)
return ' tr u khin v lnh GoSub
LblDiv:
dblDispValue = dblOldValue / dblDispValue
txtDisplay.Text = Str(dblDispValue)
return ' tr u khin v lnh GoSub
Chng 8 : Cc lnh thc thi VB
Lnh kim tra iu kin s hc On...GoSub (tt)
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 222
1 bin th khc ca On...GoSub l On...Goto, y iu khin s khng tr li
lnh On...Goto na. on code sau c cng dng nh slide trc :
On bytOperationId GoTo LblAdd, LblSub, LblMul, LblDiv
Continue:
...
LblAdd:
dblDispValue = dblOldValue + dblDispValue
txtDisplay.Text = Str(dblDispValue)
Goto Continue ' nhy khng iu kin v nhn Continue
LblSub:
dblDispValue = dblOldValue - dblDispValue
txtDisplay.Text = Str(dblDispValue)
Goto Continue
LblMul:
dblDispValue = dblOldValue * dblDispValue
txtDisplay.Text = Str(dblDispValue)
Goto Continue
LblDiv:
dblDispValue = dblOldValue / dblDispValue
txtDisplay.Text = Str(dblDispValue)
Goto Continue
Lnh kim tra iu kin s hc On...GoTo
Chng 8 : Cc lnh thc thi VB
112
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 223
8.4 Lnh lp Do...Loop
C php 1 :
Do While condition
[Statement]+
Loop
condition l 1 biu thc lun l miu t iu kin cn kim tra, n c kt
qu True/False.
[Statement]+ l danh sch cc lnh thc thi VB bt k.
tnh gi tr condition, nu kt qu l True th thi hnh cc lnh
[Statement]+, ri lp li qui trnh trn... n lc condition c gi tr False th
ngng vng lp thch hp cho vic lp t 0 ti n ln.
V d : tnh 10!
giaithua = 1
i = 1
Do While i <=10
giaithua = giaithua * i
i = i+1
Loop
Chng 8 : Cc lnh thc thi VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 224
Lnh lp While...Wend
VB cn cung cp 1 lnh khc c chc nng ging nh lnh Do While ...
Loop, c php ca n nh sau :
While condition
[Statement]+
Wend
condition l 1 biu thc lun l miu t iu kin cn kim tra, n c kt
qu True/False.
[Statement]+ l danh sch cc lnh thc thi VB bt k.
tnh gi tr condition, nu kt qu l True th thi hnh cc lnh
[Statement]+, ri lp li qui trnh trn... n lc condition c gi tr False th
ngng vng lp thch hp cho vic lp t 0 ti n ln.
V d : tnh 10!
giaithua = 1
i = 1
While i <=10
giaithua = giaithua * i
i = i+1
Wend
Chng 8 : Cc lnh thc thi VB
113
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 225
Lnh lp Do...Loop (tt)
C php 2 :
Do
[Statement]+
Loop While condition
condition l 1 biu thc lun l miu t iu kin cn kim tra, n c kt
qu True/False.
[Statement]+ l danh sch cc lnh thc thi VB bt k.
thi hnh cc lnh [Statement]+ ri kim tra condition, nu c gi tr True th
lp li qui trnh trn n lc n c gi tr False th ngng vng lp thch
hp cho vic lp t 1 ti n ln.
V d : tnh 10!
giaithua = 1
i = 1
Do
giaithua = giaithua * i
i = i+1
Loop While i <=10
Chng 8 : Cc lnh thc thi VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 226
Lnh lp Do...Loop (tt)
C php 3 :
Do Until condition
[Statement]+
Loop
C php 4 :
Do
[Statement]+
Loop Until condition
condition l 1 biu thc lun l miu t iu kin cn kim tra, n c kt
qu True/False.
[Statement]+ l danh sch cc lnh thc thi VB bt k.
ging vi c php 1 v 2 nhng thay v iu kin thc hin vng lp l
True th by gi ngc li l False mi thi hnh vng lp.
Chng 8 : Cc lnh thc thi VB
114
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 227
Lnh lp For...Next
C php 1 :
For counter = start To end [Step increment]
[Statement]+
Next [counter]
counter l bin iu khin s ln lp, start l biu thc qui nh gi tr u
ca counter, end qui nh gi tr cui, increment miu t bc tng (m l
gim, default l 1).
[Statement]+ l danh sch cc lnh thc thi VB bt k.
thi hnh cc lnh [Statement]+ vi s ln c qui nh bi bin iu
khin.
V d : tnh 10!
giaithua =1
for i = 1 to 10
giaithua = giaithua * i
Next i
Chng 8 : Cc lnh thc thi VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 228
Lnh lp For...Next (tt)
C php 2 :
For Each element In group
[Statement]+
Next [element]
group l 1 collection cc i tng hay 1 dy cc phn t. element l bin
cha tng i tng hay tng phn t trong group.
Statement l 1 lnh thc thi VB bt k.
thi hnh cc lnh [Statement]+ vi tng phn t trong 1 dy hay vi tng
i tng trong 1 collection.
V d : hin th cc i tng ha ca 1 ng dng
Dim objGraphObj As Object
...
For Each GraphObj In GraphObjList
GraphObj.Draw ' hin th i tng
Next GraphObj
Chng 8 : Cc lnh thc thi VB
115
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 229
8.5 Cc lnh lng nhau
Nh ta thy trong c php ca hu ht cc lnh VB u c cha
thnh phn Statement, y l 1 lnh thc thi VB bt k ta gi c
php nh ngha lnh VB l qui to ra cc lnh VB lng nhau. Ta
gi cp ngoi cng l cp 1, cc lnh hin din trong c php ca lnh
cp 1 c gi l lnh cp 2, cc lnh hin din trong c php ca lnh
cp 2 c gi l lnh cp 3,... d c, cc lnh cp th i nn dng
hng nh n k t Tab.
V d : on chng trnh tnh ma trn tng ca 2 ma trn
Dim A(N,N) As Double, B(N,N) As Double
Dim C(N,N) As Double
For i = 1 to n ' duyt theo hng
For j = 1 to n ' duyt theo ct
C(i,j) = A(i,j) + B(i,j)
Next j
Next i
Chng 8 : Cc lnh thc thi VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 230
8.6 Vn thot t ngt khi cp iu khin
Nh ta thy trong c php ca hu ht cc lnh VB u c cha
thnh phn [Statement]+. Theo trnh t thi hnh thng thng, cc lnh
bn trong ny s c thc thi tun t, ht lnh ny n lnh khc cho
n lnh cui, lc ny th vic thi hnh lnh cha mi c th kt thc.
Tuy nhin trong 1 vi trng thi thi hnh c bit, ta mun thot ra khi
lnh cha t ngt ch khng mun thc thi ht cc lnh con trong danh
sch. phc v yu cu ny, VB cung cp lnh Exit vi c php sau
y :
Exit [For | Do | Property | Sub | Function]
Lu VB cho php dng Exit thot khi trc tip ra nhiu cp. VB
khng cung cp lnh Exit If v Exit While thot khi lnh If v lnh
While dng lnh Do ... Loop thay th lnh While v/hoc lnh Goto
(c trnh by sau).
Chng 8 : Cc lnh thc thi VB
116
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 231
thy vic dng cc lnh lng nhau v yu cu cn thot khi t
ngt 1 cp iu khin no , ta hy xem th tc sau, n cho php in
ra tt c cc font ch m c th dng hin th ln mn hnh ln in ra
my in.
Private Sub Form_Click()
Dim objSFont As Object, objPFont As Object
' duyt tng font mn hnh
For Each objSFont In Screen.Fonts()
' duyt tng font my in
For Each objPFont In Printer.Fonts()
If objSFont = objPFont Then
Print objSfont
End If
Next objPFont
Next objSFont
End Sub
Vn thot t ngt khi cp iu khin (tt)
Chng 8 : Cc lnh thc thi VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 232
Quan st lnh If ta thy rng iu kin ch ng ti a 1 ln trong vng
lp objPFont, do khi tha iu kin ri th ta nn thot khi vng
lp ny ngay ( thi gian chy t hn hiu qu hn).
Private Sub Form_Click()
Dim objSFont As Object, objPFont As Object
' duyt tng font mn hnh
For Each objSFont In Screen.Fonts()
' duyt tng font my in
For Each objPFont In Printer.Fonts()
If objSFont = objPFont Then
Print objSfont
Exit For 'thot t ngt khi vng For trong cng
End If
Next objPFont
Next objSFont
End Sub
Vn thot t ngt khi cp iu khin (tt)
Chng 8 : Cc lnh thc thi VB
117
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 233
Cng th d slide trc, nhng nu ta ch mun in tn font ch u
tin c dng bi c mn hnh v my in, th ta phi dng lnh Exit
Sub sau khi in tn font u tin ny.
Private Sub Form_Click()
Dim SFont As objObject, objPFont As Object
' duyt tng font mn hnh
For Each objSFont In Screen.Fonts()
' duyt tng font my in
For Each objPFont In Printer.Fonts()
If objSFont = objPFont Then
Print objSfont
Exit Sub 'thot t ngt khi th tc
End If
Next objPFont
Next objSFont
End Sub
Vn thot khi cp iu khin t ngt (tt)
Chng 8 : Cc lnh thc thi VB
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 234
Th tc l phng tin phn chia code ca module (class, form,
standard) ra nhiu n v nh hn d qun l v s dng. y l
vn kh ln v s c trnh by chi tit trong chng k.
y chng ta gii thiu 1 vi tng ban u v th tc gii
thiu lnh gi (s dng) chng. Th tc l 1 danh sch cc lnh VB
thc hin 1 chc nng r rng (v thng n gin), cc lnh ny c
hp thnh 1 n v v c gn cho 1 tn nhn dng, tn ny nn gi
c chc nng ca th tc (th d ta t danh sch cc lnh VB tnh
cos ca gc x trong 1 n v v t tn cho n l Cos).
th tc c s dng cao, khi nh ngha n ngi ta kt hp 1
danh sch tham s hnh thc vi n. Mi tham s hnh thc miu t 1
d liu m th tc s x l khi th tc c thi hnh. Cc tham s l
phng tin trao i d liu gia lnh gi v code ca th tc. Th d
ta kt hp vi th tc Cos 1 tham s l gc x, ta ni Cos (x) l th tc
tnh Cos ca gc x.
8.7 Lnh gi th tc
Chng 8 : Cc lnh thc thi VB
118
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 235
Sau khi nh ngha th tc, ta c th dng (gi) n. Th tc ch
c thi hnh khi ngi ta gi n bng lnh gi th tc. C php ca
lnh gi nh sau :
[Call] name [arglist]
V d : gi s ta nh ngha (vit) 1 th tc sau y :
Private Sub Update_Display(d As Byte)
n cho php hiu chnh gi tr Display sau khi ngi dng n thm k
s d. Nh vy khi ngi dng n thm k s 5, ta s thc hin gi th
tc nh sau :
Call Update_Display (5)
hay : Update_Display (5)
Lu : Trong trng hp gi th tc khng c bt k tham s no ta nn
dng thm t kha "Call' chng trnh trong sng, d c.
Chng 8 : Cc lnh thc thi VB
Lnh gi th tc (tt)
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 236
MN TIN HC
Chng 9
NH NGHA TH TC & S DNG
Chng 9 : nh ngha th tc & s dng
9.1 Th tc & tm vc s dng th tc
9.2 C php nh ngha hm.
9.3 C php nh ngha th tc
9.4 Gi th tc
9.5 C ch truyn tham s
9.6 Cc th tc nh ngha sn
119
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 237
Nhc li cu trc t chc 1 chng trnh
Mt chng trnh thng cung cp nhiu chc nng cho ngi dng
Chng trnh thng l 1 h thng phc tp. d qun l v xy dng
chng trnh, ngi ta thng chia n ra nhiu n v nh hn. Hin c 2
phng php chia nh chng trnh :
phng php c cu trc : chng trnh c chia nh thnh nhiu
module chc nng, mi module cha nhiu im nhp (entry), mi
im nhp cung cp 1 dch v (chc nng) r rng, n gin no .
Ta gi mi im nhp l th tc thc hin chc nng tng ng.
phng php hng i tng : chng trnh c chia nh thnh
nhiu i tng, mi i tng cha nhiu im nhp (entry), mi
im nhp cung cp 1 dch v (chc nng) r rng, n gin no .
Ta gi mi im nhp l th tc thc hin chc nng tng ng.
Tm li, d dng phng php chia nh chng trnh no th n v chc
nng nh nht m ngi lp trnh c th xy dng v dng (gi) li nhiu
ln trong chng trnh l th tc.
Chng 9 : nh ngha th tc & s dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 238
9.1 Phn loi th tc trong VB
Nu ta phn tch chng trnh theo cu trc th chng trnh VB l tp cc
standard module, trong mi module ta c th nh ngha n th tc khc nhau
thuc 1 trong 2 dng :
th tc - Sub : 1 on lnh thc thi VB thc hin 1 chc nng r rng,
n gin nhng khng tr v gi tr km theo tn th tc.
hm - Function : 1 on lnh thc thi VB thc hin 1 chc nng r rng,
n gin v tr v gi tr km theo tn hm.
Nu ta phn tch chng trnh theo hng i tng th chng trnh VB l tp
cc form hay class module, trong mi module ta c th nh ngha n th tc
khc nhau thuc 1 trong 3 dng :
th tc - Sub : 1 on lnh thc thi VB thc hin 1 chc nng r rng,
n gin nhng khng tr v gi tr km theo tn th tc.
hm - Function : 1 on lnh thc thi VB thc hin 1 chc nng r rng,
n gin v tr v gi tr km theo tn hm.
truy xut thuc tnh - Property : 1 on lnh thc thi VB c/ghi 1 thuc
tnh tng ng ca i tng. C 3 th tc loi ny l Get, Set v Let.
Chng 9 : nh ngha th tc & s dng
120
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 239
Tm vc s dng th tc trong VB
Trong mi standard module, ta c th xc nh tm vc s dng ca tng th
tc :
cc b trong module : dng t kha Private trong lnh nh ngha th tc.
ton cc trong chng trnh : dng t kha Public trong lnh nh ngha th
tc.
Trong mi form hay class module, ta c th xc nh tm vc s dng ca tng
th tc :
cc b trong module (i tng) : dng t kha Private trong lnh nh ngha
th tc.
cc b trong Project : dng t kha Friend trong lnh nh ngha th tc.
cng cng (ai dng cng c) : dng t kha Public trong lnh nh ngha
th tc. Cc th tc cng cng ca i tng c gi l method phn
bit vi Sub/Function.
V nguyn tc, cc th tc Property Get, Set v Let u phi c tm vc
cng cng (dng t kha Public).
Chng 9 : nh ngha th tc & s dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 240
9.2 C php nh ngha hm - Function
C php nh ngha 1 hm :
[Public | Private | Friend] [Static] Function name [(arglist)] [As type]
[statements]
[name = expression]
[Exit Function]
[statements]
[name = expression]
End Function
Dng t kha Public nh ngha hm c tm vc ton cc, ngha l
bt k lnh no ca chng trnh u c th gi hm Public.
Dng t kha Friend nh ngha method thuc 1 class module nhng
ch c tm vc cc b trong Project, ngha l ch c cc lnh trong cng
Project mi c th gi thng ip n hm Friend ca i tng , cn
cc lnh ngoi Project th khng thy hm Friend ca i tng ny.
Chng 9 : nh ngha th tc & s dng
121
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 241
C php nh ngha hm - Function (tt)
Dng t kha Private nh ngha hm c tm vc cc b trong
module, ngha l ch c cc lnh trong cng module mi c th gi hm
Private trong module tng ng.
Dng t kha Static nh ngha cc bin cc b trong hm u l
Static, ngha l gi tr ca chng vn tn ti qua cc ln gi khc nhau
n hm ny.
[statements] l danh sch cc lnh nh ngha bin, hng, kiu cc b
trong function v cc lnh thc thi miu t chnh xc chc nng ca
hm.
Lnh gn name = expression cho php gn gi tr tr v cho lnh gi
hm.
Lnh Exit Function cho php tr ngay iu khin v lnh gi hm ny
(thay v thc thi tip cc lnh cn li ca hm).
Chng 9 : nh ngha th tc & s dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 242
C php nh ngha hm - Function (tt)
arglist l danh sch cc tham s hnh thc, mi tham s c cch
nhau bi du ',' v c nh ngha theo c php nh sau :
[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type]
[=defaultvalue]
Dng t kha Optional khai bo rng tham s tng ng l nhim
trong lc gi hm : truyn hay khng cng c. Trong trng hp ny
ta nn dng thm thnh phn [= defaultvalue] xc nh gi tr cn
truyn nhim .
Dng t kha ByRef khai bo vic truyn tham s bng tham kho,
y l ch truyn tham s nhim . Ngc li dng t kha ByVal
khai bo c ch truyn tham s bng gi tr.
Ch c th dng t kha ParamArray cho tham s cui trong danh sch
tham s, tham s ny cho php ta truyn bao nhiu tham s c th cng
c.
Chng 9 : nh ngha th tc & s dng
122
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 243
Th d nh ngha hm
on code sau nh ngha hm tnh n! giai tha theo gii thut qui :
Public Function giaithua(ByVal n As Long) As Long
If n <= 0 Then ' nu n <=0 th tr v -1
giaithua = -1
Exit Function
End If
If n = 1 Then ' nu n = 1 th tr v kt qu l 1
giaithua = 1
Exit Function
End If
' Nu n > 1 th tnh theo cng thc n! = n * (n-1)!
giaithua = n * giaithua(n - 1)
End Function
Chng 9 : nh ngha th tc & s dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 244
9.3 C php nh ngha th tc - Sub
C php nh ngha 1 th tc Sub :
[Private | Public | Friend] [Static] Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub
ngha ca cc t kha Public, Private, Friend, Static cng nh cc
thnh phn arglist, Exit Sub, statements ging y nh trong vic nh
ngha hm m chng ta gii thiu nhng slide trc.
S khc bit gia hm v th tc l hm lun tr v gi tr kt hp vi
tn hm, cn th tc th khng tr v tr kt hp vi tn th tc (nhng
n vn c th tr kt qu v thng qua cc tham s truyn bng tham
kho).
Nu quan st k, ta thy cc hm x l s kin cho cc i tng giao
din u l Sub, ch khng phi l Function, do t y ta dng on
cu "th tc x l s kin" thay cho "hm x l s kin".
Chng 9 : nh ngha th tc & s dng
123
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 245
C php nh ngha method Get thuc tnh i tng
C php nh ngha 1 method Get :
[Public | Private | Friend] [Static] Property Get name [(arglist)] [As
type]
[statements]
[name = expression]
[Exit Property]
[statements]
[name = expression]
End Property
ngha ca cc t kha Public, Private, Friend, Static cng nh cc
thnh phn arglist, Exit Property, statements, [name = expression]
ging y nh trong lnh nh ngha hm m chng ta gii thiu
nhng slide trc.
Method Get cho php bn ngoi c th c gi tr ca 1 thuc tnh bn
trong i tng nhng di s kim sot ca i tng .
Chng 9 : nh ngha th tc & s dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 246
C php nh ngha method Let thuc tnh i tng
C php nh ngha 1 method Let :
[Public | Private | Friend] [Static] Property Let name ([arglist,] value)
[statements]
[Exit Property]
[statements]
End Property
ngha ca cc t kha Public, Private, Friend, Static cng nh cc
thnh phn arglist, Exit Property, statements ging y nh trong lnh
nh ngha hm m chng ta gii thiu nhng slide trc.
Method Let cho php bn ngoi c th gn gi tr mi cho 1 thuc tnh
bn trong i tng nhng di s kim sot ca i tng .
Chng 9 : nh ngha th tc & s dng
124
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 247
C php nh ngha method Set thuc tnh i tng
C php nh ngha 1 method Set :
[Public | Private | Friend] [Static] Property Set name ([arglist,]
reference)
[statements]
[Exit Property]
[statements]
End Property
ngha ca cc t kha Public, Private, Friend, Static cng nh cc
thnh phn arglist, Exit Property, statements ging y nh trong lnh
nh ngha hm m chng ta gii thiu nhng slide trc.
Method Set cho php bn ngoi c th gn tham kho cho 1 thuc tnh
bn trong i tng nhng di s kim sot ca i tng .
S khc bit gia method Let v Set l Let gn gi tr thuc 1 kiu c
in, cn Set gn tham kho vo 1 thuc tnh c kiu l class i tng.
Chng 9 : nh ngha th tc & s dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 248
9.4 Gi th tc
Sau khi th tc c nh ngha, ta c th s dng (gi) n nh lnh
gi th tc. C php gi th tc c miu t trong slide 216 (chng
8). Do Function l dng th tc c tr v kt qu kt hp vi tn hm
nn lnh gi hm thng c dng trong 1 biu thc (lnh gi hm l
biu thc c bn cu thnh biu thc phc tp hn).
Th d, gi s ta nh ngha hm tnh n! tn l giaithua(n) th ta c th
gi n nh sau :
n = 8
MsgBox (n & "! = " & giaithua(n))
Th d, gi s ta nh ngha th tc hon v 2 s nguyn tn l
Hoanvi(a,b) th ta c th gi n nh sau :
n = 8
m = 4
Call Hoanvi (n,m) ' hoc Hoanvi n,m
' Lc ny n = 8 v m = 4
Chng 9 : nh ngha th tc & s dng
125
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 249
9.5 C ch truyn tham s
Cc tham s trong lnh nh ngha th tc c gi l tham s hnh
thc. Cc tham s (thng l biu thc) trong lnh gi th tc c gi
l tham s thc. Nguyn tc gi th tc l :
s lng cc tham s thc phi bng s lng cc tham s hnh
thc.
v kiu ca tng tham s thc trong lnh gi th tc phi trng (hay
tng thch) vi kiu ca tham s hnh thc tng ng trong lnh
nh ngha th tc.
Lnh gi th tc s truyn tham s thc trong lnh gi cho th tc ri
khi ng th tc chy x l tham s thc va nhn c. Theo thi
gian, th tc s c gi nhiu ln, mi ln vi danh sch tham s thc
c th.
C 2 c ch truyn tham s cho th tc ti thi im gi th tc : truyn
gi tr (ni dung ca tham s) hay truyn tham kho (a ch - v tr b
nh ca tham s). Mi c ch truyn tham s c tnh cht ring m ta s
trnh by k trong cc slide k tip :
Chng 9 : nh ngha th tc & s dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 250
C ch truyn tham s (tt)
Dng t kha ByVal kt hp vi tham s hnh thc khai bo n c
truyn bng gi tr. Khi gi th tc, gi tr ca tham s thc s c
truyn cho th tc cn thc thi. Nh cch truyn tham s ny m th tc
cn thc thi s khng th truy xut d liu ca th tc gi. Tuy nhin
cch truyn bng gi tr ch thch hp cho cc tham s IN (truyn t
phn t gi n th tc cn gi) c kiu v hng (scalar).
truyn hiu qu tham s c ni dung chim nhiu nh hay nhn
kt qu ta s phi dng c ch truyn bng tham kho (a ch). nh
ngha tham s hnh thc c truyn bng tham kho, ta dng t kha
ByRef kt hp vi tham s hnh thc . Khi gi th tc, a ch ca
tham s thc s c truyn cho th tc cn thc thi. Vi c im ny,
tham s thc phi l bin ch khng th l biu thc.
Lu rng nu ta khng dng t kha ByRef hay ByVal kt hp vi
tham s hnh thc th default n c truyn bng tham kho.
Chng 9 : nh ngha th tc & s dng
126
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 251
// version truyn bng gi tr
Private Sub Hoanvi1(ByVal x As Integer, ByVal y As Integer)
Dim tmp As Integer
tmp = x
x = y
y = tmp
End Sub
// version truyn bng tham kho
Private Sub Hoanvi2(ByRef x As Integer, ByRef y As Integer)
Dim tmp As Integer
tmp = x
x = y
y = tmp
End Sub
// version truyn bng tham kho
Private Sub Hoanvi3(x As Integer, y As Integer)
Dim tmp As Integer
tmp = x
x = y
y = tmp
End Sub
C ch truyn tham s (tt)
Chng 9 : nh ngha th tc & s dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 252
Hy kho st k 3 th tc hon v d liu trong slide trc. By gi hy ch
ti vic s dng chng v kt qu t c :
...
Dim intN As Integer
Dim intM As Integer
intN = 4
intM = 8
Call Hoanvi1(intN, intM) ' kt qu intN = 4 v intM = 8 (khng i)
Call Hoanvi2(intN, intM) ' kt qu intN = 8 v intM = 4 ( hon v c)
Call Hoanvi3(intN, intM) ' kt qu intN = 4 v intM = 8 ( hon v c)
...
C ch truyn tham s (tt)
Chng 9 : nh ngha th tc & s dng
127
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 253
9.6 Cc th tc nh sn ca VB
V nguyn tc, ngi lp trnh phi nh ngha th tc (Sub, Function,
Property) trc khi c th s dng li (gi) n. Tuy nhin, VB nh
ngha rt nhiu th tc dng Sub, Function thc hin cc chc nng
rt ph bin, ngi lp trnh c th gi chng bt c khi no cn thit. Ta
gi cc th tc ny l cc th tc nh sn ca VB.
Nu cha i hi chnh xc cao, ngi ta cn gi cc th tc nh
sn ca VB l cc lnh thc thi.
Sau y ta chng ta hy lm quen vi 1 s th tc thng dng.
Chng 9 : nh ngha th tc & s dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 254
Hm hin th form thng bo
C php MsgBox(prompt [, buttons] [, title] [, helpfile, context])
trong :
prompt l biu thc chui miu t thng bo cn hin th.
buttons l biu thc s miu t s lng v loi button c hin th
trong thng bo, nhim l 0 ngha l ch c button Ok c hin th.
title l biu thc chui miu t title bar ca form thng bo.
helpfile l biu thc chui miu t ng dn file Help c dng vi
form thng bo (theo c ch context-sensitive Help).
context l biu thc s miu t ch s ca "topic" cn dng trong file
Help
Thng gi d dng hm MsgBox, ta ch cn miu t tham s
prompt bt buc.
Chng 9 : nh ngha th tc & s dng
128
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 255
Hm hin th form nhp liu (dng chui)
C php InputBox (prompt [,title] [,default] [,xpos] [,ypos]
[,helpfile,context])
trong :
prompt, title, helpfile, context l cc tham s vi ngha y nh trong
hm MsgBox.
xpos, ypos l biu thc s miu t ta (x,y) ca im trn tri ca
form thng bo trong mn hnh. Nu khng c khai bo, form
thng bo s c chnh v tr t ng (gia mn hnh).
default l biu thc chui miu t gi tr default ca chui c nhp.
Thng gi d dng hm InputBox, ta ch cn miu t tham s
prompt bt buc.
Chng 9 : nh ngha th tc & s dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 256
Hm chuyn i kiu
VB cung cp cc hm sau ta c th chuyn gi tr t kiu no v
kiu xc nh :
CBool (expression) : chuyn tr ca biu thc v kiu Boolean
CByte (expression) : chuyn tr ca biu thc v kiu Byte
CCur (expression) : chuyn tr ca biu thc v kiu Currency
CDate (expression) : chuyn tr ca biu thc v kiu Date
CDbl (expression) : chuyn tr ca biu thc v kiu Double
CDec (expression) : chuyn tr ca biu thc v kiu Decimal
CInt (expression) : chuyn tr ca biu thc v kiu Integer
CLng (expression) : chuyn tr ca biu thc v kiu Long
CSng (expression) : chuyn tr ca biu thc v kiu Single
CStr (expression) : chuyn tr ca biu thc v kiu String
CVar (expression) : chuyn tr ca biu thc v kiu Variant
Chng 9 : nh ngha th tc & s dng
129
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 257
Cc hm th vin lin kt ng
Trong code VB, ngoi vic gi cc th tc c nh ngha trong Project v cc
th tc nh sn, ngi lp trnh cn c th gi cc hm trong cc th vin lin
kt ng.
1 th vin lin kt ng c dng *.dll thng c xy dng bng ngn ng
VC++ v cha 1 danh sch cc hm dch v. Khi chng trnh VB gi 1 hm
trong file th vin DLL, file c np vo b nh v hm c lin kt vo vng
nh ca chng trnh chng trnh c th gi c hm cn gi. Cc hm
th vin DLL c s dng chung cho mi phn mm ang chy, ngha l ch
c 1 bn (copy) ca hm th vin DLL trong b nh my tnh phc v cho
mi ng dng gi n.
Ta c th coi Windows nh 1 th vin phn mm DLL ln, th vin ny cung
cp rt nhiu hm dch v khc nhau, ngi ta gi cc hm ny l cc hm API
(Application Programming Interface). Chng trnh VB c th gi bt k hm
no trong th vin ny theo c ch lin kt ng nh trnh by trn.
Trc khi 1 hm DLL c dng trong module VB no , ta cn khai bo c
t hm DLL ny nh lnh Declare ca VB vi c php c trnh by trong
slide 153 (chng 6).
Chng 9 : nh ngha th tc & s dng
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 258
MN TIN HC
Chng 10
TNG TC GIA NGI DNG
& CHNG TRNH
Chng 10: Tng tc gia ngi dng & chng trnh
10.1 Tng qut v tng tc gia ngi dng & chng trnh
10.2 Giao tip vi b2n phm.
10.3 Giao tip vi chut
10.4 V vn bn v ha ln i tng giao din
10.5 Vn in n trong VB
130
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 259
10.1 Tng qut v tng tc gia ngi dng & chng trnh
Trong lc chng trnh chy, n thng tng tc vi ngi dng. S tng tc
gm 2 hot ng chnh :
ch nhn d liu do ngi dng cung cp hay ch nhn lnh ca ngi dng
thc thi 1 chc nng no .
hin th thng bo v/hoc kt qu tnh ton ra mn hnh/my in ngi
dng bit v s dng.
S tng tc gia ngi dng v my tnh c thc hin thng qua cc thit b
nhp/xut (thit b I/O - input/output) nh bn phm/chut nhp d liu hay
lnh, mn hnh/my in xut kt qu hay thng bo...
Hin c hng trm hng khc nhau ch to thit b I/O cho my PC, mi hng
ch to rt nhiu model ca cng 1 thit b (th d hng HP ch rt nhiu
model my in phun mc, my in laser,...). Mi model thit b ca tng hng c
nhng tnh cht vt l ring v khc vi cc model khc.
gip ngi lp trnh truy xut cc thit b I/O d dng, c lp vi tnh cht
phn cng ca thit b, HH Windows v VB che du mi tnh cht phn
cng ca cc thit b v cung cp cho ngi lp trnh 1 giao tip s dng duy
nht, c lp vi thit b.
Chng 10: Tng tc gia ngi dng & chng trnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 260
Kin trc tng tc gia ngi dng & ng dng VB
Driver
Keyboard
Driver
Mouse
Driver
Printer
Driver
ViewSonic
Monitor
AnyKey
Keyboard
Logitech
Mouse
HP Laser 5
Screen Object Keyboard Mouse
Windows
My Visual Basic Application
ng dng giao tip
vI cc thit b tru
tng thng qua
Windows
Windows to &
qun l cc thit
b tru tng
Windows giao tip
vI c device
driver thit b
Cc driver giao
tip vI cc thit
b vt l
Printer Object
Chng 10: Tng tc gia ngi dng & chng trnh
131
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 261
Kin trc tng tc gia ngi dng & ng dng VB (tt)
Xem hnh v ca slide trc (miu t kin trc tng tc gia ngi dng & ng
dng VB), ta thy :
cp thp nht l cc thit b phn cng, mi thit b c tnh cht ring v
khc vi cc thit b khc (ngay c cng loi, cng hng nhng khc model).
cp device driver iu khin v giao tip trc tip vi phn cng nhng che
du mi tnh cht chi tit ca phn cng, n cung cp cho cp trn 1 giao tip
s dng phn cng c lp vi tnh cht phn cng Mi model thit b
phn cng ca 1 hng cn c device driver ring.
cp HH x l cc chc nng lun l (m d liu, x l sai,...) trc khi nh
device driver giao tip trc tip vi phn cng. Windows che du cc loi
phn cng v to ra nhng thit b tru tng ng dng truy xut chng d
dng v c lp vi loi thit b (i tng Printer, Screen, Mouse, Keyboard).
VB to ra nhng i tng giao din cao cp v d dng : mi i tng
giao din (form, window, listbox,...) u c th giao tip trc tip vi ngi
dng nhp/xut d liu, ch nhn s kin hay ch ng thng bo cho
user.
Chng 10: Tng tc gia ngi dng & chng trnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 262
Kin trc tng tc gia ngi dng & ng dng VB (tt)
Sau khi bit kin trc giao tip I/O ca ng dng VB, khi cn giao tip vi
ngi dng, ta nn :
dng cc i tng giao din cao cp (nh sn ca VB hay ActiveX
Control).
trong 1 s trng hp cn thit ta s dng cc i tng ca Windows nh
Printer v Screen.
trong 1 s trng hp ti cn thit ta mi gi cc hm trong giao tip ca
device driver.
v tuyt i khng nn truy xut trc tip phn cng thit b I/O v rt kh
khn, khng an ton, d b tranh chp vi cc ng dng chy ng thi.
Tng tc vi ngi dng thng qua cc i tng giao din c thc hin nh
sau :
nhp liu/nhn lnh thng qua cc th tc x l s kin ca phn t giao
din tng ng.
xut kt qu/thng bo bng cch gn kt qu vo thuc tnh tng ng ca
i tng giao din hay dng cc method v ha tng qut.
Chng 10: Tng tc gia ngi dng & chng trnh
132
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 263
10.2 Giao tip vi keyboard qua cc i tng giao din
Mc d c th c nhiu phn t giao din cng c hin th trn mn hnh ti
tng thi im nhng ch c 1 phn t giao din c giao tip vi thit b I/O, ta
gi phn t giao din ny l 'active' hay c 'focus'.
Lin quan n vic n th 1 phm, VB s to ra 3 s kin sau y v gi v cho
phn t c 'focus' hin hnh :
KeyDown : s kin xy ra khi ngi s dng bm (n xung) bt k mt
phm no trn bn phm.
KeyUp : s kin xy ra khi ngi s dng th phm va n ra.
KeyPress: s kin xy ra khi ngi s dng n/th bt k mt phm no trn
bn phm m to ra c 1 k t ANSI.
Chng 10: Tng tc gia ngi dng & chng trnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 264
Th tc x l s kin KeyDown, KeyUp & KeyPress
Th tc c dng sau :
Private Sub ControlName_KeyDown (KeyCode as Integer, Shift as Integer).
v Private Sub ControlName_KeyUp (KeyCode as Integer, Shift as Integer).
trong :
ControlName l tn ca iu khin nhn s kin keydown/keyup.
KeyCode l m "virtual code" ca phm c n/th.
Shift l gi tr miu t trng thi n gi cc phm iu khin (l mt dy bit
vi bit 0 cho phm SHIFT, bit 1 cho phm CTRL, bit 2 cho phm ALT).
Th tc KeyPress c dng sau :
Private Sub ControlName_KeyPress (KeyAscii As Integer)
trong :
ControlName l tn ca iu khin nhn s kin keypress.
KeyAscii l m k t ANSI ca phm c n/th.
Mi i tng c th tc x l bin c ring, th tc ny cng l method ca i
tng tng ng.
Chng 10: Tng tc gia ngi dng & chng trnh
133
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 265
Private Sub Text1_KeyDown (KeyCode As Integer, Shift As Integer)
Dim ShiftDown, AltDown, CtrlDown, Txt
ShiftDown = (Shift And vbShiftMask) > 0
AltDown = (Shift And vbAltMask) > 0
CtrlDown = (Shift And vbCtrlMask) > 0
If KeyCode = vbKeyF2 Then ' Display key combinations.
If ShiftDown And CtrlDown And AltDown Then
Txt = "SHIFT+CTRL+ALT+F2."
ElseIf ShiftDown And AltDown Then
Txt = "SHIFT+ALT+F2."
ElseIf ShiftDown And CtrlDown Then
Txt = "SHIFT+CTRL+F2."
ElseIf CtrlDown And AltDown Then
Txt = "CTRL+ALT+F2."
ElseIf ShiftDown Then
Txt = "SHIFT+F2."
ElseIf CtrlDown Then
Txt = "CTRL+F2."
ElseIf AltDown Then
Txt = "ALT+F2."
ElseIf SHIFT = 0 Then
Txt = "F2."
End If
Text1.Text = "You pressed " & Txt
End If
End Sub
Th d th tc x l bin c KeyDown ca 1 textbox
Chng 10: Tng tc gia ngi dng & chng trnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 266
Dng thuc tnh KeyPreview
Thng 1 form giao din (hp thoi) cha nhiu iu khin bn trong n Khi
thao tc phm trn 1 iu khin trong form th s kin s gi cho iu khin hay
form ? qui nh c th iu ny, VB cung cp thuc tnh KeyPreview cho
form, ta c th xem/hiu chnh gi tr ca n nh lnh gn :
FormName.KeyPreview [= boolean_expr]
trong :
FormName l tn ca form lin quan.
boolean_expr l biu thc lun l c gi tr True/False.
Khi ta gn tr lun l vo thuc tnh ca form th nu :
tr = True th form s nhn v x l bin c trc ri mi ti iu khin.
tr = False th iu khin nhn v x l bin c, cn form th khng.
Chng 10: Tng tc gia ngi dng & chng trnh
134
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 267
10.3 Giao tip vi chut thng qua cc i tng giao din
Tng t nh bn phm, khi ngi dng thao tc chut, VB s to ra 1 trong 5
bin c sau y v gi v cho phn t c 'focus' hin hnh :
MouseMove : s kin xy ra khi ngi s dng di chuyn chut.
MouseDown : s kin xy ra khi ngi s dng n bt k nt no trn chut
(ty loi chut m n c 1/2/3 nt).
MouseUp : s kin xy ra khi ngi s dng th nt va n ra.
Click : s kin xy ra khi ngi s dng n v th chut.
DblClick : s kin xy ra khi ngi s dng 'Click' chut lin tc hai ln
trong 1 thi gian nh (do ngi dng qui nh chung cho mi trng
Windows).
Chng 10: Tng tc gia ngi dng & chng trnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 268
Th tc x l s kin MouseDown & MouseUp
Th tc c dng sau :
Private Sub ControlName_MouseDown (Button As Integer, Shift As Integer,
x As Single, y As Single)
v Private Sub ControlName_MouseUp (Button As Integer, Shift As Integer, x
As Single, y As Single)
trong :
ControlName l tn ca iu khin nhn s kin MouseDown/MouseUp.
Button l gi tr miu t trng thi cc nt ca chut c n/th (l mt dy
cc bit vi bit 0 cho nt tri, bit 1 cho nt phi v bit 2 cho nt gia).
Shift l gi tr miu t trng thi n gi cc phm iu khin (l mt dy bit
vi bit 0 cho phm SHIFT, bit 1 cho phm CTRL, bit 2 cho phm ALT).
x, y miu t ta (x,y) ca v tr chut c n/th trn mn hnh.
Chng 10: Tng tc gia ngi dng & chng trnh
135
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 269
Th tc x l s kin MouseMove
Th tc c dng sau :
Private Sub ControlName_MouseMove (Button As Integer, Shift As Integer,
x As Single, y As Single)
trong :
ControlName l tn ca iu khin nhn s kin MouseDown/MouseUp.
Button l gi tr miu t trng thi cc nt ca chut c n/th (l mt dy
cc bit vi bit 0 cho nt tri, bit 1 cho nt phi v bit 2 cho nt gia).
Shift l gi tr miu t trng thi n gi cc phm iu khin (l mt dy bit
vi bit 0 cho phm SHIFT, bit 1 cho phm CTRL, bit 2 cho phm ALT).
x, y miu t ta (x,y) ca v tr chut hin hnh trn mn hnh.
Chng 10: Tng tc gia ngi dng & chng trnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 270
Th tc x l s kin Click & DblClick
Th tc c dng sau :
Private Sub ControlName_Click ()
v Private Sub ControlName_DblClick ()
trong :
ControlName l tn ca iu khin nhn s kin Click/DblClick.
Th tc x l s kin Click v DblClick khng c tham s xc nh v tr
n chut hay nt chut no c n. Trong trng hp cn cc thng tin
ph ny x l chi li hn, bn nn dng th tc x l s kin MouseDown
hay MouseUp.
Chng 10: Tng tc gia ngi dng & chng trnh
136
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 271
' bin qui nh trng thi v/khng v
Dim PaintNow As Boolean
'Khi ng thng s v
Private Sub Form_Load ()
DrawWidth = 10 ' Use wider brush.
ForeColor = RGB(0, 0, 255) ' Set drawing color.
End Sub
Private Sub Form_MouseDown (Button As Integer, Shift As Integer, X As
Single, Y As Single)
PaintNow = True ' Enable painting.
End Sub
Private Sub Form_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)
PaintNow = False ' Disable painting.
End Sub
Private Sub Form_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As
Single)
If PaintNow Then
PSet (X, Y) ' Draw a point.
End If
End Sub
Th d th tc x l cc s kin chut
Chng 10: Tng tc gia ngi dng & chng trnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 272
10.4 V vn bn v ha ln i tng giao din
Cc iu khin thng cha thuc tnh Text, Caption hay Value cho php
chng trnh truy xut (c/ghi) cc thuc tnh ny. Tuy nhin nhng i tng
giao din phc hp nh Form, PictureBox, Printer c th hin th nhiu ni dung
chi tit dng vn bn, ha hay nh bitmap bt k. hin th cc ni dung
ny, ta dng cc method sau ca cc i tng tng ng :
Cls : xa ton b ni dung hin th trc ca i tng.
Print : hin th 1 hay nhiu chui vn bn.
PSet : hin th 1 im pixel vi 1 mu xc nh.
Point : tr v gi tr mu ca 1 im pixel.
Line : v 1 on thng hay 1 hp hnh ch nht.
Circle : c 1 hnh trn, ellipse hay cung.
PaintPicture : v 1 nh bitmap c vo i tng.
Cc slide cn li din t chi tit cc method trn cng cc th d v vic dng
chng.
Chng 10: Tng tc gia ngi dng & chng trnh
137
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 273
Th tc Print : xut chui ra thit b xut lun l
Th tc c dng sau :
[objName.]Print [Spc(n) | Tab(n) | expression charpos]*
trong :
objName l tn ca i tng nhn kt qu v (Printer, Form, PictureBox),
default l form hin hnh.
Spc(n) qui nh n k t trng c in ra.
Tab(n) qui nh n k t Tab c in ra, mi Tab a pointer in qua phi thm
1 ct (v tr cc ct c qui nh trc).
expression l biu thc chui hay s cn in.
charpos qui nh v tr in d liu k tip. Nu charpos = ";" th d liu in k
tip s c in lin ngay. Nu charpos = "," th s thm 1 Tab trc khi in d
liu k. Nu khng c charpos sau cng th v tr in s di xung u dng
k tip.
Thng tin v font ch phi c thit lp trc th tc Print thng qua cc thuc
tnh sau ca i tng v : FontName, FontSize, FontItalic, FontBold,...
Nn thit lp thuc tnh CurrentX, CurrentY qui nh r rng v tr in ca mi
lnh Print.
Chng 10: Tng tc gia ngi dng & chng trnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 274
Th d v vic dng th tc Print
on code sau y s hin th 3 hng vn bn trong hp thoi About Box c
chnh gia :
Const strAbout1 = "Trinh MiniIE"
Const strAbout2 = "Version 1.0"
Const strAbout3 = "Written by : Nguyen Van Hiep"
Private Sub Form_paint()
ScaleMode = vbPixels
' Xc nh v tr chui strAbout1 nm gia hp thoi
CurrentX = (ScaleWidth - TextWidth(strAbout1)) / 2
CurrentY = 40
Print strAbout1
' Xc nh v tr chui strAbout2 nm gia hp thoi
CurrentX = (ScaleWidth - TextWidth(strAbout2)) / 2
CurrentY = 60
Print strAbout2
' Xc nh v tr chui strAbout3 nm gia hp thoi
CurrentX = (ScaleWidth - TextWidth(strAbout3)) / 2
CurrentY = 80
Print strAbout3
End Sub
Chng 10: Tng tc gia ngi dng & chng trnh
138
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 275
Function Format : chnh dng d liu trc khi in
Ta thng mun format d liu s hay ngy thng theo yu cu ring trc khi
in n ra. VB h tr chc nng ny thng qua hm Format c c php sau :
Format (expression [,format[,firstdayofweek[,firstweekofyear]]])
trong :
expression l biu thc s hay ngy thng cn format.
format l chui k t nh dng hay tn gi nh miu t chui nh dng sn
c ca VB.
firstdayofweek v firstweekofyear qui nh ngy u trong tun v tun u
trong nm cn cho nh dng d liu ngy thng.
Mt s k t thng dng trong chui nh dng :
0 miu t v tr k s, nu s khng hin th ht vng nh ng
th thm s 0 trc v sau gi tr s cho y vng nh dng.
# miu t v tr k s, khng in s 0 i trc v sau gi tr s.
. miu t v tr du ngn n v (qui nh bi locale ca Windows)
, miu t v tr du ngn n v ngn (qui nh bi locale).
- + % ( ) space miu t chnh xc k t tng ng.
Chng 10: Tng tc gia ngi dng & chng trnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 276
Th d v chnh dng d liu s :
Format syntax Result
Format(8315.4, "00000.00") 08315.40
Format(8315.4, "#####.##") 8315.4
Format(8315.4, "##,##0.00") 8,315.40
Format(315.4,"$##0.00") $315.40
Th d v chnh dng d liu ngy thng :
Format(Now, "m/d/yy") 1/27/93
Format(Now, "dddd, mmmm dd, yyyy") Wednesday, January 27, 1993
Format(Now, "d-mmm") 27-Jan
Format(Now, "mmmm-yy") January-93
Format(Now, "hh:mm AM/PM") 07:18 AM
Format(Now, "h:mm:ss a/p") 7:18:00 a
Format(Now, "d-mmmm h:mm") 3-January 7:18
Th d v hm Format
Chng 10: Tng tc gia ngi dng & chng trnh
139
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 277
Th tc PSet : v im trn thit b xut lun l
Th tc c dng sau :
[objName.]PSet [Step] (x, y), [color]
trong :
objName l tn ca i tng nhn kt qu v (Printer, Form, PictureBox),
default l form hin hnh.
(x,y) miu t ta ca v tr im cn v trn thit b lun l. Nu t kha
Step c dng th (x,y) l ta tng i so vi v tr hin hnh c xc
nh bi 2 thuc tnh CurrentX, CurrentY ca i tng v. Nu t kha Step
khng c dng th (x,y) l ta so vi im gc (0,0).
color l gi tr kiu Long miu t mu v theo h mu RGB (hoc dng hm
QBColor() hoc dng hm RGB(r,g,b) xc nh mu v).
Chng 10: Tng tc gia ngi dng & chng trnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 278
Th tc Line : v on thng/box trn thit b xut lun l
Th tc c dng sau :
[objName.]Line [Step] (x1, y1) - [Step] (x2, y2), [color], [B][F]
trong :
objName l tn ca i tng nhn kt qu v (Printer, Form, PictureBox),
default l form hin hnh.
(x1,y1) miu t ta im u ca on thng cn v trn i tng nhn
kt qu. Nu t kha Step c dng trc ta (x1,y1) th n l ta
tng i so vi v tr hin hnh c xc nh bi 2 thuc tnh CurrentX,
CurrentY ca i tng nhn kt qu. Nu t kha Step khng c dng
th (x1,y1) l ta so vi im gc (0,0).
(x2,y2) miu t ta im cui ca on thng cn v. ngha ca
(x2,y2) cng ging nh (x1,y1).
color l gi tr kiu Long miu t mu v theo h mu RGB.
nu khng c thng s B th th tc Line s v on thng qua 2 im.
nu c thng s B, th tc Line s v hnh ch nht m 2 nh cho c
xc nh bi 2 im. Trong trng hp ny nu c thng s F, hnh ch nht
s c t cng mu vi mu v, ngc li thuc tnh FillColor v FillStyle
ca i tng nhn kt qu s qui nh mu c t.
Chng 10: Tng tc gia ngi dng & chng trnh
140
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 279
Th tc Circle : v hnh trn/ellipse trn thit b xut lun l
Th tc c dng sau :
[objName.]Circle [Step] (x, y), radius, [color, start, end, aspect]
trong :
objName l tn ca i tng nhn kt qu v (Printer, Form, PictureBox),
default l form hin hnh.
(x,y) miu t ta tm im ca vng trn/ellipse/arc cn v trn i tng
nhn kt qu. Nu t kha Step c dng trc ta (x,y) th (x,y) l ta
tng i so vi v tr hin hnh c xc nh bi 2 thuc tnh CurrentX,
CurrentY ca i tng nhn kt qu. Nu t kha Step khng c dng
th (x,y) l ta so vi im (0,0).
radius miu t bn knh.
color l gi tr kiu Long miu t mu v theo h mu RGB.
start, end miu t gc xc nh im u v cui ca arc theo n v radian
(default im u l 0 v im cui l 2).
aspect miu t t l kch thc dc/ngang ca ellipse (default l 1 v
vng trn).
Chng 10: Tng tc gia ngi dng & chng trnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 280
Cc thuc tnh qui nh thng s v
Khi ta gi cc method v PSet, Line, Circle, PaintPicture trn 1 i tng v
no (Printer, Form, PictureBox) th cc method ny dng cc thuc tnh sau
qui nh thng s v ca chng :
CurrentX, CurrentY miu t ta im hin hnh, n c dng lm gc
ta cho cc im v nu c dng t kha Step km theo im v .
FillStyle, FillColor xc nh mu t v mu t cc phn t c din tch (box,
circle).
BackColor xc nh mu nn ca i tng.
ForeColor xc nh mu hin th text hay v bin cc phn t (line, box,
circle).
DrawMode xc nh cch thc v (vbBlackness, vbWhiteness, vbInvert...).
DrawStyle xc nh mu v ca ng v (line, box, circle).
DrawWidth xc nh dy ca ng v (line, box, circle).
Ta c th c/hiu chnh li gi tr cc thuc tnh theo yu cu.
Chng 10: Tng tc gia ngi dng & chng trnh
141
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 281
Chi tit v thuc tnh qui nh n v tnh kch thc
Thuc tnh ScaleMode miu t n v tnh kch thc vi qui nh sau :
Constant Setting Description
vbUser 0 Indicates that one or more of the ScaleHeight,
ScaleWidth, ScaleLeft, and ScaleTop properties
are set to custom values.
vbTwips 1 (Default)Twip (1440 twips per logical inch;
567 twips per logical centimeter).
vbPoints 2 Point (72 points per logical inch).
vbPixels 3 Pixel (smallest unit of monitor or printer resolution).
vbCharacters 4 Character (horizontal = 120 twips per unit;
vertical = 240 twips per unit).
vbInches 5 Inch.
vbMillimeters 6 Millimeter.
vbCentimeters 7 Centimeter.
vbHimetric 8 HiMetric
vbContainerPosition 9 Units used by the control's container to determine
the control's position.
vbContainerSize 10 Units used by the control's container to determine
the control's size.
Chng 10: Tng tc gia ngi dng & chng trnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 282
Chi tit v thuc tnh miu t mu
Mi mu ch TrueColor c tng hp t 3 thnh phn mu c bn Red -
Green - Blue. Trng s ca mi thnh phn mu c miu t bi 1 gi tr Byte
(t 0 n 255). Xc nh 1 mu l xc nh 3 thnh phn mu ca n.
Cc thuc tnh BackColor, ForeColor, FillColor c gi tr miu t mu dng RGB
vi qui nh sau :
Color Red Value Green Value Blue Value
Black 0 0 0
Blue 0 0 255
Green 0 255 0
Cyan 0 255 255
Red 255 0 0
Magenta 255 0 255
Yellow 255 255 0
White 255 255 255
Th d ta vit lnh gn : Form1.BackColor = RGB(0,0,0) thit lp mu nn
ca form tn Form1 l mu en.
Chng 10: Tng tc gia ngi dng & chng trnh
142
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 283
Chi tit v thuc tnh miu t mu (tt)
Nu ch mun dng 1 trong 16 mu c bn ca QBasic (version Basic u tin
ca Microsoft chy trn DOS), ta c th dng hm QBColor. Bng sau lit k
16 mu c bn ny :
Number Color Number Color
0 Black 8 Gray
1 Blue 9 Light Blue
2 Green 10 Light Green
3 Cyan 11 Light Cyan
4 Red 12 Light Red
5 Magenta 13 Light Magenta
6 Yellow 14 Light Yellow
7 White 15 Bright White
Th d ta vit lnh gn : Form1.BackColor = QBColor(15) thit lp mu nn
ca form tn Form1 l mu trng sng.
Chng 10: Tng tc gia ngi dng & chng trnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 284
Chi tit v thuc tnh mu t nn
Thuc tnh FillStyle c gi tr miu t 1 mu t nn vi qui nh sau :
Constant Setting Description
VbFSSolid 0 Solid
VbFSTransparent 1 (Default) Transparent
VbHorizontalLine 2 Horizontal Line
VbVerticalLine 3 Vertical Line
VbUpwardDiagonal 4 Upward Diagonal
VbDownwardDiagonal 5 Downward Diagonal
VbCross 6 Cross
VbDiagonalCross 7 Diagonal Cross
Th d ta vit lnh gn : Form1.FillStyle = VbVerticalLine thit lp mu t
nn ca cc phn t trong form l cc ng thng ng.
Chng 10: Tng tc gia ngi dng & chng trnh
143
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 285
Chi tit v thuc tnh mu v ng vin
Thuc tnh DrawStyle c gi tr miu t 1 mu v ng vin vi qui nh sau :
Constant Setting Description
VbSolid 0 (Default) Solid
VbDash 1 Dash
VbDot 2 Dot
VbDashDot 3 Dash-Dot
VbDashDotDot 4 Dash-Dot-Dot
VbInvisible 5 Transparent
VbInsideSolid 6 Inside Solid
Th d ta vit lnh gn : Form1.DrawStyle = VbDash thit lp mu v ng
vin ca cc phn t trong form l cc ng gch-gch di.
Lu thuc tnh DrawStyle ch c ngha theo bng trn khi ta thit lp thuc
tnh DrawWidth = 1. Trong trng hp DrawWidth > 1 th DrawStyle <> 5 u
to ra nt v lin tc.
Chng 10: Tng tc gia ngi dng & chng trnh
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 286
Function PaintPicture : v nh bitmap bt k
Mi i tng v c method PaintPicture cho php ta v nh bitmap bt k. C
php nh sau :
[objName.]PaintPicture picture, dx, dy, dw, dh, sx, sy, sw, sh, opcode
trong :
objName l tn ca Form, PictureBox hay Printer, nu khng c th form
hin hnh c v.
picture l nh bitmap gc c dng v.
dx, dy l to nh trn tri ca vng cha nh v trong i tng v.
dw, dh l rng, cao ca vng cha nh v trong i tng v.
sx, sy l to nh trn tri ca vng cha nh trong nh gc.
sw, sh l rng, cao ca vng cha nh trong nh gc.
opcode miu t hnh vi a nh gc vo i tng v, ta thng dng cc
m sau :
vbSrcCopy : copy nh gc vo v tr qui nh ca i tng v.
vbSrcPaint : Or tng pixel nh gc vi tng bit i tng v tng ng.
vbSrcInvert : Xor tng pixel nh gc vi tng bit i tng v tng ng.
vbSrcAnd : And tng pixel nh gc vi tng bit i tng v tng ng...
Chng 10: Tng tc gia ngi dng & chng trnh
144
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 287
Th d v vic dng function PaintPicture
To 1 form trng, 'add' iu khin PictureBox cha nh gc vo form, set thuc tnh Visible
= False, thuc tnh Picture = n dn file nh, ri vit on code sau cho form :
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Form_Load()
AutoRedraw = False ' VB gi hm x l bin c Paint
End Sub
Private Sub Form_Paint() ' hin th nh chy t t sang phi
Dim x As Integer, y As Integer
ScaleMode = vbPixels ' n v tnh ca form l pixel
Picture1.ScaleMode = vbPixels ' n v tnh nh gc l pixel
x = 0 ' thit lp v tr u ca nh
y = 50
While True
PaintPicture Picture1, x, y, 60, 60, 0, 0, , , vbMergePaint ' v nh v tr x,y
DoEvents ' cho php ng dng p ng s kin
Sleep (10) ' ng ch 10ms
Line (x, y)-(x + 60, y + 60), BackColor, BF ' xa nh va v
x = x + 4 ' di chuyn v tr v bn phi 4 pixel
If (x - 60 > ScaleWidth) Then x = 0 ' nu nh t l phi th set v tri
Wend
End Sub
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 288
10.5 Vn in n trong VB
Trong chng trnh VB, ta c th in thng tin ra my in bng cch dng 1 trong
3 cch sau :
dng cc method v vn bn, ha v nh bitmap ln 1 form theo mun
ri gi method PrintForm in form kt qu ra my in. y l cch d dng
nht kim tra kt qu trc khi in ra giy thc s, nhng kt qu c
phn gii khng cao (v trng vi phn gii ca mn hnh).
dng cc method v vn bn, ha v nh bitmap theo mun trc tip
ln i tng Printer cng 2 method iu khin NewPage & EndDoc xut
kt qu trc tip ra my in default ca Windows. Cch ny cho kt qu c
phn gii ng vi my in (thng rt cao so vi phn gii mn hnh).
dng lnh Set Printer = Printers(n) chn my in c th trong danh sch
cc driver my in hin c ca Windows ri dng cc method v vn bn,
ha v nh bitmap theo mun trc tip ln i tng Printer cng 2
method iu khin NewPage & EndDoc xut kt qu trc tip ra my in
va chn.
Chng 10: Tng tc gia ngi dng & chng trnh
145
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 289
MN TIN HC
Chng 11
QUN L H THNG FILE
Chng 11 : Qun l h thng file
11.1 Tng qut v truy xut file trong VB
11.2 Qui trnh in hnh truy xut Binary file
11.3 Qui trnh in hnh truy xut Random file
11.4 Qui trnh in hnh truy xut Sequential file
11.5 Cc hm truy xut thuc tnh file
11.6 Cc lnh x l th mc
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 290
Tng qut v thi gian sng ca bin d liu
Chng trnh x l d liu thng qua cc bin d liu. Nh ta bit,
mi bin d liu ch c i sng ngn ngi : hoc bng i sng ca 1
th tc, hoc bng i sng ca 1 module (hay i tng) hoc cao nht
l bng thi gian chy ng dng, t lc ng dng c np vo b nh
trong n lc chng trnh kt thc thc thi.
lu gi gi tr ca 1 s bin hu trao i d liu gia 2 ng dng khc
nhau hay gia 2 ln chy khc nhau ca cng 1 ng dng, ta s ghi gi
tr cc bin ny ra mi trng cha tin bn vng trn nhng n v cha
tin c lp c gi l file.
Trong chng 2, chng ta trnh by cc khi nim v file, cch t
chc a cng thnh cy phn cp cc file cng nh cc thao tc qun l
h thng file trc tip bi ngi dng.
Trong chng ny ta s nghin cu chi tit cc phng tin m VB cung
cp thc hin cc thao tc qun l h thng file, c bit l vic truy
xut ni dung ca file, t trong code ca ng dng VB.
Chng 11 : Qun l h thng file
146
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 291
Cu trc file
cp HH, file l danh sch gm n byte cha c ng ngha.
Chnh ng dng phi t qui nh cu trc c th ca file mnh to
ra/c li v ng ngha ca tng n v cu trc ny.
VB cung cp cho ng dng 3 dng file khc nhau, ng vi mi
dng file c 1 cch thc truy xut d liu tng ng :
file tun t (Sequential File) hay file vn bn l danh sch gm n
byte, mi byte l 1 k t ANSI. Th d file source code ca cc class
VB *.bas.
file nh phn (Binary File) l danh sch gm n byte nh phn cha c
cu trc. Th d file Word, file Excel, file kh thi - executable.
file truy xut trc tip (Random File) l danh sch gm n record c
cng di, mi record cha nhiu field thng tin. Th d file cha
cc h s sinh vin.
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 292
Tng qut v qun l h thng file trong VB
VB cung cp cho ngi lp trnh 2 phng php khc nhau qun l
h thng file :
gi cc th tc truyn thng nh Open, Close, Input, Write, Get,
Put... Ta c th gi cc th tc ny l cc lnh VB.
dng m hnh i tng FSO (File System Object). Vi phng
php ny, u tin ngi lp trnh s to ra i tng
FileSystemObject ri mi khi cn qun l h thng file, h ch cn gi
method tng ng ca i tng trn.
Mc d FSO l phng php hng i tng, rt thn thin v d dng,
nhng hin FSO cha mnh, ch cho php truy xut file text -vn bn,
ch cha cho php truy xut 2 dng file Binary v Random. Do trong
chng ny chng ta ch tp trung gii thiu phng php dng cc th
tc truyn thng truy xut file. Sau ny khi c iu kin, mi SV s t
nghin cu thm cch dng m hnh FSO.
Chng 11 : Qun l h thng file
147
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 293
11.1 Tng qut v truy xut file trong VB
Qui trnh truy xut 1 file trong VB gm 3 bc chnh :
m/to file (gi th tc Open) : khai bo cho h thng bit ta sp sa
truy xut 1 file c xc nh bi ng dn c th cng cc ch
truy xut file c th.
lp truy xut file thng qua vic gi cc th tc Input, Get, Write,
Put,... Thng mi th tc trn ch truy xut 1 n v thng tin nh
ca file nn ta phi lp nhiu ln n khi ht file, tuy nhin ta c
quyn c/ghi ton b ni dung file vo/ra b nh.
ng file (gi th tc Close) : khai bo cho h thng bit ta khng
cn mun truy xut file na h thng cm khng cho bt k lnh
no trong ng dng ca ta truy xut file na.
gip cc bn d dng tip thu thng tin, chng ti s trnh by
qui trnh truy xut file chi tit trn tng loi file c th : Text file,
Random file v Binary File.
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 294
Bng cc lnh VB truy xut file
x Input #
x Line Input #
x Print #
x Write #
x x Input ()
x Type .... EndType
x x Put
x x Get
x x x Close
x x x Open
Binary File Random File Sequential File Tn pht biu
Chng 11 : Qun l h thng file
148
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 295
Bng cc function truy xut file
Dir : duyt cc phn t trong 1 th mc
FileCopy : nhn bn v tnh 1 file thnh file mi
FileDateTime : c/hiu chnh ngy/gi hiu chnh file ln cui
FileLen : xc nh di file cha m
FreeFile : xc nh ch s file cn trng c th dng an ton
Loc : xc nh v tr truy xut hin hnh trong file
LOF : xc nh di file m
Seek : xc nh/thit lp v tr truy xut file
GetAttr : c thuc tnh file
SetAttr : ghi thuc tnh file
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 296
11.2 Qui trnh in hnh truy xut Binary file
C php lnh open file nh phn nh sau :
Open pathname For Binary As filenumber
Nu cha bit cu trc d liu ca file, nn dng bin dy cc byte
c/ghi d liu t/ra file nh phn. Nu bit cu trc d liu ca file,
nn khai bo kiu d liu miu t cu trc ri khai bo bin c kiu
va nh ngha cha thng tin c t file vo.
Dng lnh Seek [#]filenumber, position di pointer c/ghi ti v tr
xc nh trc khi truy xut.
Dng lnh Get [#]filenumber, [position], AVariable c d liu t v tr
position ri cha vo bin AVariable. S byte c c = kch thc ca
bin d liu.
Dng lnh Put [#]filenumber, [position], AVariable ghi ni dung ca
bin AVariable ra file t v tr position. S byte c ghi = kch thc ca
bin d liu.
Sau khi x l xong file, ta dng lnh Close [#]filenum ng file li.
Chng 11 : Qun l h thng file
149
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 297
Th d truy xut Binary file
Mi file kh thi (executable) u c 1 header di 20h (32) byte vi cc field nh
sau :
Index Field Din gii
0 Magic Chui 2 k t magic "MZ"
... ... cc field khc cha cn ch
18h Offset Offset ti bng ti nh chng trnh stub
Nu gi tr field Offset (2 byte) offset 18h (24) c gi tr l 40h (64) th file
tng ng l file executable trn Windows (*.exe, *.dll, *.ocx, *.scr, *.drv,...). Cn
nu gi tr Offset < 40h th file tng ng l file *.exe chy trn DOS.
Da vo Header trn, ta th vit 1 ng dng cho php user chn ng dn
ca 1 file bt k ri kim tra tnh cht ca file v hin th kt qu :
Khng phi file executable
File executable chy trn DOS
File executable trn Windows (*.exe, *.dll, *.ocx, *.scr, *.drv,...).
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 298
Giao din ngh ca th d truy xut Binary file
Textbox hin th ng
dn file cn kho st.
Button duyt v chn
file.
Textbox cha kt qu
kho st.
Option Explicit
' Th tc x l s kin Click button
Private Sub cmdBrowse_Click()
CommonDialog1.ShowOpen ' hin th ca s duyt v chn file
txtFileName.Text = CommonDialog1.FileName
CheckFileClass (txtFileName.Text)
End Sub
CommonDialog duyt file (b n)
Chng 11 : Qun l h thng file
150
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 299
Chi tit hm kim tra loi file
Private Sub CheckFileClass(strFileName As String)
Dim FileNum As Integer
Dim strMagic As String * 2
Dim intOffset As Integer
FileNum = FreeFile ' Tm ch s file cha dng v m file
Open strFileName For Binary As FileNum
Get FileNum, 1, strMagic ' c 2 chui 2 k t magic u file
If strMagic <> "MZ" Then
txtFileClass.Text = "Khong phai file executable"
Exit Sub
End If
Get FileNum, &H19, intOffset ' c word Offset ti chng trnh Stub
If intOffset < &H40 Then
txtFileClass.Text = "File executable tren MSDOS"
Else
txtFileClass.Text = "File executable tren Windows (*.exe, *.dll, *.ocx,...)"
End If
Close #FileNum
End Sub
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 300
11.3 Qui trnh in hnh truy xut Random file
C php lnh open file Random nh sau :
Open pathname [For Random] As filenumber Len = reclength
Phi khai bo kiu d liu miu t cu trc ca tng record d liu c
c/ghi ri khai bo bin c kiu va nh ngha cha thng tin c t
/ghi ra file.
Dng lnh Seek [#]filenumber, position di pointer c/ghi ti v tr
record xc nh.
Dng lnh Get [#]filenumber, [position], AVariable c d liu t v tr
position ri cha vo bin AVariable. S byte c c = kch thc ca
record d liu.
Dng lnh Put [#]filenumber, [position], AVariable ghi ni dung ca
bin AVariable ra file t v tr position. S byte c ghi = kch thc ca
bin record d liu.
Sau khi x l xong file, ta dng lnh Close [#]filenumber ng file
li.
Chng 11 : Qun l h thng file
151
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 301
Th d truy xut Random file
Type SVRecord
hoten As String *30
tuoi As Byte
diachi As String *50
lop As String*10
...
End Type
Dim MyRecord As Record ' nh ngha bin cha tng record ca file.
Dim MaxSize As Long, RecordNumber As Long
' 1. m file ch random-file.
Open "HosoSinhvien" For Random As #1 Len = Len(MyRecord)
MaxSize = LOF(1) \ Len(MyRecord) ' Tnh s record trong file.
' 2. lp c tng record t cui file ln u file
For RecordNumber = MaxSize To 1 Step - 1
Seek #1, RecordNumber ' thit lp v tr truy xut.
Get #1, , MyRecord ' c record.
' X l record va c vo
...
Next RecordNumber
' 3. ng file.
Close #1
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 302
11.4 Qui trnh in hnh truy xut Sequential file
C php lnh open file Sequential nh sau :
Open pathname [Input | Output | Append] As filenumber [Len =
buffersize]
Nu file c m ch Input & cha tn ti th li sai xy ra. Nu file
c m ch Output | Append & cha tn ti th h thng s to ra
file mi.
Dng lnh Line Input #filenumber, varname c 1 hng vn bn t
file (kt thc bi k t CR - Carriage Return hay CRLF).
Dng lnh Input #filenumber, varlist c cc chui hay s t file
(c trnh by chi tit trong slide k).
Dng hm Input(number, [#]filenumber) c 1 chui t file (c
trnh by chi tit trong slide k).
Dng lnh Write #filenumber, [outputlist] ghi cc chui hay s ra file
(c trnh by chi tit trong slide k).
Sau khi x l xong file, ta dng lnh Close [#]filenum ng file li.
Chng 11 : Qun l h thng file
152
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 303
Chi tit v lnh Input #
C php : Input #filenumber, varlist
trong varlist l danh sch cc bin cha gi tr chui hay s cn
c, cc bin trong danh sch c ngn cch bng du ','.
Cch thc x l d liu trn file nhp :
Dng d liu trn file Gi tr nhn c
du ',' hay dng trng Empty
#NULL# Null
#TRUE# hay #FALSE# True hay False
#yyyy-mm-dd hh:mm:ss# Ngy/gi
#ERROR errornumber# m li errornumber
"abcdef" chui abcdef
1254.386 gi tr 1254.386
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 304
Chi tit v hm Input
Ngoi lnh Input va gii thiu slide trc, VB cung cp thm hm
Input vi c t sau : Input number, [#]filenumber
trong number l s k t ANSI cn c t file filenumber.
Khc vi lnh Input, kt qu tr v ca hm Input gm mi k t th trn
file k c cc k t iu khin CR, LF, khong trng, ",", nhy kp...
Ch dng hm Input trn cc file c m ch Input | Binary.
Chng 11 : Qun l h thng file
153
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 305
Chi tit v lnh Write #
C php : Write #filenumber, [outputlist]
trong outputlist l danh sch cc biu thc cha gi tr chui hay s
cn ghi, cc biu thc trong danh sch c ngn cch bng du ','.
Cch thc x l in d liu ra file :
Kiu d liu Kt qu c ghi trn file
outputlist ch c du ',' dng trng (CRLF)
Null #NULL#
lun l #TRUE# hay #FALSE#
Date #yyyy-mm-dd hh:mm:ss#
m li errornumber #ERROR errornumber#
chui abcdef "abcdef"
s chui miu t s dng du '.'
Cc kt qu in c ngn cch vi nhau bi du ',' trn file xut.
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 306
Th d truy xut Sequential file
Ta th vit ng dng cho php user chn ng dn ca 1 file text-only ri m
s t c cha trong file ny. Gi s mi t l 1 chui k t ch s (a-z hay 0-
9) bt k c ngn cch nhau bi cc k t khng phi l ch s.
Textbox hin th ng
dn file cn kho st.
Button duyt v chn
file.
Textbox cha s t
trong file.
Option Explicit
' Th tc x l s kin Click button Browse
Private Sub cmdBrowse_Click()
CommonDialog1.ShowOpen
txtFileName.Text = CommonDialog1.FileName
txtWordCount.Text = WordCount(txtFileName.Text)
End Sub
Chng 11 : Qun l h thng file
154
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 307
Chi tit hm m t trong file
Private Function WordCount(strFileName As String) As Long
Dim lngWcount As Long, FileNum As Integer, Char As String * 1
FileNum = FreeFile ' Tm ch s file cha dng v m file
Open strFileName For Input As FileNum
lngWcount = 0
Do While Not EOF(FileNum) ' Lp n ht file.
Do ' tm cc du ngn trc 1 t mi
Char = Input(1, #1)
Char = LCase(Char)
Loop Until ("a" <= Char And Char <= "z") Or ("0" <= Char And Char <= "9")_
Or EOF(FileNum)
If EOF(FileNum) Then GoTo CloseRet
lngWcount = lngWcount + 1 ' tng s t ln 1
Do ' tm v b cc k t ca t hin hnh
Char = Input(1, #1)
Char = LCase(Char)
Loop Until Not (("a" <= Char And Char <= "z") Or ("0" <= Char And Char <= "9"))_
Or EOF(FileNum)
If EOF(FileNum) Then GoTo CloseRet
Loop
CloseRet:
WordCount = lngWcount
Close #FileNum
End Function
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 308
Cc hm xc nh v tr truy xut trong file
Hm Loc (filenum) tr v v tr truy xut hin ti trong file filenum.
Mode Return Value
Random ch s record c/ghi ln cui cng.
Binary ch s byte c/ghi ln cui cng.
Output ch s byte c/ghi ln cui cng /128
| Append (nhng thng khng dng kt qu ny)
| Input
V d : Dim MyChar As Byte
Open "TestFile" For Binary As #1 ' m file c/ghi.
Do While Not EOF(1) ' lp cho n ht file.
MyChar = Input(1, #1) ' c byte k tip.
Debug.Print Loc(1) ' hin th v tr byte va c c
Loop
Close #1 ' ng file.
Chng 11 : Qun l h thng file
155
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 309
Cc hm xc nh v tr truy xut trong file (tt)
Hm Seek (filenum) tr v v tr truy xut k tip trong file filenum.
Mode Return Value
Random hot ng truy xut k tip s xy ra v tr record ny
Binary hot ng truy xut k tip s xy ra v tr byte ny
| Output, v tr byte u tin l 1, k tip l 2...
| Append
| Input
V d : Dim MyChar As Byte
Open "TestFile" For Input As #1 ' m file c.
Do While Not EOF(1) ' lp cho n ht file.
MyChar = Input(1, #1) ' c k t (byte) k tip.
Debug.Print Seek(1) ' hin th v tr byte s c k tip
Loop
Close #1 ' ng file.
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 310
Cc hm xc nh v tr truy xut trong file (tt)
Lnh Seek [#]filenumber, position thit lp v tr truy xut k tip trong
file filenum.
Mode Return Value
Random hot ng truy xut k tip s xy ra v tr record position
Binary hot ng truy xut k tip s xy ra v tr byte position
| Output, v tr byte u tin l 1, k tip l 2...
| Append
| Input
Chng 11 : Qun l h thng file
156
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 311
11.5 Cc hm truy xut thuc tnh file
Hm FileDateTime (pathname) tr v ngy/gi hiu chnh ln cui ca
file xc nh bi thng s pathname.
V d : Dim MyStamp As Date
MyStamp = FileDateTime ("c:\windows\win.com")
Hm GetAttr (pathname) tr v byte thuc tnh ca file xc nh bi
thng s pathname. Th t cc bit thuc tnh trong byte thuc tnh nh
sau :
Gi tr Tn hng gi nh Din gii
0 vbNormal Normal
1 vbReadOnly file ch c
2 vbHidden file n
4 vbSystem file h thng
8 vbVolume tn nhn a
16 vbDirectory th mc
32 vbArchive file b thay i t ln backup cui
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 312
Cc hm truy xut thuc tnh file (tt)
V d : If GetAttr ("c:\windows\win.com") And vbReadOnly Then
MsgBox "c:\windows\win.com l file ch c"
End If
Hm SetAttr pathname, attributes thit lp thuc tnh ca file xc nh
bi thng s pathname theo byte attributes.
V d : on code sau s thit lp thuc tnh ca file c:\windows\win.com
v read-only.
Dim bytFileAttr As Byte
bytFileAttr = GetAttr ("c:\windows\win.com")
bytFileAttr = bytFileAttr Or vbReadOnly ' Or bitwise
SetAttr "c:\windows\win.com", bytFileAttr
Chng 11 : Qun l h thng file
157
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 313
Cc hm truy xut thuc tnh file (tt)
Hm FreeFile [(rangenumber)] tr v 1 s thuc kiu Integer miu t
ch s file cha c dng ( ta dng an ton). Thng khng cn
dng tham s khi gi hm ny.
Hm LOF (#filenum) tr v 1 gi tr thuc kiu Long miu t kch thc
ca file c m v hin c xc nh bi thng s #filenum.
V d : Dim lngFileSize As Long, filenum As Integer
filenum = FreeFile
Open "c:\windows\win.com" For Input As #filenum ' m file
lngFileSize = LOF (filenum) ' ly kch thc file m #1
...
Close #1 ' ng file
Hm FileLen (pathname) tr v 1 gi tr thuc kiu Long miu t kch
thc ca file xc nh bi thng s pathname.
V d : Dim lngFileSize As Long
lngFileSize = FileLen ("c:\windows\win.com")
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 314
Lnh nhn bn v xa file
Lnh FileCopy SourcePath, DestPath.
nhn bn file SourcePath ra file DestPath. Khng c m file ri nhn
bn n.
V d : FileCopy c:\autoexec.bat c:\backup\autoexec.bat
Lnh Kill pattern
xa t 0 n n file c tn tha mn mu pattern (dng k t * v ?
miu t).
V d : Kill "c:\windows\*.tmp"
Chng 11 : Qun l h thng file
158
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 315
11.6 Cc lnh x l th mc
Lnh MkDir pathname : to th mc mi.
V d : MkDir "c:\windows\temp"
Lnh RmDir pathname : xa th mc trng c tn l pathname, nu th
mc cha trng th phi dng lnh Kill v/hoc RmDir xa cc file v
th mc con ca n trc.
V d : RmDir "c:\windows\tmp"
Hm CurDir [(drive)] : tr v ng dn ca th mc lm vic ca a
hin hnh (hoc ca a c xc nh bi thanh s).
V d : MyPath = CurDir ' tr v "c:\windows" nu ta ang lm vic
y.
Lnh ChDir pathname : chuyn th mc lm vic ca a hin hnh
v v tr qui nh bi tham s.
V d : ChDir "c:\windows\tmp"
Lnh ChDrive drive : chuyn a hin hnh v a c xc nh
trong tham s.
V d : ChDrive "e"
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 316
Hm duyt cc phn t trong 1 th mc
C php : Dir [(pattern[, attributes])]
trong pattern xc nh mu cc phn t cn tm, attributes miu t
byte thuc tnh ca phn t cn tm.
Nu c tham s pattern th hm Dir s tr v ng dn ca phn t
u tin tm c (hay chui rng nu khng tm c), nu khng c
pattern th hm Dir tr v ng dn ca phn t k tip tha pattern
c xc nh ln cui.
ngha cc bit trong byte attributes c trnh by trong silde 261.
Chng 11 : Qun l h thng file
159
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 317
Th d xa file qui
Trong lc hot ng, cc ng dng thng to ra cc file tm c phn
ni rng l *.tmp, *.bak,... Khi kt thc, ng dng s xa cc file tm i.
Tuy nhin trong 1 s trng hp c bit (my treo, mt in,...) cc file
tm khng c xa ht v vn tn ti trn a cng nhiu th mc
khc nhau. Ta hy th vit 1 ng dng cho php user xc nh mu cc
file cn xa ri tm cc file tha mn mu qui nh v xa chng, vic
tm v xa nn qui t v tr mu xa trit . Th d nu ngi
dng nhp pattern c:\*.tmp, ng dng s tm v xa mi file *.tmp t th
mc gc.
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 318
Giao din ngh ca ng dng
DriveListBox chn
a.
DirListBox chn th
mc.
TextBox nhp
pattern file cn xa.
Button bt u
duyt file qui v
xa.
ListBox hin th cc
file b xa.
Chng 11 : Qun l h thng file
160
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 319
Const QMAX = 10000
Dim strDirQueue(0 To QMAX) As String ' Hng cha cc th mc cn duyt
Dim iHead As Integer ' ch s trong hng cha th mc sp duyt
Dim iTail As Integer ' ch s trong hng sp cha th mc cn duyt
Private Sub Form_Resize()
ScaleMode = vbPixels
Dir1.Move 8, 45, 170, Me.ScaleHeight - 50
FileList.Move 180, 70, Me.ScaleWidth - 185, Me.ScaleHeight - 75
End Sub
Private Sub Drive1_Change() ' th tc x l s kin chn a
Dir1.Path = Drive1.Drive
End Sub
Private Sub Dir1_Change() ' th tc x l s kin chn th mc
If (Right(Dir1.Path, 1) = "\") Then
strDirQueue(0) = Dir1.Path
Else
strDirQueue(0) = Dir1.Path & "\"
End If
End Sub
Code ca ng dng xa file qui
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 320
' Th tc x l s kin Click button Start
Private Sub cmdStart_Click()
Dim bytPredIdx As Byte
Dim bytCurIdx As Byte
Dim strTmp As String
bytPredIdx = 0
bytCurIdx = 1
iHead = 0
iTail = 1
While iHead < iTail
Call DuyetXoaFileDequi
iHead = iHead + 1
If (iHead > QMAX) Then iHead = 0
Wend
End Sub
Code ca ng dng xa file qui (tt)
Chng 11 : Qun l h thng file
161
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 321
Private Sub DuyetXoaFileDequi()
Dim Name As String, Path As String, strFilePath As String, intAttr As Integer
Path = strDirQueue(iHead)
Name = Dir(Path, vbDirectory) ' ly 1 phn t tha mn pattern
Do While Name <> "" ' Lp x l phn t, nu cn.
If Name <> "." And Name <> ".." Then ' b th mc hin hnh v cha ca n
strFilePath = Path & Name
intAttr = GetAttr(strFilePath)
If (intAttr And vbDirectory) = vbDirectory Then ' nu l th mc th lu gi vo hng
strDirQueue(iTail) = strFilePath & "\"
iTail = iTail + 1
If (iTail > QMAX) Then iTail = 0
Else ' nu l file kim tra xem tha pattern khng
If LCase(Name) Like txtPattern.Text Then
intAttr = intAttr And Not vbReadOnly
SetAttr strFilePath, intAttr
Kill strFilePath
FileList.AddItem strFilePath
End If
End If
End If
Name = Dir ' ly phn t k tha mn pattern.
Loop
End Sub
Code ca ng dng xa file qui (tt)
Chng 11 : Qun l h thng file
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 322
MN TIN HC
Chng 12
LINH KIN PHN MM
& TRUY XUT DATABASE
Chng 12 : Linh kin phn mm & truy xut database
12.1 Tng qut v linh kin phn mm
12.2 Cch to v dng linh kin phn mm
12.3 Tng qut v truy xut database
12.4 Tng qut v debug m ngun VB
162
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 323
Mc tiu ca qui trnh pht trin phn mm hng i tng l to ra
ng dng c cu trc thun nht : tp cc i tng sng v tng tc
ln nhau.
Mi i tng ca ng dng c th c to ra nh 1 trong cc cch
sau :
chn menu Project.Add Class Module to ra 1 class module mi miu
t cu trc chi tit ca i tng cn to ra : cc thuc tnh d liu v cc
method ca i tng.
chn menu Project.Add File ri khai bo ng dn ca file *.bas cha 1
class module ca 1 ng dng c sn copy class module ny vo
Project ng dng hin ti (y l 1 phng php tha k thnh qu).
s dng cc iu khin sn c ca VB xy dng form giao din.
'add' module *.ocx cha 1 hay nhiu ActiveX Control ang c Windows
qun l vo Project ng dng hin ti dng chng y nh cc iu khin
sn c ca VB.
12.1 Tng qut v linh kin phn mm
Chng 12 : Linh kin phn mm & truy xut database
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 324
VB cho php to linh kin phn mm ActiveX Control nh 1 trong 3 loi
Project ActiveX EXE, ActiveX DLL v ActiveX Control. Tuy nhin qui
trnh chi tit to ActiveX Control vt qu khun kh ni dung ca
mn hc ny.
Vic dng ActiveX Control cng ging nh dng control nh sn ca
VB, ta t chng 1 cch trc quan vo cc form giao din vi kch thc
v v tr ph hp vi nhu cu. Khi vit code, ta c th truy xut cc
thuc tnh d liu v cc method ca ActiveX Control y nh truy xut
cc thnh phn trong control nh sn.
12.2 Cch to v dng linh kin phn mm
Chng 12 : Linh kin phn mm & truy xut database
163
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 325
dng 1 linh kin phn mm ActiveX Control trong 1 form ca Project ng dng,
trc ht ta phi thm n vo ca s Toolbox ca Project theo qui trnh in hnh
sau y :
Qui trnh 'add' 1 ActiveX Control vo Project
1. n phi chut vo v tr
trng ca Toolbox, chn
mc Components
2. chn tab Controls, duyt v chn mc tng ng, chn OK.
3. Ca
s
Toolbox
s cha
cc icon
miu t
cc Act.
Control
trong
module
va
chn.
Chng 12 : Linh kin phn mm & truy xut database
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 326
thy vic dng ActiveX Control hu xy dng phn mm d dng
nh th no, chng ta hy th vit 1 trnh duyt Web vi chc nng
tng t nh IE ca Microsoft, ta tm gi ng dng sp vit ny l
MyIE.
Vic vit phn mm duyt Web t u rt kh khn v bn cn phi
trang b nhiu kin thc nh : k thut hin th vn bn v ha, k
thut tng tc vi ngi dng thng qua bn phm v chut, k thut
v qui trnh vit 1 chng trnh dch, lp trnh mng dng socket, giao
thc truy xut ti nguyn Web HTTP (Hypertext Transfer Protocol),
ngn ng DHTML,...
Nhng ton b cc cng vic m 1 trnh duyt Web cn lm c
Microsoft ng gi trong 1 linh kin phn mm tn l WebBrowser.
Th d v cch dng ActiveX Control
Chng 12 : Linh kin phn mm & truy xut database
164
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 327
ActiveX Control "WebBrowser" l 1 i tng giao din ch cha 1 vng hin th
ni dung hnh ch nht vi v tr v kch thc do ngi lp trnh qui nh.
Interface ca n bao gm 3 loi : cc thuc tnh interface (khong 27), cc
method (khong 12) v cc s kin (khong 16) m ngi dng c th lp trnh
th tc p ng cho chng. y chng ta s gii thiu 1 s method m ta
dng trong vic vit ng dng MyIE :
Navigate2 (URL,...) cho php download trang Web hay file *.doc, *.xls,
*.ppt,... c xc nh bi URL, hin th ni dung ca n ln vng hin th
ri ch v x l s tng tc ca ngi dng (n vo vng lin kt,...).
GoBack cho php quay v trang Web va truy xut (ngay trc trang hin
hnh).
GoForward cho php tin ti trang Web (ngay sau trang hin hnh).
GoHome cho php hin th trang ch.
Refresh cho php download v hin th li trang hin hnh.
Stop cho php dng ngay vic download v hin th trang Web hin hnh.
ExecWB cho php thc thi 1 s hnh vi trn trang web nh thay i co ch,
in trang Web ra my in,...
Th d v cch dng ActiveX Control (tt)
Chng 12 : Linh kin phn mm & truy xut database
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 328
Giao din ngh ca trnh MyIE
Chng 12 : Linh kin phn mm & truy xut database
165
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 329
Chi tit cc option trong menu v toolbar (tt)
Chng 12 : Linh kin phn mm & truy xut database
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 330
Trnh MyIE c giao din SDI gm 1 menu bar, 1 toolbar, 1 ComboBox lit k
cc URL va truy xut, 1 ActiveX Control "WebBrowser" x l vic truy xut,
hin th cc trang Web v ch phc v cc tng tc ca ngi dng. Qui trnh
chi tit xy dng ng dng MyIE s c trnh by trong bi thc hnh s 4,
y ch tm tt cc bc chnh :
To project loi "VB Application Wizard" v tr li cc bc Wizard to
Project.
Chn Tools.Menu Editor to menu bar theo c t ca slide trc. Qui
trnh dng Menu Editor c gii thiu trong chng 4.
Cng c li chng 4 bit qui trnh to/hiu chnh Toolbar.
to (v) ComboBox nhp URL mi v lit k cc URL truy xut.
to (v) control "WebBrowser". Khng cn v ComboBox v WebBrowser
chnh xc v code s xc nh ng mi ln ca s chng trnh thay i.
to th tc x l s kin cho cc menu option v toolbar button ri vit code
cho chng. Code ca cc th tc ny ch yu lm "c" v gi cc method
tng ng trong i tng WebBrowser thc thi.
Phn tch & thit k giao din
Chng 12 : Linh kin phn mm & truy xut database
166
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 331
Lu rng trc khi thit k c giao din ca trnh MyIE, bn cn 'add' cc
linh kin ActiveX Control sau y :
Microsoft Common Dialog Control 6.0.
Microsoft Internet Control.
Microsoft Windows Common Controls 6.0.
Lu rng qui trnh Wizard cho loi Project SDI to sn cho ta 1 form ca
chng trnh tn l frmMain. Form ny cha sn 1 menu bar, 1 Toolbar.
Chng ta ch cn hiu chnh li 2 thnh phn ny ch khng cn phi to mi
chng.
Phn tch & thit k giao din (tt)
Chng 12 : Linh kin phn mm & truy xut database
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 332
Trong chng 11, chng ta gii thiu qui trnh truy xut d liu trn cc file.
Mt trong cc dng file gii thiu l Random File, file ny l danh sch cc
record d liu c cu trc v di ging nhau, mi record cha nhiu field d
liu, th d file cha cc h s sinh vin, file cha cc h s nh, file cha cc
h s ng x...
Hu ht cc ng dng hin nay (nht l cc ng dng nghip v) u phi truy
xut cc random file. Vic qun l cc random file bao gm nhiu tc v nh
to file mi vi cu trc record c th, thm/bt/hiu chnh/duyt cc record,
tm kim cc record tha mn 1 tiu chun no ,... thc hin cc tc v
trn (nht l tm kim record) hiu qu, tin cy, ta cn nhiu kin thc khc
nhau v phi tn nhiu cng sc.
Random file (vi 1 s s ci tin v tng cng) c gi l database quan h.
C nhiu format database quan h khc nhau ang c dng. gii phng
cc ng dng khi vic qun l database, ngi ta xy dng ng dng c
bit : DBMS (Database Management System). ng dng s nh DBMS truy
xut database c d dng.
12.3 Tng qut v truy xut database
Chng 12 : Linh kin phn mm & truy xut database
167
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 333
V nguyn tc, ng dng VB (hay vit bng ngn ng khc) c th truy xut 1
database bng 1 trong cc giao tip lp trnh sau y :
ADO (ActiveX Data Objects)
DAO (Data Access Objects)
ODBC (Open Database Connectivity)
DBMS-Specific Language
Direct to database (file)
Trong cc giao tip truy xut database trn ch c ADO l d dng hn c, i
a s trng hp ta ch to trc quan cc ActiveX Control v khai bo cc
thuc tnh ca chng l truy xut c database m khng cn vit code.
Trong trng hp phi vit code th cng rt ngn v d dng.
Cc giao tip lp trnh truy xut database
Chng 12 : Linh kin phn mm & truy xut database
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 334
Truy xut database dng ADO thng qua cc ActiveX Control l phng php
truy xut database trc quan v d dng nht.
a s cc database trn Windows do Access to ra trong mi file database
cha nhiu table, mi table l danh sch n record c cu trc chung no .
Qui trnh in hnh truy xut cc record ca 1 table trong 1 database Access c
th dng cc i tng sau :
Dng i tng ADODB trong th vin "Microsoft ActiveX Data Objects 2.x
Library" c th lit k cc table trong 1 database Access.
Dng i tng Microsoft Data Control 6.0 qun l 1 RecordSet cha tp
cc record ca 1 table tha mn 1 iu kin no .
Dng i tng Microsoft DataGrid Control 6.0 hin th cc record ca 1
Data Control v cho php user thm/bt/hiu chnh cc record.
thy r vic truy xut database l rt d dng, ta hy vit 1 ng dng truy
xut database dng Access c giao din nh slide sau :
Truy xut database dng ADO thng qua cc ActiveX Control
Chng 12 : Linh kin phn mm & truy xut database
168
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 335
TextEdit qui nh file
cn truy xut.
ComboBox lit k
cc Table trong file.
ADODC qun l cc
record tha mn 1
iu kin mong
mun (c th n ).
DataGrid hin th
cc record trong
ADODC user
kho st v hiu
chnh.
Giao din ngh ca ng dng truy xut database
Chng 12 : Linh kin phn mm & truy xut database
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 336
Ta c th to project dng "Standard EXE", dng cc iu khin trong Form
ta cn 'add' cc ActiveX Control sau vo Project :
Microosft Data Control 6.0 qun l 1 RecordSet cha tp cc record
trong 1 table.
Microsoft DataGrid Control 6.0 hin th cc record ca 1 Data Control v
cho php user thm/bt/hiu chnh cc record.
Microsoft Common Dialog Control 6.0 hin th ca s duyt file v chn
file cn truy xut.
dng c i tng ADODB trong Project, ta chn menu
Project.References chn th vin sau :
Microsoft ActiveX Data Objects 2.x Library, vi x =1 | 2 | 3 | 4 | 5 ...
Thit k trc quan form theo slide trc, to cc th tc x l s kin cho
button Browse v s kin Click cho ComboBox.
Qui trnh xy dng ng dng ca slide trc
Chng 12 : Linh kin phn mm & truy xut database
169
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 337
' Th tc x l click button Browse
Private Sub cmdBrowse_Click()
' hin th dialog box duyt v chn file
CommonDialog1.ShowOpen
' hin th file c chn vo textbox
txtFileName.Text = CommonDialog1.FileName
' duyt cc table v hin th tn ca chng vo ComboBox
ListAccessTables (txtFileName.Text)
End Sub
' Th tc x l khi user chn Table trong danh sch
Private Sub cbTable_Click()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;_
Data Source=" & txtFileName.Text
Adodc1.RecordSource = cbTable.Text
Adodc1.Refresh
End Sub
' Th tc phc v s kin form b thay i kch thc.
Private Sub Form_Resize()
' v li DataGrid ph hp vi kch thc mi ca form
ScaleMode = vbPixels
RsList.Move 5, 60, Me.ScaleWidth - 10, Me.ScaleHeight - 65
End Sub
Chi tit cc th tc x l s kin
Chng 12 : Linh kin phn mm & truy xut database
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 338
Private Sub ListAccessTables(strDBPath As String)
Dim adoConnection As ADODB.Connection, adoRsFields As ADODB.Recordset
While cbTable.ListCount <> 0 ' Xa danh sch hin hnh
cbTable.RemoveItem 0
Wend
' To 1 connection n file database
Set adoConnection = New ADODB.Connection
adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath
' Duyt cc tables, 'add' tn ca tng table vo danh sch ComboBox.
Set adoRsFields = adoConnection.OpenSchema(adSchemaTables)
With adoRsFields
Do While Not .EOF
If .Fields("TABLE_TYPE") = "TABLE" Then
cbTable.AddItem .Fields("TABLE_NAME")
End If
.MoveNext
Loop
End With
adoRsFields.Close ' ng v xa recordset cha cc table
Set adoRsFields = Nothing
adoConnection.Close ' ng v xa connection n file database
Set adoConnection = Nothing
End Sub
Chi tit th tc hin th danh sch cc Table ca database
Chng 12 : Linh kin phn mm & truy xut database
170
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 339
nh ngha DSN (Data source name) miu t file database, nu c bc ny,
ng dng truy xut database thng qua tn lun l DSN m khng cn bit
chnh xc v tr ng dn file database v my cha file database. Dng icon
"ODBC ..." trong Control Panel ca Windows nh ngha DSN.
Trong ng dng ta dng i tng ADODB truy xut database theo qui
trnh in hnh sau :
1. to 1 i tng Connection miu t database cn truy xut.
2. gi method OpenSchema trn i tng Connection tm cc Table
trn database.
3. khi user chn 1 Table (hay dng lnh SQL miu t iu kin xc nh
cc record), ta gi method Execute trn i tng Connection to 1
i tng RecordSet cha cc record tm c.
4. duyt cc record trong RecordSet v x l chng theo yu cu.
5. ng v xa RecordSet v lp li cc bc 3, 4 x l Table khc.
6. ng v xa cc i tng to ra gii phng b nh do chng
chim.
Lp trnh truy xut database dng ADO
Chng 12 : Linh kin phn mm & truy xut database
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 340
Th d lp trnh truy xut database dng ADO
TextEdit qui nh file
cn truy xut.
Button duyt v chn
file database.
ComboBox lit k
cc Table trong file.
Listbox hin th cc
record trong 1 Table
chn ( xem ch
khng hiu chnh).
Chng 12 : Linh kin phn mm & truy xut database
171
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 341
Dim adoConnection As ADODB.Connection ' bin tham kho n Connection
Dim adoRsFields As ADODB.Recordset ' bin tham kho n RecordSet
' Th tc x l click button Browse
Private Sub cmdBrowse_Click()
' hin th dialog box duyt v chn file
CommonDialog1.ShowOpen
' hin th file c chn vo textbox
txtFileName.Text = CommonDialog1.FileName
' duyt cc table v hin th tn ca chng vo ComboBox
ListAccessTables (txtFileName.Text)
End Sub
' Th tc phc v s kin form thay b thay i kch thc.
Private Sub Form_Resize()
' v li ListBox ph hp vi kch thc mi ca form
ScaleMode = vbPixels
RsList.Move 5, 60, Me.ScaleWidth - 10, Me.ScaleHeight - 65
End Sub
Chi tit cc th tc x l s kin
Chng 12 : Linh kin phn mm & truy xut database
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 342
Private Sub ListAccessTables(strDBPath As String)
While cbTable.ListCount <> 0 ' Xa danh sch hin hnh
cbTable.RemoveItem 0
Wend
' 1. To 1 connection n file database
Set adoConnection = New ADODB.Connection
adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath
' 2. Duyt cc tables, 'add' tn ca tng table vo danh sch ComboBox.
Set adoRsFields = adoConnection.OpenSchema(adSchemaTables)
With adoRsFields
Do While Not .EOF
If .Fields("TABLE_TYPE") = "TABLE" Then
cbTable.AddItem .Fields("TABLE_NAME")
End If
.MoveNext
Loop
End With
adoRsFields.Close ' ng v xa recordset cha cc table
Set adoRsFields = Nothing
' lu vn m Connection n file database hu truy xut li
End Sub
Chi tit th tc hin th danh sch cc Table ca database
Chng 12 : Linh kin phn mm & truy xut database
172
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 343
' Th tc x l click chn table trong ComboBox
Private Sub cbTable_Click()
Dim fcount As Integer, rcount As Integer, strBuf As String
' 3. To i tng RecordSet cha cc record ca Table c chn
Set adoRsFields = adoConnection.Execute("SELECT * FROM " & cbTable.Text)
' 4. Duyt cc record trong RecordSet v hin th chng trong ListBox
With adoRsFields
rcount = 0 ' ch s record
fcount = .Fields.Count ' s field trong tng record
Do While Not .EOF ' duyt tng record trong recordset
rcount = rcount + 1
strBuf = Str(rcount) & ": " & .Fields(0).Value
For idx = 1 To fcount - 1 ' duyt tng field v ni kt vo chui strBuf
strBuf = strBuf & ", " & .Fields(idx).Value
Next
RsList.AddItem strBuf ' add chui kt qu vo Lisbox
.MoveNext ' di chuyn n record k tip
Loop
End With
adoRsFields.Close ' ng v xa recordset
Set adoRsFields = Nothing
End Sub
Chi tit cc th tc x l s kin
Chng 12 : Linh kin phn mm & truy xut database
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 344
Sau khi vit code cho ng dng xong, ta s th chy n xc nh
xem n gii quyt ng yu cu khng. Thng ng dng cha nhiu
li sai thuc 1 trong 2 loi sau :
cc li v t vng (tn cc phn t, t dnh ring,..) v c php ca
cc phn t cu thnh ng dng. VB s pht hin cc li ny d
dng v hin th thng bo li cho ta xem xt v sa cha. Thng
sau khi c VB thng bo v cc li ny, ta d dng sa chng.
cc li v gii thut ca ng dng. VB khng th pht hin cc li
ny v chng thuc phm tr ng ngha. ng dng s chy theo gii
thut c miu t, ta phi t nh gi tnh ng/sai v gii thut,
nhng vic tm li gii thut thng rt kh. gip ngi lp
trnh d dng tm ra cc li gii thut, VB cung cp cng c cho
php h kim sot c qui trnh chy ng dng v truy xut cc
bin d liu ca chng trnh, cng c ny c gi l 'Debug'.
12.4 Tng qut v hot ng debug ng dng
Chng 12 : Linh kin phn mm & truy xut database
173
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 345
Trong qu trnh debug, ng dng s 1 trong 2 trng thi sau :
Pause : trng thi ca ng dng trc khi chy hay khi dng li theo 1 iu
kin dng no ca ngi debug. VB s ghi nh lnh sp thi hnh trc khi
dng (lnh u tin ca ng dng nu n cha bt u chy). Do tnh lch s,
ta dng thut ng PC - program counter ni v lnh ny. trng thi ny,
ngi debug c th xem gi tr ca cc bin d liu bit ng dng chy
ng hay sai theo yu cu ri iu khin vic thi hnh tip theo ca ng
dng, lc ny ng dng s chuyn sang trng thi Running.
Running : trng thi m ng dng ang chy cc lnh ca n n khi n gp
1 iu kin dng thit lp trc, lc ny ng dng s chuyn v trng thi
Pause.
Trong qu trnh debug, ng dng trng thi Pause ch yu thi gian v ngi
debug tng tc vi ng dng ch yu trng thi ny. Mi khi ng dng c
chy tip, n chuyn qua trng thi Running, nhng s nhanh chng chy n
lnh dng v chuyn v trng thi Pause (tr phi b 'block' ch I/O hay b 'loop'
trong cc vng lp v tn).
Tng qut v hot ng debug ng dng
Chng 12 : Linh kin phn mm & truy xut database
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 346
xem ni dung ca 1 bin d liu, ngi debug c th :
chn menu Debug.Add Watch thm 1 biu thc (thng l bin d liu)
vo ca s Watch xem ni dung ca n.
chn menu Debug.Edit Watch hiu chnh biu thc (thng l bin d liu)
hin hnh ca s Watch (context, watch type).
di chut n tn bin trong ca s code, 1 ca s nh cha gi tr ca bin
s c hin th ngi debug xem xt.
hin th ca s cha danh sch cc th tc ang thc hin d dang (cc th tc
lng nhau theo th t), ngi debug c th :
chn menu View.Call Stacks.
xem v tr PC hin hnh (lnh sp thc hin k tip), ngi debug c th :
chn menu Debug.Show Next Statement (thng khi ng dng dng li, n
s hin th lnh chy k tip - lnh b dng vi mu t c bit v c du mi
tn l tri ca lnh).
chn menu Debug.Set Next Statement thit lp lnh cha cursor hin
hnh l lnh chy k tip (thay v lnh b dng trc )
Cc thao tc xem v hiu chnh bin d liu
Chng 12 : Linh kin phn mm & truy xut database
174
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 347
Nu iu kin dng l v tr lnh c th th ngi debug c th :
chn menu Debug.Clear All Breakpoints xa tt c cc im dng
(breakpoint) hin ti. im dng l lnh m khi ng dng chy n, ng dng
s dng li v chuyn v trng tho Pause ngi debug kim sot ni
dung d liu ca ng dng.
chn menu Debug.Toggle Breakpoint thit lp/xa im dng lnh cha
cursor hin hnh (c th thc hin nhanh chc nng ny bng cch di
cursor n l tri ca lnh cn thit lp/xa im dng ri click chut).
Nu iu kin dng l bin d liu/biu thc no b thay i hay c gi tr True
th ngi debug c th :
chn menu Debug.Add Watch, nhp biu thc (thng l 1 bin d liu) ri
chn iu kin dng "Break when value is True" hay "Break when value
changes".
chn menu Debug.Edit Watch, hiu chnh biu thc hin hnh (thng l 1
bin d liu) ri chn iu kin dng "Break when value is True" hay "Break
when value changes".
Ta c th (v nn) thit lp nhiu iu kin dng ng thi 'ro chn' lung thi
hnh ca chng trnh.
Cc lnh thit lp iu kin dng
Chng 12 : Linh kin phn mm & truy xut database
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 348
chy tip ng dng t v tr PC hin hnh, ngi debug c th :
o chn menu Run.Start bt u chy ng dng, ng dng ch dng li khi
gp iu kin dng no c thit lp.
o chn menu Run.Continue chy tip t v tr PC hin hnh, ng dng ch
dng li khi gp iu kin dng no c thit lp.
o chn menu Debug.Step Over chy tip 1 lnh ri dng li (Pause), nu
lnh thi hnh l lnh gi th tc th ton b th tc s c chy. y l lnh
cho php thc hin tng lnh theo mc v m.
o chn menu Debug.Step Into chy tip 1 lnh ri dng li (Pause), nu
lnh thi hnh l lnh gi th tc th ng dng s dng li lnh u tin ca
th tc. y l lnh cho php thc hin tng lnh theo mc vi m.
o chn menu Debug.Step Out chy tip cc lnh cn li ca th tc hin
hnh ri quay v v dng li sau lnh gi th tc ny (Pause).
o chn menu Debug.Run to Cursor chy tip ng dng t v tr PC hin hnh
n lnh cha cursor hin hnh ri dng li (Pause).
Cc lnh iu khin chy tip ng dng
Chng 12 : Linh kin phn mm & truy xut database
175
Khoa Cng ngh Thng tin
Trng H Bch Khoa Tp.HCM
Mn : Tin hc
Slide 349
Khi ng dng trng thi 'Pause', ngi debug c th thc hin cc lnh
sau :
chn menu Run.End kt thc vic chy ng dng.
chn menu Run.Restart kt thc vic chy ng dng ri bt u chy li t
u.
chn menu Run.Break dng t ngt vic chy ng dng, lnh ang thc
hin s c nh du ta d theo di. Chc nng ny gip ta bit ng
dng ang b 'loop' on lnh no. Nu ng dng ang b 'block' ch bin
c I/O, s khng c lnh no c dnh du c.
Cc lnh iu khin khc
Chng 12 : Linh kin phn mm & truy xut database

You might also like