Лабораториялық жұмыстар, файлдарды пайдалану


Пән: Информатика, Программалау, Мәліметтер қоры
Жұмыс түрі: Материал
Тегін: Антиплагиат
Көлемі: 10 бет
Таңдаулыға:
Жұмыс түрі: Материал
Тегін: Антиплагиат
Көлемі: 10 бет
Таңдаулыға:
12-13 ЛАБОРАТОРИЯЛЫҚ ЖҰМЫСТАР
ФАЙЛДАРДЫ ПАЙДАЛАНУ
Файл – сыртқы есте сақтау құрылғыларында (магниттік дискілерде)
орналастырылған және мәлімет өңдеу, тасымалдау кездерінде біртұтас күйде
қарастырылатын мәліметтер жиыны.
Файлдармен жұмыс істеу үшін оларды алдымен ашу керек, яғни файл туралы
мәліметті – атын, адресін программаға белгілі ету қажет.
Си тілінде файл ашу fopen() функциясы арқылы орындалады. Ол сыртқы
құрылғыдағы физикалық файлды, мысалы, А:\NUR.DAT, программадағы оның
логикалық атымен байланыстырады. Логикалық ат дегеніміз – файлға нұсқауыш,
яғни файл туралы мәлімет сақталатын жады аймағына сілтеме жасау. Файлға
нұсқауыш сипатталуы тиіс.
Сонымен, файлдармен жұмыс істегенде нұсқауыштар қолданылады. Файлға
нұсқауыш мынадай түрде сипатталады:
FILE *fp;
мұндағы FILE типі – stdio.h тақырыптық файлында анықталған құрылым. Бұл
нұсқауышты көрсетілген файлмен сол файл ашылғаннан бастап, байланыстырып
қоюға болады. Ол үшін келесі функция пайдаланылады:
fopen ("файл адресіаты","қатынасу типі");
ол файлға нұсқауыш мәнін қайтарады немесе қате болса, NULL мәнін береді.
Мысалы, мынадай оператор орындалуы нәтижесінде
fp = fopen ("ex1.txt", "w");
жұмыс бумасындағы ex1.txt файлы оған мәлімет жазу (write) үшін ашылады, ал
программада бұл файлды fp нұсқауышы арқылы пайдаланамыз (яғни fopen()
функциясы файлдың сыртқы атын оның программада қолданылатын ішкі логикалық
атымен байланыстырады).
Сонымен, файлды ашатын fopen() функцияcының жалпы жазылуы:
fp = fopen(name,mode)
мұнда fp – файлға сілтейтін нұсқауыш; name – файлдың адресін де көрсетуге
болатын аты, көбінесе символдық тіркес арқылы жазылады; mode – файл қандай
режимде қолданылатынын көрсететін параметр, бұл да символдар тіркесімен
төмендегідей түрде жазылады:
"r" – файлды оқу үшін ашу (файл бұрын ашылған болуы тиіс);
"w" – бос файлды информация жазу үшін ашу;
"a" – файл соңына мәлімет қосып жазу үшін оны ашу;
"r+"– файлдан информация оқу және оған информация жазу үшін ашу);
"w+"– бос файлдан информация оқу және оған мәлімет жазу үшін файл ашу
(бұрын файл болса, ол өшіріледі);
"a+"– файлдан информация оқу және оның соңына информация қосып жазу үшін
ашу).
"t" – файл мәтіндік (текстік) режимде ашылады, ол rt, wt, at, т.с.с.
болып көрсетіле береді.
"b" – файл екілік режимде ашылады, rb, wb, ab, т.с.с. болып көрсетіле
береді.
Келісім бойынша файл көбінесе мәтіндік режимде ашылады.
Файлмен жұмыс істеп болған соң, оны жабу үшін келесі функция қолданылады:
fclose(файл_нұсқауышы).
Файлға мәлімет жазуоқу үшін жалпы енгізушығару функциялары тәріздес
бірсыпыра функциялар пайдаланылады:
fprintf(), fscanf(), fputs(), fgets(), getc(), putc(), fgetc(), fputc().
Бұлардың ішіндегі getc()fgetc(), putc()fputc() функциялары әрекеттері
ұқсас, айырмашылықтары тек getc() пен putc() макроанықтаулар да, aл fgetc()
және fputc() – нағыз функциялар болып табылады.
Барлық файлдық функциялар прототиптері stdio.h файлында орналасқан.
Файлдардан мәлімет жазуоқу әрекеттерін үш топқа бөлуге болады:
- символдарды енгізушығару операциялары;
- сөз тіркестері жолдарын енгізушығару операциялары;
- блок бойынша енгізушығару операциялары.
Символдарды енгізушығару операцияларында файлдан бір ғана символ оқылады
немесе оған бір символ жазылады. Мысалы:
fgetc(FILE *fp); ашылған файлдан символ оқиды.
fputc(int ch,FILE *fp); ch символы кодын файлға жазады.
Сөз тіркестері жолдарын енгізушығару операцияларында бір мәлімет алмасуы
кезінде файлдан сөз тіркесі жолдары оқылады немесе оған сөз тіркесі
жазылады. Мысалы:
gets(char *S); файлдан мәлімет байттарын '\n' символы кездескенше
біртіндеп оқиды да, оларды S тіркесіне орналастырып, '\n' символын ‘\0’
(нөл-терминатор) белгісіне айналдырады.
fgets(char *S,int m,FILE *fp); fp түрінде сипатталған файлдан
байттарды оқып, оларды '\n' символы кездескенше немесе m байт оқылып
біткенше S тіркесі мәні ретінде жазып шығады.
Блок бойынша енгізушығару операцияларында мәліметтер алмасу олардың бір
блогын толық қамтиды. Мысалы:
fread (void *ptv, int size, int n, FILE *fp);
мұнда fp файлынан әрқайсысы size байттан тұратын мәліметтің n блогы ptv
нұсқауышы көрсетіп тұрған жады аймағына оқылады (оқылатын блок үшін алдын
ала орын дайындап қою қажет).
fwrite (void *ptv, int size, int n, FILE *fp);
мұнда ptv нұсқауышы көрсетіп тұрған жады аймағында орналасқан әрқайсысы
size байттан тұратын мәліметтің n блогы ашық тұрған fp файлына жазылады.
fprintf және fscanf функцияларын пайдалану
fprintf - файлға информация жазу үшін, ал fscanf – файлдан информация
оқу үшін қолданылады. Олардың жалпы жазылу түрі:
fprintf(fp, “спецификация шаблоны”,p);
мұндағы p-өрнек;
fscanf(fp, “спецификация шаблоны”,адрес);
Мысал: Бүтін сандар тізбегін n=5 пернелерден енгізіп, оларды файлға жазу
керек болсын.
файл ашып, оған 5 сан жазу
#include stdio.h
#include conio.h
main()
{ int k,i,n=5;
char fname[]="a:\\num.txt\0";
clrscr();
FILE *fp;
fp=fopen(fname,"w");
clrscr();
printf("Енгізілген сандар %s файлына жазылады\n",
fname);
puts("Әр сан енгізілген соң, Enter басыңыз\n");
for(i=0; in;i++)
{scanf("%i",&k);
fprintf(fp,"%d ",k);
}
fclose(fp);
printf("Енгізілген сандар %s файлына жазылды\n",
fname);
getch();
}
Нәтижесі:
Енгізілген сандар a:\num.txt файлына жазылады
Әр сан енгізілген соң, Enter басыңыз
1
2
3
4
5
Енгізілген сандар a:\num.txt файлына жазылды
Файлдағы мәлімет: 1 2 3 4 5
Бес бүтін санды n=5 бұрыннан бар file1.txt файлына жазу керек, сол
файлды мәлімет қосу үшін ашып, оған 5 сан жазып, сонан соң ондағы мәліметті
оқып тексеру керек.
* файлға мәліметтер қосу *
#include math.h
#include stdio.h
#include conio.h
main()
{ int i,k=0,s=0,n=5,y,x;
char fname[]="file1.txt";
clrscr();
FILE *fp;
fp=fopen("file1.txt","at");
if ((fp=fopen(fname,"at")) == NULL)
{ printf("\nФайлды ашуда қате болды");
getch();
return(0);
}
puts("Enter арқылы бөліп, 5 сан енгізіңіз:");
for(i=1; i=n;i++)
{scanf("%i",&x);
fprintf(fp,"%d ",x);}
fclose(fp);
getch();
}
Нәтижесі:
Enter арқылы бөліп, 5 сан енгізіңіз:
11
22
33
44
55
Файлдағы мәлімет: 1 2 3 4 5 11 22 33 44 55
Дискідегі file1.txt файлын мәліметтер оқу үшін ашып, ондағы мәліметті
оқып, файлдағы тақ сандардың қанша екенін және қосындысын табу керек.
* файлдан мәліметтер оқу *
#include math.h
#include stdio.h
#include conio.h
main()
{ int i,k=0,s=0,n=5,y,x;
char fname[]="file1.txt";
clrscr();
FILE *fp;
fp=fopen(fname,"r");
* Оқу үшін файл ашу *
fp=fopen("fp","rt");
if ((fp=fopen(fname,"rt")) == NULL)
{ printf("\n Файл ашуда қате болды");
getch();
return(0);
}
puts("Файлдан оқылған сандар:");
while(!feof(fp))
{fscanf(fp,"%i",&y);
printf(" %i ",y);
if (y%2==0) {s+=y;k=k+1;}
}
fclose(fp);
printf("\nТақ сандар қосындысы s = % i,
олардың саны k=%i", s, k);
getch();
}
fgets және fputs функцияларын пайдалану
Сөз тіркестерімен жұмыс істегенде fgets және fputs функциялары
қолданылады:
fgets функциясының жалпы жазылу түрі:
fgets(нұсқауыш,MAXLEN,fp);
нұсқауыш – ЭЕМ жадындағы орынға сілтейтін нұсқауыш; MAXLEN – оқылатын
тіркестің максимальды ұзындығы; fp - файл нұсқауышы.
Мысалы:
#define L 20
main()
{
FILE *fp;
char *st[n];
fp=fopen(“stroka”,”r”);
while(fgets(st,L,fp)!=NULL)
puts (st);
}
Файлдарға сөз тіркестерін жазу үшін fputs функциясы келесі түрде
қолданылады:
status=fputs(қатар нұсқауышы,fp);
status – бүтін сан, оның мәні eof функциясында жазылады, егер fputs()
функциясы файлдың соңына шыққан болса немесе қате тапса, fputs функциясы
жазылатын жолдың соңына 0 символын жазбайды.
Төменде осы функцияларды пайдалану мысалы келтірілген.
#include stdio.h
void main ()
{
int n;
char str[50], str1[50], ch;
FILE *fp;
Файлға мәлімет жазу
fp = fopen("ex.txt","w");
puts ("Бүтін сан енгізіңіз: "); scanf("%d",&n);
fprintf (fp, "%d\n", n) ;
puts ("Символ енгізіңіз: "); ch=getchar();
putc (ch, fp);
puts ("Сөз тіркесін енгізіңіз: "); gets(str);
fputs(str, fp);
fclose(fp);
Файлдан мәлімет оқу
... жалғасы
ФАЙЛДАРДЫ ПАЙДАЛАНУ
Файл – сыртқы есте сақтау құрылғыларында (магниттік дискілерде)
орналастырылған және мәлімет өңдеу, тасымалдау кездерінде біртұтас күйде
қарастырылатын мәліметтер жиыны.
Файлдармен жұмыс істеу үшін оларды алдымен ашу керек, яғни файл туралы
мәліметті – атын, адресін программаға белгілі ету қажет.
Си тілінде файл ашу fopen() функциясы арқылы орындалады. Ол сыртқы
құрылғыдағы физикалық файлды, мысалы, А:\NUR.DAT, программадағы оның
логикалық атымен байланыстырады. Логикалық ат дегеніміз – файлға нұсқауыш,
яғни файл туралы мәлімет сақталатын жады аймағына сілтеме жасау. Файлға
нұсқауыш сипатталуы тиіс.
Сонымен, файлдармен жұмыс істегенде нұсқауыштар қолданылады. Файлға
нұсқауыш мынадай түрде сипатталады:
FILE *fp;
мұндағы FILE типі – stdio.h тақырыптық файлында анықталған құрылым. Бұл
нұсқауышты көрсетілген файлмен сол файл ашылғаннан бастап, байланыстырып
қоюға болады. Ол үшін келесі функция пайдаланылады:
fopen ("файл адресіаты","қатынасу типі");
ол файлға нұсқауыш мәнін қайтарады немесе қате болса, NULL мәнін береді.
Мысалы, мынадай оператор орындалуы нәтижесінде
fp = fopen ("ex1.txt", "w");
жұмыс бумасындағы ex1.txt файлы оған мәлімет жазу (write) үшін ашылады, ал
программада бұл файлды fp нұсқауышы арқылы пайдаланамыз (яғни fopen()
функциясы файлдың сыртқы атын оның программада қолданылатын ішкі логикалық
атымен байланыстырады).
Сонымен, файлды ашатын fopen() функцияcының жалпы жазылуы:
fp = fopen(name,mode)
мұнда fp – файлға сілтейтін нұсқауыш; name – файлдың адресін де көрсетуге
болатын аты, көбінесе символдық тіркес арқылы жазылады; mode – файл қандай
режимде қолданылатынын көрсететін параметр, бұл да символдар тіркесімен
төмендегідей түрде жазылады:
"r" – файлды оқу үшін ашу (файл бұрын ашылған болуы тиіс);
"w" – бос файлды информация жазу үшін ашу;
"a" – файл соңына мәлімет қосып жазу үшін оны ашу;
"r+"– файлдан информация оқу және оған информация жазу үшін ашу);
"w+"– бос файлдан информация оқу және оған мәлімет жазу үшін файл ашу
(бұрын файл болса, ол өшіріледі);
"a+"– файлдан информация оқу және оның соңына информация қосып жазу үшін
ашу).
"t" – файл мәтіндік (текстік) режимде ашылады, ол rt, wt, at, т.с.с.
болып көрсетіле береді.
"b" – файл екілік режимде ашылады, rb, wb, ab, т.с.с. болып көрсетіле
береді.
Келісім бойынша файл көбінесе мәтіндік режимде ашылады.
Файлмен жұмыс істеп болған соң, оны жабу үшін келесі функция қолданылады:
fclose(файл_нұсқауышы).
Файлға мәлімет жазуоқу үшін жалпы енгізушығару функциялары тәріздес
бірсыпыра функциялар пайдаланылады:
fprintf(), fscanf(), fputs(), fgets(), getc(), putc(), fgetc(), fputc().
Бұлардың ішіндегі getc()fgetc(), putc()fputc() функциялары әрекеттері
ұқсас, айырмашылықтары тек getc() пен putc() макроанықтаулар да, aл fgetc()
және fputc() – нағыз функциялар болып табылады.
Барлық файлдық функциялар прототиптері stdio.h файлында орналасқан.
Файлдардан мәлімет жазуоқу әрекеттерін үш топқа бөлуге болады:
- символдарды енгізушығару операциялары;
- сөз тіркестері жолдарын енгізушығару операциялары;
- блок бойынша енгізушығару операциялары.
Символдарды енгізушығару операцияларында файлдан бір ғана символ оқылады
немесе оған бір символ жазылады. Мысалы:
fgetc(FILE *fp); ашылған файлдан символ оқиды.
fputc(int ch,FILE *fp); ch символы кодын файлға жазады.
Сөз тіркестері жолдарын енгізушығару операцияларында бір мәлімет алмасуы
кезінде файлдан сөз тіркесі жолдары оқылады немесе оған сөз тіркесі
жазылады. Мысалы:
gets(char *S); файлдан мәлімет байттарын '\n' символы кездескенше
біртіндеп оқиды да, оларды S тіркесіне орналастырып, '\n' символын ‘\0’
(нөл-терминатор) белгісіне айналдырады.
fgets(char *S,int m,FILE *fp); fp түрінде сипатталған файлдан
байттарды оқып, оларды '\n' символы кездескенше немесе m байт оқылып
біткенше S тіркесі мәні ретінде жазып шығады.
Блок бойынша енгізушығару операцияларында мәліметтер алмасу олардың бір
блогын толық қамтиды. Мысалы:
fread (void *ptv, int size, int n, FILE *fp);
мұнда fp файлынан әрқайсысы size байттан тұратын мәліметтің n блогы ptv
нұсқауышы көрсетіп тұрған жады аймағына оқылады (оқылатын блок үшін алдын
ала орын дайындап қою қажет).
fwrite (void *ptv, int size, int n, FILE *fp);
мұнда ptv нұсқауышы көрсетіп тұрған жады аймағында орналасқан әрқайсысы
size байттан тұратын мәліметтің n блогы ашық тұрған fp файлына жазылады.
fprintf және fscanf функцияларын пайдалану
fprintf - файлға информация жазу үшін, ал fscanf – файлдан информация
оқу үшін қолданылады. Олардың жалпы жазылу түрі:
fprintf(fp, “спецификация шаблоны”,p);
мұндағы p-өрнек;
fscanf(fp, “спецификация шаблоны”,адрес);
Мысал: Бүтін сандар тізбегін n=5 пернелерден енгізіп, оларды файлға жазу
керек болсын.
файл ашып, оған 5 сан жазу
#include stdio.h
#include conio.h
main()
{ int k,i,n=5;
char fname[]="a:\\num.txt\0";
clrscr();
FILE *fp;
fp=fopen(fname,"w");
clrscr();
printf("Енгізілген сандар %s файлына жазылады\n",
fname);
puts("Әр сан енгізілген соң, Enter басыңыз\n");
for(i=0; in;i++)
{scanf("%i",&k);
fprintf(fp,"%d ",k);
}
fclose(fp);
printf("Енгізілген сандар %s файлына жазылды\n",
fname);
getch();
}
Нәтижесі:
Енгізілген сандар a:\num.txt файлына жазылады
Әр сан енгізілген соң, Enter басыңыз
1
2
3
4
5
Енгізілген сандар a:\num.txt файлына жазылды
Файлдағы мәлімет: 1 2 3 4 5
Бес бүтін санды n=5 бұрыннан бар file1.txt файлына жазу керек, сол
файлды мәлімет қосу үшін ашып, оған 5 сан жазып, сонан соң ондағы мәліметті
оқып тексеру керек.
* файлға мәліметтер қосу *
#include math.h
#include stdio.h
#include conio.h
main()
{ int i,k=0,s=0,n=5,y,x;
char fname[]="file1.txt";
clrscr();
FILE *fp;
fp=fopen("file1.txt","at");
if ((fp=fopen(fname,"at")) == NULL)
{ printf("\nФайлды ашуда қате болды");
getch();
return(0);
}
puts("Enter арқылы бөліп, 5 сан енгізіңіз:");
for(i=1; i=n;i++)
{scanf("%i",&x);
fprintf(fp,"%d ",x);}
fclose(fp);
getch();
}
Нәтижесі:
Enter арқылы бөліп, 5 сан енгізіңіз:
11
22
33
44
55
Файлдағы мәлімет: 1 2 3 4 5 11 22 33 44 55
Дискідегі file1.txt файлын мәліметтер оқу үшін ашып, ондағы мәліметті
оқып, файлдағы тақ сандардың қанша екенін және қосындысын табу керек.
* файлдан мәліметтер оқу *
#include math.h
#include stdio.h
#include conio.h
main()
{ int i,k=0,s=0,n=5,y,x;
char fname[]="file1.txt";
clrscr();
FILE *fp;
fp=fopen(fname,"r");
* Оқу үшін файл ашу *
fp=fopen("fp","rt");
if ((fp=fopen(fname,"rt")) == NULL)
{ printf("\n Файл ашуда қате болды");
getch();
return(0);
}
puts("Файлдан оқылған сандар:");
while(!feof(fp))
{fscanf(fp,"%i",&y);
printf(" %i ",y);
if (y%2==0) {s+=y;k=k+1;}
}
fclose(fp);
printf("\nТақ сандар қосындысы s = % i,
олардың саны k=%i", s, k);
getch();
}
fgets және fputs функцияларын пайдалану
Сөз тіркестерімен жұмыс істегенде fgets және fputs функциялары
қолданылады:
fgets функциясының жалпы жазылу түрі:
fgets(нұсқауыш,MAXLEN,fp);
нұсқауыш – ЭЕМ жадындағы орынға сілтейтін нұсқауыш; MAXLEN – оқылатын
тіркестің максимальды ұзындығы; fp - файл нұсқауышы.
Мысалы:
#define L 20
main()
{
FILE *fp;
char *st[n];
fp=fopen(“stroka”,”r”);
while(fgets(st,L,fp)!=NULL)
puts (st);
}
Файлдарға сөз тіркестерін жазу үшін fputs функциясы келесі түрде
қолданылады:
status=fputs(қатар нұсқауышы,fp);
status – бүтін сан, оның мәні eof функциясында жазылады, егер fputs()
функциясы файлдың соңына шыққан болса немесе қате тапса, fputs функциясы
жазылатын жолдың соңына 0 символын жазбайды.
Төменде осы функцияларды пайдалану мысалы келтірілген.
#include stdio.h
void main ()
{
int n;
char str[50], str1[50], ch;
FILE *fp;
Файлға мәлімет жазу
fp = fopen("ex.txt","w");
puts ("Бүтін сан енгізіңіз: "); scanf("%d",&n);
fprintf (fp, "%d\n", n) ;
puts ("Символ енгізіңіз: "); ch=getchar();
putc (ch, fp);
puts ("Сөз тіркесін енгізіңіз: "); gets(str);
fputs(str, fp);
fclose(fp);
Файлдан мәлімет оқу
... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz
Реферат
Курстық жұмыс
Диплом
Материал
Диссертация
Практика
Презентация
Сабақ жоспары
Мақал-мәтелдер
1‑10 бет
11‑20 бет
21‑30 бет
31‑60 бет
61+ бет
Негізгі
Бет саны
Қосымша
Іздеу
Ештеңе табылмады :(
Соңғы қаралған жұмыстар
Қаралған жұмыстар табылмады
Тапсырыс
Антиплагиат
Қаралған жұмыстар
kz