Автор: Пользователь скрыл имя, 22 Декабря 2011 в 21:29, курсовая работа
С++ тілінде ішкі файлдың аналогы болып ағын саналады. С++ де ағынға тип сәйкестендірілмейді. Ағын- енгізу,шығару процесінде берілетін байттық тізбек. Ағын қандай да бір сыртқы құрылғымен немесе дискідегі файлмен байланысты болу керек. С++ терминологиясында ол былайша айтылады: ағын қандайда бір құрылғыға немесе файлға бағытталуы қажет.
Курстық жұмыстың тақырыбы өте ауқымды болып келеді. Курстық жұмысты жазу барысында келесідей негізгі файлдарды ашу және жабу, файлдармен жұмысты ұйымдастыру, файлда форматты енгізу, шығару, символдарды енгізу, файлдың атын өзгерту тақырыптары қозғалмақшы.
Кіріспе.......................................................................................................................3
1.Файлдармен жұмысты ұйымдастыру
1.1 Дискідегі файлмен жұмыс ...........................................................................4
1.2 Файлмен форматтық алмастыру.................................................................5
1. 3 FILE құрылымының көмегімен файлдармен жұмыс жасау........................6
2. С++ тілінде файлдармен жұмыс
2.1 Файлдармен жұмыс жасауға арналған функциялар…....…………….........10
2.2 Файлдағы символдармен жұмыс..... ..............................................................14
2.3 Файлдар және ағымдар...................................................................................16
2.4 Мәліметтер блогын жазу және оқу................................................................18
Қорытынды......................................................................................................20
Қолданылған әдебиеттер..........................................
Кіріспе
ЭЕМ-нің сыртқы құрылғысындағы ақпаратпен байланыста болатын негізгі ұғым файл ұғымы саналады.
Көптеген
адамдар компьютер
С++ тілінде ішкі файлдың аналогы болып ағын саналады. С++ де ағынға тип сәйкестендірілмейді. Ағын- енгізу,шығару процесінде берілетін байттық тізбек. Ағын қандай да бір сыртқы құрылғымен немесе дискідегі файлмен байланысты болу керек. С++ терминологиясында ол былайша айтылады: ағын қандайда бір құрылғыға немесе файлға бағытталуы қажет.
Курстық жұмыстың тақырыбы өте ауқымды болып келеді. Курстық жұмысты жазу барысында келесідей негізгі файлдарды ашу және жабу, файлдармен жұмысты ұйымдастыру, файлда форматты енгізу, шығару, символдарды енгізу, файлдың атын өзгерту тақырыптары қозғалмақшы.
Курстық жұмыстың мақсаты: С++ тілінде файлдармен жұмыс жасау мүмкіндіктерін зерттеу.
Курстық жұмыстың міндеттері:
1. Файлдармен жұмысты ұйымдастыру
1.1. Дискідегі файлмен жұмыс
Әр файлдың дискіде аты бар. Ол ат оған кіру үшін арналған. Бағдарламаларда файлдардың аттарын жолдар түрінде көрсетілген. Файлдардың аттарында бағытталған талаптар әр түрлі операциялы жүйелерде айырмашылығы болады. DOC және Windows жүйлерінде файл аты ұзындығы бірден сегіз таңбаларға жететіндей көрінеді. Олардан кейін міндетті емес нүктелер болады. Microsoft Windows жүйесінде файл аты 256 таңбаларға жететін ұзындықтан тұрады.
Мысалы,
Windows 95/98 жүйелерінде келесі белгілерді
қолдануға болмайды:
Операция жүйелеріндегі файл аттарына қойылатын талаптарды ескеру қажет.
Файлдың ашылуы дегеніміз – енгізу және шығару ағымдары. Ол дискідегі нақты файлмен ассоцияланады. Файлмен жұмыс істеп болсақ, оны жабу міндетті. Файлды ашу үшін Fopen ( ) функциясы қолданылады ( ). Fopen ( ) прототипі stdio.h файлында бар. Әр ашылатын файлға FILE жүйесіне бағытталған көрсеткіші қолдану керек. Бұл көрсеткіш кейінгі операцияларда қолданылады. Егерде fopen ( ) функциясы файлды аша алмаса, ол Null атты нолдік көрсеткішті оралтады.
Filename дәлелі деген – ол файлдың аты бар жол. filename жолы файлға апаратын жолды көрсетеді. Mode дәлелі файлдың ашу уақытын көрсетеді.
Кесте 1-де fopen ( ) функциясының mode дәлелінің мағыналары көрсетілге
1-Кесте
Fopen ( ) функциясының mode дәлелінің мағыналары
Параметр | Режимі |
r | Оқу оқу үшін ашу |
w | Жазу үшін жасау |
а | Қосу үшін ашу |
r + | Жазу және оқу үшін арналған файлдарды ашу. |
w + | Оқу және жазу үшін жасау |
a + | Файлдарды жаңарту үшін ашады және жасайды; жазу файлдың соңында шығарылады |
rb | Екілік тәртіптегі файлды оқу үшін ашу. |
wb | Екілік тәртіптегі файлды жазу үшін жасау. Егер ондай файл болса, оның ішіндегі жоғалады. |
ab | Екілік тәртіптегі файл соңына жазу үшін файлды ашады және жасайды. |
rb+ | Екілік тәртіптегі файлды жаңарту үшін ашады. |
wb+ | Екілік тәртіптегі файлды жаңарту үшін жасайды. |
ab+ | Екілік тәртіптегі файлды жаңарту үшін ашады және жасайды. |
1.2. Файлмен форматтық алмастыру
Форматтық шығару функциясының көмегімен символдық түрде берілген есептеу нәтижесінен бірге мәтіндік файл жасауға болады. Жасалған файлды экранда қарауға, принтрге басуға, мәтіндік ребактор көмегімен редакциялауға болады.
Форматтық шығару функциясының жалпы түрі:
Int fprintf (ағынды көрсеткіш, форматтық жол, айнымалар тізімі);
Бұрын
қолданған экранға шығаруды ұйымдастырудың
printf ( ) функциясы fprintf ( ) функциясының
жеке нұсқасы болып табылады.
Мәтіндік файлды форматтап енгізу үшін fscanf ( ) фнкциясы көмегімен жүзеге асырылады. Fscanf ( ) функциясының прототипі:
int fscan ( FILE fp, const char fmt,…);
fp – дәлелі жүйесі FILE типінің көрсеткіші. Формат жолы scanf ( ) функциясындағы жолмен ұқсас. Көп нүкте тағы да қосымша мәліметтердің бар екенін білдіреді. Fscanf ( ) файлмен жұмыс істеу үшін яғни бірнеше сандар немесе жолдар бар мәтінде файл қажет етеді.
Бұл функцияны берілген мәліметтер мәтіндік файлда алдын –ала дайындалған жағдайда қолданған ыңғайлы.
Мысалы,
файлдағы мәтін мынандай
100.02
0.00456 1.0005
fscanf.c – fscanf ( ) функциясы барысында форматталған файлды оқу программасы.
/ * берілген fscanf ( ) форматын қолдануы арқылы оқу.* /
#include <stdlib.h >
#include <stdio.h>
int main (void)
{
float fl, f2, f3, f4, f—;
FILE *fp;
if ( (fp = fopen (''INPUT.TXT'', ''r'') ) == NULL)
{
fprintf (stderr, ''Error opening file. \n'');
exit (1);
}
fscanf (fp, %f %f %f %f %f, δf1, δf2, δf3, δf4, δf5);
printf ( " The values are %f ,%f, %f, %f, and %f \n. ", f1, f2, f3, f4, f5);
fclose (fp);
return 0;
}
Нәтиже
The values are 123.449997,
87.000999, 100.019997, 0.004560,
and 1.000500
1.3. FILE құрылымының көмегімен файлдармен жұмыс жасау
Файлдармен жұмыс істеу мәнін түсіну үшін, енгізу-шығару ағымдары арқылы қол жеткізуді қарастыру керек. Функциялардың орындалуын қамтамасыз ету үшін, studio.h тақырыпшалық файлын іске қосу қажет. Файлдармен жұмыс істеудің жалпы сызбасы төмендегідей:
1. Файлды қажетті режимде ашу (оқу, жазу, толықтыру, оқу мен жазу).
2.
Файлдағы деректерді оқу
3. Файлға қол жеткізуді жабу.
Енгізу-шығару ағымдары арқылы ашылған әр файл үшін studio.h тақырыпшасында анықталған FILE үлгісі бойынша төмендегідей ішкі құрылымдық айнымалы құрылады:
tipedef struct
{
int
level;
unsigned flags; //файл жағдайларының жалаушалары;
char
fd;
unsigned char hold; //қосалқы символ
int
bsize;
unsigned char_FAR*buffer; //буфер ішіндегі қол жеткізу сілтегіші
unsigned char_FAR*curp; //қол жеткізу сілтегішінің ағымдық мәні
unsigned istemp; //уақыт файл жалаушасы
short
token;
} FILE;
Файлдың аты тек қол жеткізуді ашқанда ғана қолданылады. Одан әрі қарай файл айнымалысымен жұмыс жүреді, ол файл ашылғанда орнатылады.
Файлдармен жұмыс істегенде қолданылатын бірінші функция –fopen ( ). Ол екі параметрдің болуын талап етеді: файлға жол мен оны ашу режимін. Егер файл бағдарлама орналасқан бумада болса, оның атын көрсетсе болғаны. Файлды ашу операциясы сәтсіз аяқталуы мүмкіндігіне байланысты, оны орындаған кезде fopen ( ) функциясы қайтаратын мән талданады. fopen ( ) функциясы сәтті аяқталған кезде сілтегіші FILE типті құрылымға қайта оралып, егер файлды ашу кезінде қате кеткен болса, функция NULL-ді қайтарады.
Кез-келген файлды ашу сызбасы төмендегідей болуы мүмкін:
FILE*myfile;
myfile= fopen (“hello, txt”, “rt”);
of (myfile= NULL)
//файлды сәтті ашу кезіндегі іс-әрекеттер тізімі
eise
// файлды сәтсіз ашуға берілген жауап
Ашылатын
файлдарға қол жеткізу
*r – файл тек оқу үшін ашылады. Егер файл жоқ болса, функция NULL мәнін қайтарады. Сәтті ашылған кезде сілтегіш файлдың басына орнатылады.
*w
– файл тек жазу үшін ашылады.
Егер мұндай аты бар файл
жоқ болса, ол құрылады; егер
файл бар болса, ашылар
*a – файл файл соңына қосу үшін ашылады. Сілтегіш файлдың соңына қойылады.
*r+, w+, a+ - файл жаңарту үшін
ашылады. Бұл режимдерде оқу
мен жазуға болады. Қол жеткізуді
ашу кезіндегі сілтегіштің
* - файл мәтін режимінде ашылады. Бұл жағдайда жол соңыныі символы өңделіп, ол ақпаратты оқу кезінде онша маңызды емес болғасын, жаңа жолға көшкенде орнатылады. Мәтіндік режимде саны сақталған кезде мәтіндік көрінісі үшін қанша символ қажет болса, сонша байт керек болады, яғни long типті 1 234 567 сандары файлда 4 байт емес, 7 байтты қажет етеді.
*b
– файл қосарлы режимде
Егер ашылатын файлдың типі көрсетілмесе, онда жариясыз түрде файл мәтіндік деп саналады.
Файлдармен жұмыс жасауға арналған келесі функциялар бар:
Файлдағы деректерді оқу мен жазу функцияларының барлығын келесі топтарға бөлуге болады: