Professional Documents
Culture Documents
LM VIC VI TP TIN -
FILE
1 12/7/2017
I. Gii thiu
7
1. Khai bo con tr tp tin
C php:
FILE *tn-bin;
V d:
FILE *f;
Lu : Th vin x l tp l stdio.h
C php:
con_tr = fopen( ng dn tp tin, <kiu truy cp>);
Trong :
ng dn tp tin: l ng dn n tp tin cn m
tp tin phi tn ti trong my
kiu truy cp: nhm xc nh tp c m s c d
liu (read - r) hoc ghi d liu (write -w) v d liu l
text (text - t) hay nh phn (birnary - b).
VD:
f = fopen(C:\VD1.txt, rt);
f = fopen(C:\VD1.txt, rt);
r (read): m c
t (text): m file dng text
f = fopen(C:\VD1.txt, wb);
w (write): m ghi
b (birnary): m file dng
Sau khi m tp: nh phn
-M thnh cng con tr tp c gi
tr khc NULL
-M khng thnh cng con tr tp
c gi tr l NULL
10
VD: m tp v kim tra s thnh cng sau khi m
FILE *fp;
fp = fopen (SINHVIEN.TXT, rt);
if ( fp == NULL )
{
printf(Khong mo duoc tap tin.);
}
else
{
printf(Da mo duoc tap tin.);
}
11
3. Hm x l vi tp tin vn bn
a. c d liu t tp
fscanf(con tr tp, nh dng, tham bin)
c d liu t tp tin theo nh dng xc nh v lu vo
bin
fscanf( f, %d, &x)
fgets(vng nh, kch thc, FILE *f)
c mt chui k t t mt tp tin vi kch thc ti a
cho php, hoc gp k t xung dng
fgets( s, 80, f)
fgetc( FILE *f)
c tng k t t tp tin ang m
c = fgetc(f );
13
b. Ghi d liu vo tp
a. c d liu t File
fread(void *ptr, int size, int n, FILE *f)
ptr: vng nh lu d liu c.
size: kch thc mi nh (tnh bng byte).
n: di d liu cn c, s mu tin c c
f: c t tp tin nh phn no.
V du:
int a[30], b, n;
fread(a, sizeof(int), n , f);
fread(&b, sizeof(int), 1 , f);
V d:
inta[20];
fwrite(a, sizeof(int), n , f);
16
5. Mt s hm x l khc
fclose(FILE *f): ng tp f
fseek( FILE *f, < di>, <mc>)
Di chuyn con tr tp tin
Cc mc gm:
SEEK_SET: di t u tp tin
SEEK_END: di t cui tp tin
SEEK_CUR: di t v tr hin hnh
di :
>0 ri v sau
<0 ri v trc
=0 t v tr mc
V d:
fseek( f, +5, SEEK_CUR)
17
Bi tp p dng 1 (file nh phn)
p dng ln lt cc yu cu trn
18
Cc bc gii quyt bi ton
19
V d
void nhapDSSV(SV ds[ ],int &n)
#include <conio.h> {
int i;
#include <stdio.h>
SV x;
struct SV printf("\n Nhap so sinh vien:");
{ scanf("%d", &n);
for(i=0; i<n; i++)
int msv;
{
char hoten[20]; printf("\nNhap thong tin sinh vien thu %d:",i);
float dtb; printf("\nMSV:"); scanf("%d",&x.msv);
printf("Ho ten:");
float hb; fflush(stdin); gets(x.hoten);
}; printf("DTB:");
scanf("%f",&x.dtb);
printf("Hoc bong:");
scanf("%f", &x.hb);
ds[i] = x;
}
}
V d (tip)
21
V d (tip)
fclose(f);
}
22
V d (tip)
23
V d (tip)
int main()
{
int n;
SV ds[10];
FILE *f;
nhapDSSV(ds,n);
printf("\n DS SV da nhap \n");
inDSSV(ds,n);
ghiFile(f,ds,n);
docFile(f,ds,n);
printf("\n DS SV doc tu file \n");
inDSSV(ds,n);
getch();
}
24
Bi tp p dng 1 (file vn bn)
p dng ln lt cc yu cu trn
25
Cc bc gii quyt bi ton
26
#include
struct HH
{
int mhh;
char tenH[20];
float SL;
float DG;
};
27
void nhapDSHH ( HH ds[], int &n )
{
int i;
HH x;
printf("\n Nhap so Hang hoa:");
scanf("%d", &n);
for( i=0; i<n; i++)
{
printf("\nNhap thong tin hang hoa thu %d:",i);
printf("\nMa HH:"); scanf("%d",&x.mhh);
printf("Ten hang:");
fflush(stdin); gets(x.tenH);
printf("SL:");
scanf("%f",&x.SL);
printf("Don Gia:");
scanf("%f", &x.DG);
ds[i] = x;
}
}
28
//in danh sach sinh vien tu mang ra man hinh
void inDSHH ( HH ds[], int n)
{
int i;
for( i = 0; i<n; i++)
printf("\n%5d%20s%6.2f%10.2f", ds[i].mhh, ds[i].tenH, ds[i].SL, ds[i].DG);
}
29
//Lu d liu vo file
void luuFile (FILE *f, HH ds[], int &n )
{
int i;
f = fopen("dshanghoa.txt","wt");
fprintf( f, "%d", n);
for( i=0; i<n; i++)
fprintf(f,"\n%5d%20s%6.2f%10.2f",ds[i].mhh,ds[i].tenH,ds[i].SL,ds[i].DG);
fclose(f);
}
30
void docFile ( FILE *f, HH ds[], int &n)
{
int i;
HH x;
f = fopen("dshanghoa.txt","rt");
fscanf( f, "%d", &n);
for(i=0;i<n;i++)
{
fscanf(f, "%d", &x.mhh);
fgets(x.tenH, 20+1, f);
//fgetc(f); fgets(x.tenH, 20, f);
fscanf(f, "%f%f", &x.SL, &x.DG);
ds[i] = x;
}
fclose(f);
}
31
int main( )
{
int i,x,n;
HH ds[10];
FILE *f;
nhapDSHH(ds,n);
printf("\n DS HH da nhap \n");
inDSHH(ds,n);
luuFile(f,ds,n);
docFile(f,ds,n);
printf("\n DS doc tu file \n");
inDSHH(ds,n);
getch();
}
32