Мліметтерді жазу жне оу функциялары.
Файлды, одан мліметтерді оу немесе дискіге жаа мліметтерді жазу алдында файлды ашу ажет (бар файлды ашан кезде ондаы бар апараттар саталады).
Жаа файлды ру кезінде ол оу жне жазу шін ашылады.
Дискілік файла жазылатын мліметтер уаытша DOS буферінде саталады. Файлды жабу кезінде барлы мліметтер буферден дискіге жазылады.
Файлды жабу кезінде дискі каталогы толтырылады жне дискриптор ары арай олдану шін босатылады.
Файлды аша отырып, DOS оан ж‰йелік мєліметтердіњ ж‰йелік облыстары арасында жедел жадыда орналасатын ашы файлдар кестесі (System File Table, SFT) деп аталатын арнайы ж‰йелік кестеніњ кезекті бос элементін (файлды сипаттау блогы) таѓайындайды. Бір уаытта жмыс істеуге болатын файлдарды ењ кµп санын анытайтын бл кестені клемі CONFIG.SYS файлыны FILES директивасымен DOS конфигурациялау кезењінде беріледі.
Ашылатын файл туралы жазбаны диск каталогтарыны жйесінен тауып, DOS зіне блінген SFT (файлды сипаттау блогы) элементіне файлды негізгі сипаттамаларын жазады: аты, зындыы, атрибуттары, ру кні мен уаыты, бастау кластері, файл туралы апараттан тратын каталог жазбасыныњ дискідегі физикалы адресі жне т.б. Апаратты бір блігі каталог жазбасынан SFT элементіне жазылады, ал бір блігін (мысалы, дискіні физикалы сипаттамалары туралы апарат саталатын дискіні параметрлер блогына крсеткіш) DOS зі ояды. Файлды сипаттау блогыны мањызды элементі болып, файлдыњ кµрсеткіші – кезекті жазу немесе оќу операциясы басталатын файлдыњ басына ќатысты байт нµмірі саќталатын екі сзді яшы болып табылады. Крсеткішті бар болуы файла тіке атынас жасауды, демек файлдыњ кез келген жерінен оќу немесе жазуды ±йымдастыруѓа м‰мкіндік береді. SFT-даы файлды сипаттау блогыны файлына бµлінген нміріне сілтемені DOS программаа дескриптор т‰рінде айтарады.
Ашы файла аратпа жасау (жазу, оу, файл сипаттамаларын згерту жне т.б.) жасау оан меншіктелген дескриптор арылы жзеге асады; ашылмаѓан файлды дескрипторы болмайды жне жйе онымен жмыс істей алмайды. Ашы файлмен болатын операцияны орындалуы бойынша DOS SFT блогында аќпаратты модификациялайды; SFT рамы рашан файлды аымдаѓы жаѓдайын бейнелейді.
Файлмен жмыс істеу аяталаннан со DOS функцияларыны кмегімен оны жабу керек. Жабу процесінде DOS буферлерініњ дискіге тасталуы, каталог жазбасыныњ модификациясы жєне SFT-даѓы файлды сипаттау блогыныњ оѓан бекітілген дескриптормен бірге босатылуы жасалады.
Мтіндік файла мліметтер жазу.
Бір лшемді массив.
Е арапайым файл типі мтіндік файл болып табылады. Бл файлдаы мліметтер типтік жне типтік емес файлдардаыдай машиналы кодта емес, сан, ріп жне баса пернетата символдары трінде (ASCII кодында) беріледі. Сондытан мндай файлдар мазмны оай аралады, оай згереді жне оларды кез келген мтіндік редакторды, соны ішінде Borland Pascal ортасыны да кмегімен згертуге болады. здерііз білетіндей 2.1.2.-ні ара, мтінді теру кезінде жаа жолды енгізу шін “Enter” пернесін басу керек, осы кезде арнайы код гинерацияланады—ол жол соы коды, ал файлды сырты сатау рылысына жазан кезде де арнайы код гинерацияланады—ол файл соы коды. Мтіндік файлды оыанда бл кодтар крінбейді.
Екі лшемді массив.
Алдыы таырыпта сіз мтіндік файлдарды ашуды, оан апараттарды жазуды йренііздер. Write()- процедурасын пайдаланып мліметтерді бір жола, ал writeln()—процедурасын пайдаланып оларды баана жазуды крдік. Осы білгендерімізді пайдаланып, келесі есепті шешіп крелік:
Пернетатадан, лшемі 100х100, элементтері бтін сан болатын, екі лшемді массив енгізіледі. Осы массивті элементтеріні орналасу реті бойынша, `МayFile5.in`атымен, мтіндік файл трінде жазатын, программа жазу керек.
Мтiндiк файлдан млiметтердi оу
ткен таырыптарда сіздер, мліметтерді мтіндік файла жазуды йренііздер. Енді оларды айтадан файлдан алай оуа болатынын арастырамыз.
Ол шін `mayFile1/in`файлын пайдаланамыз. Мліметтерді файла жазу кезіндегідей, бізді файлмызды байланыстыратын айнымалыа атау беруіміз керек. Айталы, ол атауFilelnболсын, содан кейін біз оны мтіндік файл ретінде сипаттауымыз керек. Бл айнымалыны біз енгізу процедурасында пайдаланатын боландытан, сол процедураны жергілікті айнымалысы ретінде сипаттаймыз.
var
Filelnt:text;
Одан кейін біз программада, “мтіндік типті ”Fileln айнымалысы, бізді
`mayFile1.in`атауымен берілген натылы файлмызды белгілейтіндігін крсетуіміз керек. Ол шін assing(NameVar,NameFile)-процедурасын олданады.
Енді файлдан мліметтерді оу шін, берілген файлды ашуымыз керек. Ол шін,reset(NameVar)—процедурасында олданады, мндаыNameVar-сізді файлды белгілеуге берген айнымалыызды атауы, бізді жадайымызда, олNameVar-Fileln. Reset(NameVar)-процедурасы, мліметтерді оуа файлды ашады жне курсорды файлды басына орналастырадв. Егер ондай жо болса, ателік туралы хабарлама береді.Ендімліметтерді файлдан оуа барлыы дайын болды. Ол шін зімізге брынан танысRead()жне Readln()процедураларын пайдаланамыз. Мліметтерді оу пернетатадан емес, файлдан жзеге асу шін, мліметтерді оуды жолын ксетеміз. Яни, жашаларды ішіне,assing()-процедурасыны кмегімен бізді файлмызды байланыстырып тран, айнымалыны атауын крсетеміз.
`MayFile.in`файлындаы бірінші сан, файлдаы барлы сандардарды млшерін крсетеді. Сондытан, алдымен файлдан
Sanauайнымалысыны мнін оытамыз,содан кейін параметрлі циклді олданып, файлдаы сандарды мндерін оимыз. Мліметтер толы оылып болан со, зімізге таныс Close() процедурасын пайдаланып, файлды жабу керек.