Professional Documents
Culture Documents
KTLT C20 TapTin - PPT (By Bsquochoai - Ga)
KTLT C20 TapTin - PPT (By Bsquochoai - Ga)
K THUT LP TRNH
ThS. ng Bnh Phng
dbphuong@fit.hcmus.edu.vn
TP TIN
1
&
VC
BB
Ni dung
3 Cc thao tc x l cn bn
4 Mt s hm qun l tp tin
Tp tin
2
&
VC
BB
Nhp xut
Khi nim
C lu d liu (bin, mng, cu trc, ) trong
b nh RAM.
D liu c np vo RAM v gi ra ngoi
chng trnh thng qua cc thit b (device)
Thit b nhp (input device): bn phm, con chut
Thit b xut (output device): mn hnh, my in
Thit b va nhp va xut: tp tin
Cc thit b u thc hin mi x l thng
qua cc dng (stream).
Tp tin
3
&
VC
BB
Stream (dng)
Khi nim
L mi trng trung gian giao tip (nhn/
gi thng tin) gia chng trnh v thit b.
Mun nhn/gi thng tin cho mt thit b
ta s gi thng tin cho stream ni vi thit b
(c lp thit b).
Stream l dy byte d liu
Chy vo chng trnh gi l stream nhp.
Chy ra chng trnh gi l stream xut.
Tp tin
4
&
VC
BB
Stream (dng)
Phn loi
Stream vn bn (text)
Ch cha cc k t.
T chc thnh tng dng, mi dng ti a 255 k
t, kt thc bi k t cui dng \0 hoc k t
sang dng mi \n.
Stream nh phn (binary)
Cha cc byte.
c c v ghi chnh xc tng byte.
X l d liu bt k, k c d liu vn bn.
c s dng ch yu vi cc tp tin trn a.
Tp tin
5
&
VC
BB
Stream (dng)
Nhu cu
D liu gii hn v c lu tr tm thi
Nhp: g t bn phm.
Xut: hin th trn mn hnh.
Lu tr d liu: trong b nh RAM.
Mt thi gian, khng gii quyt c bi
ton vi s d liu ln.
Cn mt thit b lu tr sao cho d liu vn
cn khi kt thc chng trnh, c th s dng
nhiu ln v kch thc khng hn ch.
Tp tin
7
&
VC
BB
Tp tin
Khi nim
Tp hp thng tin (d liu) c t chc theo
mt dng no vi mt tn xc nh.
Mt dy byte lin tc ( gc lu tr).
c lu tr trong cc thit b lu tr ngoi
nh a mm, a cng, USB
Vn tn ti khi chng trnh kt thc.
Kch thc khng hn ch (ty vo thit b lu tr)
Cho php c d liu (thit b nhp) v ghi
d liu (thit b xut).
Tp tin
8
&
VC
BB
Tp tin
Phn loi
Theo ngi s dng: quan tm n ni dung
tp tin nn s phn loi theo phn m rng
.EXE, .COM, .CPP, .DOC, .PPT,
Theo ngi lp trnh: t to cc stream tng
minh kt ni vi tp tin xc nh nn s
phn loi theo cch s dng stream trong C
tp tin kiu vn bn (ng vi stream
vn bn) v tp tin kiu nh phn (ng vi
stream nh phn).
Tp tin
9
&
VC
BB
Phn loi tp tin
Tp tin
11
&
VC
BB
Quy tc t tn tp tin
Khng bt buc.
Thng c 3 k t.
Tn
(name) . M rng
(extension) Thng do chng
trnh ng dng to
tp tin t t
Bt buc phi c.
H iu hnh MS-DOS: di ti a 8 k t.
H iu hnh Windows: di ti a 128 k t.
Gm cc k t A n Z, s 0 n 9, k t khc
nh #, $, %, ~, ^, @, (, ), !, _, khong trng.
Tp tin
12
&
VC
BB
nh v tp tin
ng dn
Ch n mt tp tin khng nm trong th mc
hin hnh. V d: c:\data\list.txt ch tp tin
list.txt nm trong th mc data ca a C.
Trong chng trnh, ng dn ny c ghi
trong chui nh sau: c:\\data\\list.txt
Du \ biu th k t iu khin nn th
hin n ta phi thm mt du \ trc.
Nhng nu chng trnh yu cu nhp ng
dn t bn phm th ch nhp mt du \.
Tp tin
13
&
VC
BB
Quy trnh thao tc vi tp tin
Tp tin
15
&
VC
BB
i s m tp tin (mode)
i s ngha
b M tp tin kiu nh phn (binary)
t M tp tin kiu vn bn (text) (mc nh)
r M tp tin ch c d liu t tp tin. Tr v
NULL nu khng tm thy tp tin.
w M tp tin ch ghi d liu vo tp tin. Tp
tin s c to nu cha c, ngc li d liu
trc s b xa ht.
a M tp tin ch thm (append) d liu vo
cui tp tin. Tp tin s c to nu cha c.
r+ Ging mode r v b sung thm tnh nng ghi
d liu v tp tin s c to nu cha c.
w+ Ging mode w v b sung thm tnh nng c.
a+ Ging mode a v b sung thm tnh nng c.
Tp tin
16
&
VC
BB
c v ghi d liu (stdio.h)
Tp tin
18
&
VC
BB
Hm nhp theo nh dng
Tp tin
19
&
VC
BB
Hm nhp theo nh dng
V d
Mt tp tin cha nhiu dng, mi dng l
thng tin mi sinh vin theo nh dng sau:
<MSSV>-<Tn>(<Phi>)tab<NTNS>tab<TB>
V d: 0312078-H. P. Trang(Nu) 17/06/85 8.5
c chui thng tin phc hp
%[chui]: c cho n khi khng gp k t
no trong chui th dng.
%[^chui]: c cho n khi gp mt trong
nhng k t trong chui th dng.
Tp tin
20
&
VC
BB
Hm Tch 2 Mng
struct SINHVIEN {
char MSSV[8]; // 0312078
char HoTen[30]; // H. P. Trang
char GioiTinh[4]; // Nu
char NTNS[9]; // 17/06/85
float DiemTB; // 8.5
};
void main() {
SINHVIEN sv;
FILE *fp = fopen(dssv.txt, rt);
if (fp != NULL) {
fscanf(fp, %[^-]-%[^(](%[^)])\t%[^\t]
\t%f, &sv.MSSV, &sv.HoTen,
&sv.GioiTinh, &sv.NTNS, &sv.DiemTB);
fclose(fp);
}
} 21
Tp tin
&
VC
BB
Hm nhp k t
c mt k t t stream fp.
getc l macro cn fgetc l phin bn hm
ca macro getc.
Thnh cng: tr v k t c c sau khi
chuyn sang s nguyn khng du.
Tht bi: tr v EOF khi kt thc stream fp
hoc gp li.
char ch;
FILE* fp = fopen(taptin.txt, rt);
if (fp != NULL)
ch = getc(fp); // ch = fgetc(fp);
Tp tin
22
&
VC
BB
Hm nhp chui
c mt dy k t t stream fp vo vng
nh str, kt thc khi n-1 k t hoc gp
k t xung dng.
Tp tin
23
&
VC
BB
Hm xut k t
int putc(int ch, FILE *fp) v int fputc(in ch, FILE *fp)
Tp tin
24
&
VC
BB
Hm xut chui
Tp tin
25
&
VC
BB
Hm xut trc tip
Tp tin
26
&
VC
BB
Hm nhp trc tip
Tp tin
27
&
VC
BB
Hm ng tp tin xc nh
ng stream fp.
D liu trong stream fp s c vt (ghi
ht ln a) trc khi ng.
Thnh cng: tr v 0.
Tht bi: tr v EOF.
Tp tin
28
&
VC
BB
Hm ng tt c stream
int fcloseall()
Tp tin
29
&
VC
BB
Vt d liu trong stream
Khi nim
c to t ng khi m tp tin.
Xc nh ni din ra vic c/ghi trong tp tin
V tr con tr ch v
Khi tp tin cha m: u tp tin (gi tr 0).
Khi m tp tin:
cui tp tin khi m chn (mode a hay a+)
u tp tin (hay gi tr 0) khi m vi cc mode
khc (w, w+, r, r+).
Tp tin
31
&
VC
BB
Truy xut tun t & ngu nhin
t li v tr con tr ch v v u (byte 0)
tp tin fp.
Khng
Tp tin
33
&
VC
BB
Hm ti nh v con tr ch v
Thnh cng: tr v 0.
Tht bi: tr v gi tr khc 0.
Tp tin
34
&
VC
BB
Hm xc nh v tr con tr ch v
Hm tr v v tr hin ti ca con tr ch v
(tnh t v tr u tin ca tp tin, tc l 0)
ca stream fp.
Tp tin
35
&
VC
BB
Du hiu kt thc tp tin
Xa tp tin xc nh bi filename.
Thnh cng: tr v 0.
Tht bi: tr v -1.
if (remove(c:\\vc.txt) == 0)
printf(Tap tin vc.txt da bi xoa!);
else
printf(Ko xoa duoc tap tin vc.txt!);
Tp tin
38
&
VC
BB
Hm i tn tp tin
Thnh cng: tr v 0.
Tht bi: tr v -1.
if (rename(c:\\a.txt, c:\\BT\b.cpp) == 0)
printf(Doi ten tap tin thanh cong);
else
printf(Doi ten tap tin that bai);
Tp tin
39
&
VC
BB
Bi tp l thuyt
Tp tin
40
&
VC
BB
Bi tp l thuyt
Tp tin
42
&
VC
BB
Bi tp l thuyt
Tp tin
43
&
VC
BB
Bi tp l thuyt
Tp tin
45
&
VC
BB
Bi tp thc hnh