Файлдармен жұмыс



КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
3
1 Бөлім ФАЙЛДАРМЕН ЖҰМЫС ... ... ... ... ... ... ... ... ...
1.1 Жады класстары ... ... ... ... ... ... ... ... ... ... ... ... ...
1.2 С++ тілінде файлдармен жұмыс істеу жабдықтары ... ... ..
1.3 Дискідегі файлмен жұмыс ... ... ... ... ... ... ... ... ... ... .
1.4 Ағымды ашу параметрі мен режимдері ... ... ... ... ... ...
2 БӨЛІМ ФАЙЛДА САНДЫҚ ШАМАЛАРМЕН ЖҰМЫС... 14
2.1 Бүтін санды файлға жазу және оқу ... ... ... ... ... ... ... .. 14
2.2 Файлдармен мәлімет алмасу ... ... ... ... ... ... ... ... ... ... 16
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ ... ... ... ... ... ... ...
21
КІРІСПЕ

Си тілін 1972 жылы АҚШ-тағы Bell laboratories қызметкері Денис Ритчи ойлап тапты.
Автордың ойынша, бір жағынан, бұл құрылымдық программалаудың єдістемесіне сүйенетін жоғары деңгейдегі программалау тілі, екінші жағынан, ол жүйелік программаларды, атап айтқанда, компиляторлар жєне операциялық жүйелерді құруды жүзеге асыру керек. Си тілі шыққанға дейін мұндай программалар тек төменгі деңгейдегі программалау тілдері - Ассемблерде, Автокодта жазылды. Си тілінің көмегімен алғашқы жүйелік программалардың бірі болып - UNIX операциялық жүйесі шығарылды.
Си стандартын 1983 жылы Америка ұлттық стандарт институты бекітті жєне ANSI С деген атау берілді.
1980 жылдың басында осы фирманың қызметкері Бзерн Строуструп Си тілінің Си++ (Си-плюс-плюс) деп аталатын кеңеймесін шығарды, ол объектіге бағыттап программалауға арналған.
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ

1. Березин Б.И., Березин С.Б. Начальный курс С и С++. -М.: ДИАЛОГ-МИФИ, 1996.
2. Т.А.Павловская., Ю.А.Щупак. Структурное программирование: Практикум - СПб.: Питер, 2003. -240 с: ил.
3. Дейтел Х., Дейтел П. Как программировать на Си. –М.:Бином, 2000.
4. Паннас К., Мюррей У. Программирование на Си и Си++. –К.:Ирина, ВНV, 2000.
5. Культин Н.Б. С/С++ в задачах и примерах. ‐СПб:BHV ‐ Петербург, 2001.
6. Вирт Н. Алгоритмы и стуктура данных. -М.: Мир, 1989.
7. Подбельский В.В., Фомин С.С. Программирование на языке Си. -М.: Финансы и статистика, 1999.
8. Подбельский В.В. Язык Си++. -М.: Финансы и статистика, 1996.
9. Культин Н. С/С++ в задачах и примерах.-СПб.: БХВ-Петербург, 2001.
10. Семакин И.Г., Шестаков А.П. Основы программирования.-М.: Мастерство; НМЦ СПО; Высшая школа, 2001.

МАЗМҰНЫ


3
КІРІСПЕ ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
1 Бөлім ФАЙЛДАРМЕН ЖҰМЫС ... ... ... ... ... ... ... ... ... 4
1.1 Жады класстары ... ... ... ... ... ... ... ... ... ... ... ... ... 4
1.2 С++ тілінде файлдармен жұмыс істеу жабдықтары ... ... .. 6
1.3 Дискідегі файлмен жұмыс ... ... ... ... ... ... ... ... ... ... . 8
1.4 Ағымды ашу параметрі мен режимдері ... ... ... ... ... ...
2 БӨЛІМ ФАЙЛДА САНДЫҚ ШАМАЛАРМЕН ЖҰМЫС... 14
2.1 Бүтін санды файлға жазу және оқу ... ... ... ... ... ... ... .. 14
2.2 Файлдармен мәлімет алмасу ... ... ... ... ... ... ... ... ... ... 16
ҚОЛДАНЫЛҒАН ӘДЕБИЕТТЕР ТІЗІМІ ... ... ... ... ... ... ... 21

КІРІСПЕ

Си тілін 1972 жылы АҚШ-тағы Bell laboratories қызметкері Денис Ритчи
ойлап тапты.
Автордың ойынша, бір жағынан, бұл құрылымдық программалаудың
єдістемесіне сүйенетін жоғары деңгейдегі программалау тілі, екінші жағынан,
ол жүйелік программаларды, атап айтқанда, компиляторлар жєне операциялық
жүйелерді құруды жүзеге асыру керек. Си тілі шыққанға дейін мұндай
программалар тек төменгі деңгейдегі программалау тілдері - Ассемблерде,
Автокодта жазылды. Си тілінің көмегімен алғашқы жүйелік программалардың
бірі болып - UNIX операциялық жүйесі шығарылды.
Си стандартын 1983 жылы Америка ұлттық стандарт институты бекітті жєне
ANSI С деген атау берілді.
1980 жылдың басында осы фирманың қызметкері Бзерн Строуструп Си
тілінің Си++ (Си-плюс-плюс) деп аталатын кеңеймесін шығарды, ол объектіге
бағыттап программалауға арналған.

1 Бөлім ФАЙЛДАРМЕН ЖҰМЫС

1.1 Жады класстары

Программада қолданылатын барлық айнымалыға ЭВМ жадынан орын бөлінуі
керек. Жадының бөлінуі программаны машина жадына енгізіп, орындалу
кезегінде (компиляция) іске асады. Айнымалыға берілетін жадының 4 класы
бар:
1.auto –автоматты түрде.
2. extern-сыртқы.
3. static-статистикалық.
4. register-регистрациялық.
Бүкіл программада қолданылатын жан-жақты қамтитын айнымалылар
(глобальные) үшін сыртқы жадынан орын бөлінеді. Глобальнды айнымалыларды
программа блогынан тыс немесе блок ішінде extern деген сөзден кейін
хабарлауға болады. Бұл жағдай көбінесе программа модулы басқа фаилда
сақтауда қолданылады. Мыс: негізгі және көмекші функциялар әртүрлі файлда
сақталады.
Файл1.
--------- ---------
int var void func ()
void main () {extern int var;
{ var=5; var = 10*var;
func (); }
cout var;}
Бұл жерде негізгі және көмекші (func) арасындағы байланыс var деген
глобальдық айнымалы арқылы жүргізіледі. Оған компиляция кезінде жадының
сыртқы бөлігінде орын бөлінеді.Ол программа орындалу барысында экранға 50
деген сан шығарады. Блоктың ішінде хабарланған программаның бір бөлігінде
қолданылған локаьдық айнымалы автоматты жадынан орын бөлінеді. Жадыдан орын
бөлініп, программаның блогы орындалып жатқан кезде іске асады да, блоктан
щыққан кезде жады тазарады. Auto деген сөзді жазбауға да болады.
Статистикалық жады-айнымалыға программа орындалуы блок ішіне кіріп
келе жатқанда бөлінеді де блоктан шыққанда жады тазартылмайды.
Регистрациялық жады – локальдыө айнымалдылар үшін бөлінеді. Процессор
регистрі жадынан ең тез, ең кішкентай бөлігі. Олар программаның барлық
операцияларының орындалуында қолданып отырады. Сондықтан регистрмен жұмыс
істеуді компиляторға қолданған жөн.
Стандартты СИ тілінде енгізу – шығару операторлары.
Пограммада енгізу – шығару деп оперативтік жады мен сыртқы құрылғының
арасындағы информация алмасуын айтады.
Енгізу-сыртқы құрылғыдан информацияны компьютердің жадына жіберу.
Шығару-компьютердің жедел жадындағы информацияны сыртқы құрылғыға
жіберу.
Принтер – информацияны шығару құрылғысы.
Клавиатура – енгізу құрылғысы.
Сыртқы құрылғыдағы информациядан байланысының негізгі түсінігі файл
түсінігі. Сондықтан да программалау тілінде енгізу – шығаруды ұйымдастыру
файлынан жұмысты ұйымдастыруына байланысты Паскальда ішкі және сыртқы файл
деген түсінік бар
Ішкі файл- файлдық типті айнымалы.Ол реттелген типті шама. Файлдық
айнымалының элементтері әртүрлі типті болуы мүмкін. Сондықтан да олардың
ұзындығы, формуласы бір-бірінен ерекше болады.
Ішкі файл мен сыртқы файл assign сөзі арқылы байланысады. Ішкі файлдық
айнымалының әрбір элементі сыртқы файлда бір жазу қатары болып жазылады.Оны
бір компьютердің көмегімен оқуға немесе жазуға болады. Осы ішкі файл
түсінігі үздіксіздік (паток) болып табылады. Үздіксіз енгізу – шығару
процесінде берілетін байттың тізбек үздіксіз бір сыртқы құрылғыдан
байланысты болу керек немесе дискідегі файлмен байланысты болу керек. Яғни
үздіксіз бір құрылғыға немесе файлға бағытталған болуы керек. СИ-дегі
файлдың негізгі айырмашылығы: оларда файл типі болмайды. Кез-келген файл
байттың тізбек түрінде жазылады.

Баит 0 Баит 1 Баит 2 ... .. EOF ф. соңы

CИ-де стандартты паток және программада хабарламадан паток бар.
Программа хабарламадан паток программист құрған дискідегі файлмен
байланыста болады. Стандартты патокты система ашып жауып отврады.Кез –
келген программа бастап жұмыс істегенде мынадай стандартты патоктар
ашылады.
stdin-стандарттық енгізу.
stdout-стандарттық шығару(дисплейден болады)
stderr-қате туралы хабарды экранға шығару(дисплей).
Бұлардан басқа стандартты баспаға басу және қосыша поток тізбектерін
парт үшін.біз негізінен 3 потокты пайдаланамыз.
Ал дискідегі файлмен жұмыс істеу үшін қажет ағым программа ашылу
қажет.

1.2 С++ тілінде файлдармен жұмыс істеу жабдықтары

Файлдарды өңдеу негізгі келесі төрт этаптан тұрады.
ағымды ашу;
ағымды белгілі бір файлмен байлыныстыру.
ағымдағы берілгендерді оқу, файлға берілгендерді жазу;
файлды жабу.
Файлмен жұмыс істеу үшін fstream.h кітапханасін программа кодына
іnclude директивасының көмегімен коюымыз керек. Бұл файлда келесі үш класс
анықталған.
іfsteram – файлды енгізу классы;
оfstream – файлдық шығару классы;
fstream – файлдық енгізу және шығару классы.
Бірінші этапты іске асыру үшін осы класстар қолданылады. Яғни, ағым
келесі түрде ашылады. Іfsteram р; р –ағымы оқу үшін ашылады. Ofstream р; р-
ағымы шығару үшін ашылады; Fstream р; р – ағымы оқу және шығару үшін
ашылады. Екінші этапты жүзеге асыру үшін ашылған ағымға дискідегі белгілі
бір файлмен келесі ретпен байланыстырады.
p.open(“файл есімі”[, режим1режим2...]);
мұндағы р-алдан ала ашылған ағым аты “файл есімі” ішіндегі файл есімі
көрсетіледі. Режимдер келесі түрде беріледі.
ios::in - файлды оқу үшін ашу;
ios::out – файлды шығару үшін ашу;
ios::app – файл соңына жаңа берілгендерді қосу режимі;
ios::ate – файлдың соңына бару режимі;
ios::trunk - файлды тазарту режимі.
Бірінші және екінші этапты бір мезгілде келесі түрде жазуға болады.
іfstream p(”файл есімі”[,режим1режим2]);
оfstream p(”файл есімі”[,режим1режим2]);
fstream p(”файл есімі”[,режим1режим2]);
Бұл екі түрдің бір-бірінен айырмашылығы бірінші жағдайда р ағымын бір
рет ашып бірнеше файлармен байланыстыруға болады. Ал, екінші жағдайда
ағымды ашқан бойда бір ғана файлмен байланыстыра аламыз.
Егер файл элементтері бекітілген ұзындықты структуралар болса, онда
оларды файлға жазу үшін келесі операция қолданады.
p.write((char*)&zap, sizeof(zap));
мұндағы р-ағымның есімі, zap-структура типті айнымалы, sizeof(zap)) – zap
айнымалысының көлемі, & - zap айнымалысының адресін алу операциясы, (char*)
– типті өзгерту операциясы. Ағымнан оқу үшін келесі операция қолданады.
p.read((char*)&zap, sizeof(zap));
Файлды жабу операциясы p.close(); .
Ішкі файл- файлдық типті айнымалы. Ол реттелген типті шама. Файлдық
айнымалының элементтері әртүрлі типті болуы мүмкін. Сондықтан да олардың
ұзындығы, формуласы бір-бірінен ерекше болады.

1.3 Дискідегі файлмен жұмыс

Дискідегі файлдан жұмыс потокқа көрсеткішті хабарлаудан
басталады.Бұндай хабарлаудың форматы:
FILE *көрсеткіш аты
Мысал: file*fp;
Файл сөзі структуралық типтің стандарттық аты.Ол stdio.h тақырып
файлында хабарлануы FILE структурасында потоктың ағындағы орнының буферге
көрсеткіші,көрсеткіш информациясы болады.Келесі қадам потокты аш. Ол
стандартты функция fopen() арқылы ашылады.
Бұл функция паток көрсеткішіне дәл мән береді және оның мәні алдын-ала
хабарламасын көрсеткішке меншіктейді.
Көрсеткіш аты=fopen (файл аты, ашу режимі).
Fopen функциясының параметрі символдық массивтің көрсеткіштері немесе
константалар болуы мүмкін.

Fp=fopen (“star.dat,” ”r”)

star.dat-ағымындағы, каталогтағы функцияның аты ол файлдан енді бұдан
былай көрсеткіштері fp бойынша паток байланыстырады.
“r” pежим параметрі-бұл файлдың оқу үшін ашылғанын көрсетеді.

Ағымды ашу параметрі мен режимдері
Параметрлер:
R-оқу үшін ашу.
W-жазу үшін құру.
A-қосымша жазбалар қщсу үшін ашу.
R+- оқу және жазу үшін ашу.
W+- оқу және жазу үшін құру.
а+-қосу үшін ашу немесе оқу және қосу үшін құру.
Паскальда бұрын құрылған файлды оған жазу үшін ашу ондағы информацияны
жоюға қолданылады. Оқу үшін бүрын құрылған бар файлды ашуға болады.
Ағым – текстік немесе екілік жүйедегі, алмасу режимі үшін ашылуы
мүмкін.
Текстік файлы түсінігі бұрынғыдай. Ол символдар тізбегі. Ол жазу
қатарында каретканы келесі жолға көшіру. (код13) және қатарды келесі жолға
көшіру (код10) бойынша бөлінеді. Егер файл режимінде ашылған болса, онда
бұл файлдан оқығанда каретканы жылжыту, келесі жолға көшіру комбинациялары
\n-жолға көшу символына түрленеді. Файлға жазу кезінде керісінше түрленеді.
Екілік жүйедегі файлдан жұмыс істегенде ешқандай түрлендірулер болмайды.
Информация үздіксіз тасымалданады. Егер екілік жүйедегі файлға көрсету
керек болса, онда жоғарғы параметрге в әрпі қосылады: (r+b, a+b, w+b,).
Кейбір компиляторларда текстік режим t әрпін белгілеп, (r+b, a+b, w+b,).
Егер патокты ашуда қателескен болдық fopen ( ) функцияны NULL мән
қабылданды. Бұл константа мәні stdio.h файлында анықталады. Қате ашылған
файлдың дискіде жоқ болуына байланысты немесе динамикалық жадыда
орындалуының жоқ болуына байланысты .Сондықтан былай ашқан дұрыс:
FILE *fp;
If(fp=fopen(“test.dat”,”r”)==NULL)
{puts(“не могу открыть файл\n”);}
ret.
Қате шыққан жағдайда программада бұрын ашылған барлық файлдарды жауып
барып тоқтатады.Потокты (файлды) жабуды fclose() функциясы орындалады.
int fclose(FILE*fpfr)
fpfr- жабылатын патоктағы көрсеткіштің форматының аты функция – NULL
ді қабылдауы егер операция жабу дұрыс орындалатын болса.
Таңбаларды жазу және оқу
Таңбаларды патокқа жазу puts() функциясы арқылы орындалады.
int puts(int ch FILE *fpfr)
Егер оператор дұрыс орындалмаған болса,онда жазылған символдар
қайтарылады.Егер қате орындалатын болса онда eof константасы қайталанады.
Символдарды потоктан оқу үшін gets функциясы қолданылады. int
gets(FILE*fpfr)
Функция файлынан оқыған символдары қайтарылуы болса
eofмәніқайтарылады.
*Мысал 1*
Клавиатурадан енгізілген символдың тізбегін файлға жазу программасын
құрайық.Енгізу соңы *теру болады.
*символдарды файлға жазу*
#includestdio.h
void main()
{FILE*fp;
char c;
{ if((fp=fopen(“test.dat”,”w”))==NULL )
{puts(“файлды аша алмаймын !\n”); return;}
puts(“символдарды енгіз.Енгізу соңы_*);
while((c=getchar())!=’*’);
puts(c,fp);fclose(fp);}
Текстік файл - символдар тізбегі болып табылады. Ол арнайы код ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Файлдар және оның түрлері
Ethernet - жергілікті желі құрастыру мақсатында өте кең тараған технология түрі
Файлдармен жұмыс істеу
Файл типі тізімі
TYPE типі файл элементтерінің типтері
Turbo pascal ортасындағы файлдар
Логикалық файлдың сипатталуы
String типті айнымалыға қолданылатын стандартты функциялар мен процедуралар
Паскаль тілінде графикалық режиммен жұмыс
Элемент типі - массив элементтерінің типін көрсету
Пәндер