Download - Lập trình C: Thao tác với tệp tin.

Transcript
  • 7/21/2019 Lp trnh C: Thao tc vi tp tin.

    1/4

    ================ TP TIN ===============

    - Tp tin l g ?

    - Tp tin c chia lm 2 loi1/ Tp tin vn bn=> D liu th hin dng tng k t (Lu trong file *.txt)

    => mi ln l thao tc trn tng k t.

    2/ Tp tin nh phn=> D liu th hin dng byte (Lu trong file *.DAT, *.DOC, *.PPT, *.XLSX)

    => Mi ln l thao tc trn nhiu byte d liu (kch thc do ta x l)

    ================== THAO TC TRN C ===================

    Th vin h tr: #include

    To i tng file dng con tr

    C PHP: FILE *;vd:FILE *f; // To con tr f kiu file.

    =========== CC BC THAO TC TRN FILE ============

    B1: M file cn x l (c hoc ghi)+ B1.1: Nu ta m file c th phi kim tra xem file c tn ti hay cha

    B2: X l (c hoc ghi)

    B3: ng file li.

    ======================================================

    Chi tit:

    B1: M file

    C php: FILE * = fopen("", "");

    Hm tr v 1 a ch, nu nh khng c tn ti file th tr v l NULL,cn nu c th tr v a ch cho con tr file tr ti c a ch ny.

    vd: c file

    FILE *FileIn = fopen("INPUT.TXT", "r");vd: Ghi fileFILE *FileOut = fopen("OUTPUT.TXT", "w");

    : S c 2 dng ng dn1/ ng dn tuyt i: D:\\XXX\\69.TXT hoc dng: D:/XXX/69.TXT2/ ng dn tng i: a tn file vo l c ri=> Nn dng cch 2.

    Cc i s Mode v ngha:r => Read: M file c, nu nh file khng tn ti th s tr v NULLw => Write: M file ghi, nu nh file khng tn ti th s t ng to ra file mi.

    Cn nu nh file tn ti ri th d liu trong file s b xa i ht ghi d li

    a => Append: M file tip tc thm d liu vo cui, nu file cha h tn ti th

  • 7/21/2019 Lp trnh C: Thao tc vi tp tin.

    2/4

    cn nu tn ti ri th d liu trc c gi nguyn, d liu tip tc thm vo cu

    r+: Ging r nhng b sung thm tnh nng ghi.w+: Ging w nhng b sung thm tnh nng c.a+: Ging a nhng b sung thm tnh nng c.

    ngoi ra c s phn bit r rng gia file nh phn v file vn bn

    - file nh phn th cui c thm ch b- file vn bn th cui c thm ch t

    vd:rt, at, wt, r+t, a+t, w+trb, ab, wb, r+b, a+b, w+b

    nhng mc nh nu nh khng g ht th n t ng hiu l t (file vn bn)

    B1.1: Kim tra file c tn ti hay khng ?

    - Nu nh B1 m khng h tn ti file th con tr n ang l NULL nn ta s dng iu n

    if(FileIn == NULL)=> file khng tn ti.tng ng nh sau:if(!FileIn)=> file khng tn ti.

    B2: X l (c hoc ghi)

    c file:C PHP: fscanf(, "", );

    vd:

    FILE *FileIn = fopen("INPUT.TXT", "r");int x;Ta cn c s nguyn trong file v lu vo bin x=> fscanf(FileIn, "%d", &x);

    Lu : Phi c tham chiu (&)

    Ghi file:C PHP:fprintf(, "", )

    vd: fprintf(FileIn, "So nguyen trong chuong trinh la: %d", x);

    Lu :i vi kiu chui th ta c th nhp bi c php: fscanf vi c t l %s nhng khng nn

    vd: Chui l: "Nam Son"Nu dng fscanf vi c t l: %s => chui nhn c ch c ch "Nam"Nu dng fgets th chui nhn c y l "Nam Son"

    C PHP: fgets(, )vd:char HoTen[30];fgets(FileIn, HoTen);

    Nu mun ghi chui th dng fputs cng c m fprintf cng c. Nhng nn dng fprintf bhng th ghi vn bn km theo c.

  • 7/21/2019 Lp trnh C: Thao tc vi tp tin.

    3/4

    B3: ng file li.C PHP: fclose();

    vd:fclose(FileIn);

    C php ng ht tt c: fcloseall();

    ================== Bi Tp =================

    Bi 1: Vit chng trnh c vo 2 s nguyn a, b t tp tin INPUT.TXT ri tnh tng 2 sn OUTPUT.TXT

    => Xem Project1.

    Bi 2: cng nh bi 1 nhng ta s chia hm con.

    => Xem Project2.

    Bi 3: c 1 chui cha h tn lu trong file INPUT.TXT vo chng trnh v ghi ra tp tintheo tn .

    vd:INPUT.TXTSon dep trai

    OUTPUT.TXTChao Son dep trai

    => Xem Project3.

    Bi 4: Cu trc file INPUT.TXT nh sau:- Dng u tin cha 1 s nguyn duy nht l s lng cc s c trong chng trnh.

    - Dng tip theo cha ln lt cc s, mi s cch nhau bi 1 khong trng.

    Yu cu:c dy s nguyn trn vo chng trnh, thc hin sp xp tng dn. Kt qu lu vo file

    vd:INPUT.TXT54 2 1 5 3

    OUTPUT.TXT1 2 3 4 5

    => Xem Project4.

    Bi 5: Cu trc file INPUT.TXT nh sau:- Mt dng duy nht cha cc s, mi s cch nhau bi 1 khong trng.

    Yu cu:c d liu t file v lu vo mng, sau sp xp mng tng dn. Kt qu ghi vo file OU

    vd:

    INPUT.TXT5 2 3 4 1

  • 7/21/2019 Lp trnh C: Thao tc vi tp tin.

    4/4

    OUTPUT.TXT1 2 3 4 5

    => Xem Project5.

    ==================== CON TR CH V TRN FILE ============

    C PHP:fseek(, , )

    :- Nu l s dng tc l dch chuyn ln- Nu l s m tc l dch chuyn xung- Nu l 0 tc l khng dch

    :- Nu mun bt u tnh t u file th ta s l SEEK_SET hoc ghi s 0- Nu mun bt u tnh t v tr hin ti con tr ang ng th ta s l SEEK_CUR hoc- Nu mun bt u tnh t cui file th ta s l SEEK_END hoc ghi s 2

    vd:fseek(FileIn, 2, SEEK_CUR); // Dch ln 2 byte k t v tr hin ti con tr ang ng.

    fseek(FileIn, -5, 2); // Dch li xung 5 byte k t v tr cui file

    fseek(FileIn, 3, 0); // Dch ln 3 byte k t v tr u file.

    Lu : Nu phm vi byte dch chuyn b ri vo 1 vng khng hp hp l th chng trnh s

    Bi 6: Cho cu trc file INPUT.TXT cha thng tin 2 phn s, mi phn s nm trn 1 dng.hn s vo v tnh tng/hiu/tch/thng ca 2 phn s (kt qu phi c rt gn). Kt

    vd:INPUT.TXT1/23/4

    OUTPUT.TXTTong: 5/4Hieu: -1/4Tich: 3/8Thuong: 2/3

    => Xem Project6.