TYPE типі файл элементтерінің типтері
Жоспар:
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... .3
I тарау Файлдар
1.1.Файлдар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... .5 1.2.Файлдардың
түрлері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... .9
II тарау Файлдармен жұмыс
2.1.Файлдардың жалпы
сипатталуы ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... 16
2.2.Файлды өңдеудің негізгі процедуралары мен
функциялары ... ... ... ... ...19
2.3.Файлдармен
жұмыс ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... 26
III тарау
3.1.Текстік файлдар құру
мысалддары ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ..
... ... 31
3.2.Типтері анықталған файлдармен жұмыс
мысалдары ... ... ... ... ... ... .. ... ... ... ... 44
3.3.Типтері анықталмаған файлдармен жұмыс
мысалдары ... ... ... ... ... ... .. ... ... ... 50
Қорытынды
Пайданылған әдебиеттер тізімі.
Кіріспе
Турбо Паскаль программалау тілін осы кезге дейін оқып үйренгенде
біздің программамыз өзінің нәтижесін экранға шығаратын, программа жұмысы
кезінде олар компьютердің жедел жадында сақталатын да, есептеулер
біткеннен кейін бұл мәліметтер жойылып кететін. Кейбір күрделі циклдік
программаларда элементтер саны бірталай көп және ондағы мәліметтерді қайта-
қайта өңдеу қажет болады. Оның салдарынан қателер жіберілуі мүмкін. Жұмыс
нәтижесін келешекте пайдалана алу үшін, мысалы, оларды есептеулерге
пайдалану үшін немесе жаңа мәліметтерді алу үшін, оларды есте сақтап қалу
керек, Паскаль бастапқы деректерді ( берілгендерді ) пернелер тақтасынан
емес , өзіміз алдын ала дайындалған сыртқы мәтіндік файлдардан енгізіп
және программа нәтижесін компьютер жадындағы немесе дискетке жазылған
файлда сақтап қойыуға мүмкіндік береді. Қызметтеріне қарай оларды:
магниттік ақпарат тасымалдаушылар немесе жазылатын CD-дискілер деп атайды.
Файл негізінен екі мәселені шешеді:
Берілген мәліметерді және программа нәтижесін жинақтауға және оның мәндерін
кейін басқа программаларда пайдалану үшін сақтауға мүмкіндік береді;
Программаны басқа сыртқы енгізу щығару құралдармен (дисплей,баспа)
байланыстырады.
Файлға тізбекті ену тәсілінде файл элементтерін шығару, олармен әртүрлі
амалдар орындау, олардың файлға жазылған ретімен жүргізіледі. Бұл тәсіл
текст файлдарда кеңінен қолданылады.
Файлды өңдеу үшін көптеген процедуралар мен функциялар қолданылады.
Олар: Assign, Close, Rewrite, Reset,Read, Write, Blockread, Blockwrite,
Append,Flush,Truncate, Rename,Erase, Filesize, Filepos, Seek,Eoln Eof
,Ioresult,Seekeoln, Seekeof т.с.с.
Программаның орындалу кезеңінде файл элементтерімен файлға тізбекті
және тікелей ену деп аталатын екі түрлі тәсілмен еніп жұмыс жасауға болады.
Файлға тізбекті ену тәсілінде файл элементтерін шығару, олармен әртүрлі
амалдар орындау, олардың файлға жазылған ретімен жүргізіледі. Бұл тәсіл
текст файлдарда кеңінен қолданылады. Турбо-Паскаль да өзге программалау
тілдеріндегі сияқты сыртқы жадқа сақтаулы файлдармен бірқатар іс-әрекеттер
орындауға болады.
I тарау Файлдар
1.1.Файлдар туралы жалпы түсінік
Файл- берілгендердің іргелі құрылымы (структура) Компьютерді
программалық ұйымдастыру, олардың сыртқы құрылғылармен байланысы файлдық
құрылымға негізделген.
File (ағылшын тілінен аударылғанда) бума, іс қағаздар жинағы, сонымен
қатар акпаратты сақтау деген мағынаны білдіреді .
Файлдар деп жад құрылғыларына( дискеттер, винчестер, экранда )
белгілі бір атпен жазып қойылатын мәліметтер жиыны. Пернелер тақтасынан
енгізетін немесе экранға шығаратын мәліметтер стандартты текстік файлдар
болады, ал винчестер немесе дискеттерде сақталатын мәліметтер сыртқы
файлдар деп аталады. Паскаль программалау тілі тұрғысынан қарастырғанда
Файл – бір типті элементтер тізбегінен тұратын берілгендердің атаулы
құрылымы. Turbo Pascal-да файлдардың мынандай ерекшіліктері бар:
оның белгілі бір аты болады, бұл бір мезгілде бірнеше файлдармен жұмыс
істеуге мүмкіндік береді;
2. оның компоненттері бір типті болады, мысалы жазулардан немесе жолдық
қатарлардан тұратын файлдар жасауға болады;
- бір файлдың ішінде екінші файл жасауға болмайды, файлдардан тұратын
файл жасауға болмайды.
3. файлды жасаған кезде оның бастапқы көлемі берілмейді, ол жазылатын
дискінің сыйымдылығымен анықталады.
Шартты түрде файлды жолақ (лента) түрінде қарастыруға болады, оның басы
бар, ал соңы нақтыланбаған( не фиксируется) . Файл компоненттері осы
жолаққа біртіндеп бірінен кейін бірі жазылады
Мұнда м.о – маркер( курсор) орыны , файлдың жұмысшы позициясын (
терезе) көрсетеді ; м.с. - маркер файдың соңында ; - #10, #13- файл
элементтерінің соңынан автоматты түрде қойылатын арнаулы кодтар . Мұндай
файлдарды біртіндеп қатынау файлы деп атайды.
Turbo Pascal-да файлдарды екі негізгі белгісі бойынша топтастыруға болады:
а) файлдық типі бойынша (оның логикалық құрылымына);
б) файл элементтеріне катынау тәсілі бойынша.
Типтері бойынша файлдар шартты түрде үш түрге бөлінеді:
Мәтіндік файл; типтік файл; типтік емес файл.
Біз көбінесе мәтіндік және типтік файлдармен жұмыс істейміз.
Қатынау тәсілі бойынша файлдар келесідей бөлінеді:
Біртіндеп ( кезекпен ) қатынау файлдары. Олардың элементтері бос
орындармен айырылған және ұзындықтары әртүрлі болуы мүмкін. Мұндай
файлдарда оның ортасында немесе соңында тұрған мәліметті оқу үшін, оның
алдындағы компоненттерінің барлығын оқуға тура келеді.
-Тікелей қатынау файлдары. Мұнда арнайы процедуралар және функцияларды
пайдалана отырып, мәліметтерді, олардың файлдағы орнына тәуелсіз, оқуға
немесе жазуға болады,
Турбо Паскальда біртіндеп қатынау файлдарын текстік, (не последовательные
файлы называют) мәтіндік ( компоненттері ұзындықтары қалауымызша болатын
жолдарға бөлінген символдар тізбегінен тұрады), ал тікелей қатынау файлын
-типтік деп атайды..
Программа бұрын бар файлды өңдей алады немесе жаңадан файл құра алады. Екі
жағдайдада файлдармен жұмыс үш пункттен тұрады:
1) файлды ашу; 2) оқу немесе жазу ; 3) файлды жабу.
Программаның кезкелген айнымалысы сияқты файл программаның айнымалыларды
сиппаттау бөлімінде хабарлануы тиіс. Файлды хабарлағанда оның типі
көрсетіледі.
1.2.Файлдардың түрлері
Осыған дейін ,біз мәліметтерді пернетақтадан енгізіп, оларды экранға
шығардық, программа жұмысы кезінде олар компьютердің оперативті жадында
сақталатын да,есептеулер біткеннен кейін бұл мәліметтер жоғалып
кететін.Жұмыс нәтижесін келешекте пайдалана алу үшін, мысалы, оларды
есептеулерге пайдалану үшін немесе жаңа мәліметтерді алу үшін, оларды есте
сақтап қалу керек. Ондай тәсілдердің бірі мынадай: нәтиже экранға шыққан
соң қолға қаламсап және бір бет қағаз алып, бұл мәліметтерді жазып алу.
Дербес компьютерлер дәуірінің басында оларды үй тапсырмасы деп атаған
да, шын мәнінде солай болған.Қазіргі кездегі дербес компьютерлердің барлығы
ақпаратты сақтауға арналған арнайы құрылғылармен жабдықталған.
Мәтіндік файлға мәліметтер жазу.
Бір өлшемді массив
Ең қарапайым файл типі мәтіндік файл болып табылады. Бұл файлдағы
мәліметтер типтік және типтік емес файлдардағыдай машиналық кодта емес,
сан, әріп және басқа пернетақта символдары түрінде (ASCII-кодында)
беріледі. Сондықтан мұндай файлдар мазмұны оңай қаралады,оңай өзгереді және
оларды кез-келген қарапайым мәтіндік редактордың, соның ішінде Borland
Pascal ортасының да көмегімен өзгертуге болады. Өздеріңіз білетіндей,
мәтінді теру кезінде жаңа жолды енгізу үшін Enter пернесін басу керек,
осы кезде арнайы код генерацияланады-ол жол соңы коды, ал файлды сыртқы
сақтау құрылғысына жазған кезде де арнайы код генерацияланады-ол файл соңы
коды. Мәтіндік файлды оқығанда бұл кодтар көрінбейді.
Келесі есепті шешіп көрейік: Пернетақтадан бірнеше сандар енгізіп,
оларды myfile.in атты мәтіндік типтегі файлға жазу керек.
Есепті кезеңдерге бөлейік:
1) Пернетақтадан мәліметерді енгізу.
2) Оларды myfile.in атты файлға жазу керек.
Бірінші кезеңді орындау үшін:
- пернетақтадан енгізілетін сандардың мөлшерін (массив өлшемін)
көрсету керек.
- Сан мөлшерін білген соң , параметрлі циклді қолдану арқылы массив
элементтеріне осы сандардың нақты мәндерін меншіктейміз.
Осы әрекеттерді орындау үшін қолданылатын айнымалыларды сипаттаймыз.
Айталық санымыз 100-ден көп емес және олар басқа да процедураларда
қолданылатындықтан, оларды ауқымды айнымалыларды баяндау блогында
сипаттаймыз.
Program Misal_F1;
Var
San: array [1..100] of integer;
I, sanMolcheri: integer;
Мәліметтерді енгізу процедурасы келесі түрде болады:
procedura init; begin readln (sanmolcheri):
for I:=1 to sanmolcheri do
begin
write (“san[“,I,”]=’);
readln (san[1]);
end;
Мәліметтерді өңдеу процедурасы әзірге бізге қажет емес ,сондықтан ол
қызмет атқарамай-ақ қойсын.
procedura work;
begin
end;
Енді екінші кезеңді қарастырайық, яғни мәліметтерді “myfile.in”атты
мәтіндік типтегі файлға жазу керек.
Алдымен өз файлымызды байланыстыратын, айнымалының атауын беру
керек.Айталық, ол айнымалының атауы FileOut болсын, содан кейін біз
мәтіндік файл ретінде сипаттауымыз керек. Бұл айнымалыны шығару
процедурасында пайдаланылатын болғандықтан, оны жергілікті айнымалы ретінде
сипаттаймыз:
var
fileOut:text;
Одан кейін біз программаға, мәтіндік типтегі FileOut атты
айнымалының, біздің mayfile.in атты нақты файлымызды белгілейтінін
көрсетуіміз керек. Ол үшін assign(NameVar,File) процедурасы қолданылады.
NameVar-бұл файлды белгілеу үшін берілген айнымалы аты, біздің жағдайда
NameVar-дың орнына FileOut сөзін жазасыз. NameFile-бұл біз жұмыс істейтін
файлдың аты, біздің жағдайда mayfile.in.
Файл аты мен оның кеңейтілуінен басқа орналасқан орнына қарай
сипатталатыны да белгілі. Мысалы, “c:\bp\bin\myfile.in”. Ал егер толық аты
берілмеген жағдайда,үнсіз келісім бойынша сіздің программаңыз орналасқан
ағымдағы каталог қолданылады.
Енді сіз берілген файлды ашып , оған мәліметтер жазылатындығын
көрсетуіңіз керек.Ол үшін rewrite (NameVar) процедурасы қолданылады.
Мұндағы, NameVar-бұл файлды белгілеу үшін берілген айнымалы аты, біздің
жағдайда NameVar-дың орнына FileOut атауы жазылады. Rewrite (NameVar)
процедурасы-файлды жазу үшін ашады және көрсеткішті файлдың басына
орналастырады.
Енді мәліметтерді файлға жазуға бәрі дайын.Ол үшін бұрыннан белгілі
Write ( ) және Writeln( ) процедураларын қолданамыз. Жазулар экранға емес
файлға жазылуы үшін, мәліметтерді шығару бағытын көрсетеміз. Яғни
,жақшаның ішіндегі мәліметтерді жазатын айнымалы атауының алдына, бізді
файлмен байланыстыратын assign( ) процедурасындағы айнымалы атауын
көрсетеміз. Айталық, берілгендерді шығыс файлына бір жолға жазу керек
болсын, бұл жағдайда бірінші мән ол енгізілетін сандардың мөлшері болады.
Жаңа жолға көшу болмайтындықтан, Write ( ) процедурасын қолданып,
бастапқыда файлға SanMolcheri айнымалысының мәнін жазамыз да, содан кейін
параметрлі циклді пайдаланып енгізу процедурасында енгізілген сандарды
жазамыз. Барлық мәліметтер файлға жазылып болған соң, файлды жабу керек .
Ол Close ( ) процедурасының көмегімен орындалады.
Close(NameVar) процедурасы- файлдың соңына, файл соңы белгісін жазып,
оны жабады. Егер файл Close( ) процедурасымен жабылмаған болса, онда
мәліметтер сақталынбайды.
Мәліметтерді файлға жазу процедурасы қандай болатынын қарастырып
көрелік:
Procedura exi;
Var
FileOut : text;
Begin
Assign (FileOut,’mayFile.in’);
Rewrite (FileOut);
Write(FileOut,SanMolcheri);
For I:=1 to SanMolcheri do
Write (FileOut,San[i]);
Close (FileOut);
End;
Негізгі программаның мәтіні өзгеріссіз қалады
begin
init;
work;
exi;
end.
Осы программаны Misal_F1 атымен дискіге жазып, оны орындауға
жіберіңіз. Программа жұмысын аяқтағаннан кейін, ВР редакторының көмегімен
біздің программамыз құрған ‘mayFile.in’ файлын ашып, оның мазмұнын
көріңіз. Өкінішке орай сандар файлда бос орынсыз тіркесіп жазылған болып
шығады. Мұндай жазбадан қандай сандар жазылғанын анықтау қиындық тудырады.
Бұл жағдайды қалай түзетуге болады?
Ол үшін, сандары бір бірінен дәл ажыратудың екі мүмкіндігі бар:
а) әрбір мәнді бос орын (‘ ’) белгісі арқылы бөліп жазу
b) әрбір мәнді жаңа жолға жазу (баған бойынша).
Бірінші жағдайда енгізілетін айнымалы атауынан кейін бос орын (‘’)
белгісін қоямыз:
write(FileOut,SanMolcheri, ‘’);
for i:=1 to SanMolcheri do
write(FileOyt,San[i], ‘’);
Екінші жағдай үшін,writeln ( ) процедурасын қолданамыз:
Writeln (FileOut,SanMolcheri);
for i:=1 to SanMolcheri);
writeln(FileOut,San[i]);
Типті файл-барлық элементтері бір типті мәліметтер болып келетін файл
түрі.Типті файл элементтері файлдық типтен басқа кез-келген тип бола алады.
Әр элементті файлға жазу үшін, мәліметтердің типіне
байланысты,міндетті белгіленген мөлшерде орын бөлінеді.Типті файлдарды
сипаттау бөлімінде ашу үшін, мәтіндік файлды сипаттағандай, файл атауын
беру керек және берілген файлдағы мәліметтерді сипаттайтын тип жазылады.
файл атауы:File of мәліметтер типі
Біздің жағдайымызда:
FileOut:File of integer;
Бұл жазу, берілген файлдағы мәліметтер-32768-ден 32767 аралығында
жататын бүтін сандар екенін көрсетеді.
Сонымен қатар, типті файлдармен жұмыс істегенде де, assign( )
–процедурасының көмегімен нақтылы файл аты мен байланыстыратын атауды
көрсетеміз.
Assign(файл атауы¸файлдың нақты атауы)
Біздің жағдайымызда:
Assign (FileOut,’may.dat’);
Типті файлдармен жұмыс жасағанда мәтіндік файлдардағы секілді оларды
жазуға және оқуға ашуға болады. Ол үшін стандартты функциялар қолданады:
Rewrite(файл атауы) – процедурасын файлды жазуға ашады және
курсорды файлдың басына орналастырады.
Типті файлдарға мәліметерді жазу write( ) процедурасы арқылы жүзеге
асырылады.Ол мәтіндік файлдарға write( ) процедурасына ұқсас .Алайда write(
) процедурасын типті файлдарда қолдануында біршама өзгешелік бар.
Әрекетті орындау кезінде көрсеткіш келесі жазу блогына көшеді. Типті
файлдарда writeln( ) процедурасын қолдану қателік көрсетеді.
Типті файлдарға writeln( ) процедурасын қолдануға болмайды.
Типті файлдармен жұмыс аяқталған соң Close(файл атауы)-процедурасы
көмегімен файл жабылады.
Reset(файл атауы)-процедурасы файлды оқуға ашады және көрсеткішті
файлдың басына орналастырады.
Типті файлдан мәліметтерді оқу үшін read( ) процедурасын қолданады.
Берілген процедураның жұмысы кезінде, блоктан мәліметті оқыған соң,
көрсеткіш автоматты түрде келесі жазбаға ауысады. Егер көрсеткіш соңғы
жазбаның соңынан тұрса , онда программа орындалуында қателік болады.
Бұл қиындықтан шығу үшін FileSize( ) функциясын қолдануға болады.
FileSize(файл атауы ):longint-функциясы файлдағы компоненттер санын
анықтайды. Яғни, бізге файлдағы барлық мәліметтерді оқу керек болса, оқу
процедурасын FileSize ( ) рет орындауымыз керек.
II Файлдармен жұмыс
2.1.Файлдардың жалпы сипатталуы
Программада файлдар FILE OF қызметші сөздері арқылы сипатталады. Turbo
Pascal программаларында файлдар идентификатормен белгіленетін арнайы
файлдық айнымалының көмегімен ашылады. Файлдық айнымалылар типі файлдың
құрамындағы элементтер арқылы анықталады.
а) бірден айнымалылар бөлімінде:
VAR файлдық айнымалы : файл элементтерінің типтері;.
ә) типтер бөлімінде:
TYPE типі=файл элементтерінің типтері;
VAR файлдық айнымалы: типі;
Файлдарды сипаттау мысалдары:
TYPE A=File Of Char;
VAR X:А; {символдардан түратын Х файлы FC-типті);
Y:File Of Real; {нақты сандардан тұратын Ү файлдык, айнымалысы}
TYPE Dosye=RECORD
A: String; B: lnteger; C: Char; D: Byte; END;
VAR X; Dosye; {Dosye-типті X жазуы)
Y: File Of Dosye {X жазуының элементтерінен тұратын Y файлдық
айнымалысы)
1. Әртүрлі символдардан құралған қатарлар тізбегінен тұратын
файлдарды текстік файлдар деп атайды, олардың файлдык. айнымалысы VAR
бөлімінде TEXT стандартты типімен сипатталады, мысалы.
VAR X: Text; Y: String;
Текстік файлдар әртүрлі текстік немесе сандык шамалардан тұратын
мәліметтерді сақтау үшін қолданылады. Олардың құрамындағы элементтер саны
мен ұзындықтары әртүрлі болып келеді. Әр қатардың соңы арнаулы қатардың
соңын білдіретін EOLN(End of Line), ал бүкіл текстің соңы файлдың соңын
білдіретін ЕOF(Enci Of File) белгілерімен аяқталады.
2. Құрамындағы элементтер типтері алдын-ала типтер бөлімінде
сипатталатын файлдарды типтері анықталған файлдар тобына жатқызуға
болады(немесе типтелген файлдар тобына), мысалы оларға жазулардан тұратын
файлдарды жатқызуға болады:
TYPE Karta=RECORD
A,B: lnteger;
C: Real;
D: String;
End;
VAR X: File Of Karta;
Y: Array [1..10] Of Karta;
Типтері анықталған файлдарды көбінесе деректер қорын жасайтын
программаларда қолданылады. Егер текстік файлдардың құрамын бірыңғай
символдардың жиынтығы болса, онда типтелген файлдардың құрамын реттелген
белгілі бір мәліметтердің жиынтығы деп қарастыруға болады.
3. Құрамындағы элементтер типтері көрсетілмей, тек қана файлдық
айнымалысы ғана File-типті болып сипатталатын файлдар типтері
анықталмаған файлдар тобына (немесе типтелмеген файлдар тобына ) жатады.
сипатталу мысалы:
VAR X:File; Y :integer;
Типтері анықталмаған файлдарды символдар мен байттардың жиынтығы
ретінде қарастыруға болады. Бұл файлдардың типтерінің жоқтығы оларды кез-
келген басқа типті файлдармен сәйкестендіріп байланыстыруға және дискі мен
жад арасындағы мәлімет ауыстыру жылдамдығын арттыруға мүмкіндік береді.
2.2. Файлды өңдеудің негізгі процедуралары мен функциялары.
ASSIGN және СlOSЕ процедуралары.
Файлмен жұмыс алдында оның атын файлды айнымалымен байланыстырып алу үшін
ASSIGN процедурасы қолданылады:
Assіgn(X,N);
мұндағы: X файлдық айнымалы, N - ашылатын файлдың аты.
Жоғарыдағы процедураның орындалу нәтижесінде компьютер жұмыс істеу үшін
ашылатын файлдың атын файлдық айнымалыға беріп (Х:=N), әрі қарай кездесетін
амалдарда ашылған файлдың атын X деп алып қатысады. Программада ашылған
файлда қолданған файлдық айнымалыны екінші бір файлды ашуға Assign
процедурасында қолдану үшін міндетті түрде бірінші ашқан файлды жабу керек
немесе екінші ашылатын файлдың файлдық айнымалысын басқа идентификатормен
белгілеу керек.
Файлды жабу үшін CLOSE процедурасы қолданылады.
CLOSE(X);
мұндағы: X – файлдық айнымалы
ASSIGN және CLOSE процедураларын қолдану мысалдары.
а) бірінші ашылған файлды жауып, екінші файлдың атын қайтадан X
файлдық айнымалысына беру: Assign(X,N); (Х-ке ашылатын N
файлының атын беру)
Ciose(X); {X файлын жабу}
Assign(X.M); аХ-ке келесі ашылатын М файлының атын беру
ә) бірінші ашылған файлды жаппай-ақ екінші файлдың атын басқа
идентификатормен белгіленген файлдык айнымалыға беру:
Assign(X,N); Х-ке ашылатын N файлының атын беру
Assign(X1 ,М); Х1 -кe келесі ашылатын М файлының атын беру
Close(X);
ASSIGN процедурасының көмегімен файлдың атын файлдык, айнымалымен
байланыстырғаннан кейін, олармен көптеген амалдар жүргізуге болады,
мысалы:
1. Дискіге жаңа файл жазу;
2. Дискіде бар файлдың мәліметтерін өшіріп, басқа мәліметтер жазу;
3. Файлды дискіден оқу;
4. Файлдың атын өзгерту;
5. Файлды дискіден өшіру;
6. Файлдан берілген элементті іздеп табу;
7. Файл элементтерін өзгерту;
8. Файлға жаңа элемент қосу;
9.Бір файлдың элементтерін екінші бір файлға көшіріп жазу т.б..
REWRITE процедурасы
Дискіден бос орын ашып, жаңа файл жазуға дайындау үшін стандартты
REWRITE процедурасы қолданылады. Процедураның орындалу нәтижесінде жаңа бос
файл ашылып арнаулы файлдык, сілтеме-көрсеткіш файлдың басына барып
орналасады да ( бастапқы 0 нөмірлі элементке), әрі қарай ендірілетін
мәліметтер жаңа файлға сол жерден бастап ендіріледі. Бұл процедураның
көмегімен дискіде бұрыннан бар файл ашылып жазылған жағдайда, ескі
файлдағы мәліметтер өшіріледі де орнына жаңа мәліметтер жазылады, жалпы
жазылуы:
REWRITE(X);
мұндағы: X - дискіге жазылатын файл аты.
Жаңа файлдың ішіне мәліметтер READ және WRITE енгізу-шығару
процедураларының көмегімен толтырылады.
WRITE('Teкст'); файлға жазылатын текст мәлімет
Read(Y) У - файлға жазылатын айнымалы
Ендірілген мәліметтер файлда сақталып жазылып қалуы үшін WRITE
процедурасы қолданылады:
WRITE(X,Y);
Y айнымалысынын, мәні X файлында сақталады
Дискіге файл жазу мысалы: VAR X;Text; Y,N:String;
BEGIN WRITE('файл атын енгіз:'};
Readln(N); {жазылатын файлдын, атын енгізу)
Asaign(X,N); {файлдың атын файлдық айнымалымен байланыстыру]
Rewrite(X); (дискіден X файлын жаңа файл жазу үшін ашу}
Write('Y қатарын енгіз:');
Readln(Y); {Y айнымалысының мәнін енгізу}
Write{X,Y}; {X файлында Y айнымалысынын, мәнін сақтап жазу} Close(X);
Readln END.
RESET процедурасы.
Дискідегі бар файлды ашу үшін стандартты RESET процедурасы қолданылады. Бұл
процедура дискіден файлды оқуға дайындап ашады да, арнаулы файлдык, сілтеме
- керсеткішті файлдың басына апарып орналастырады (бастапқы 0 немірлі
элементке). Егер файлдық айнымалы дискіде жок, файл атын кабылдаса, онда
программа орындалуы тоқтайды, жалпы жазылуы:
RESET(X); X - дискіден ашылатын файл аты.
файлдары айнымалылар мәндерін оқу READ процедурасы қолданылады, жалпы
жазылуы:
READ(X,Y); X ашылған файл, Y - файлдағы айнымалы
Файлдағы айнымалылардың мәндерін экранға шығару үшін WRITE процедурасы
қолданылады, жалпы жазылуы.
WRITE(Y); Y - файлдағы айнымалы
Ашылған файлға қайтадан жаңа мәліметтер READ және WRITE
процедураларының көмегімен жазылады.
Дискідегі файлды оқу мысалы:
VAR X:Text;
Y,N:String;
BEGIN Readln(N), {оқылатын файлдың атын енгізу)
Assign(X,M), {файлдың атын файлдық айнымалымен байланыстыру}
ResetfX); {дискіден X файлын оқу үшін ашу}
Read(X.Y); (X файлындағы Ү айнымалысының мәнін оқу)
Write('Y=',Y); {Ү - айнымалысының мәнін экранға шығару}
Close(X); Readln END.
BLOCKREAD процедурасы.
File-типті файлдардың элементтерін оқу үшін BLOCKREAD процедурасы
қолданылады, жазылуы:
BLOCKREAD(X, Y, B, N);
мұндағы:
X - файлдық айнымалы,
Ү - оқылатын айнымалы,
В - дискіден оқылатын мәліметтер көлемі(байт),
N - процедура орындалып болғандағы өңделген мәліметтер
көлемі(бұл параметрді көрсету міндетті емес).
BLOCKWRITE процедурасы.
File-типті файлдардың енгізілген элементтері дискіге жазылып сақталуын
қамтамасыз ету үшін BLOCKWRITE процедурасы қолданылады. Бұл процедура
параметрлері дәл BLOCKREAD процедурасындай жазылуы;
BLOCKWRITE(X,Y.B,N);
APPEND процедурасы.
Текстік файлдың соңына жаңа мәліметтер ендіру үшін APPEND процедурасы
қолданылады. Процедураның орындалу нәтижесінде дискідегі файл ашылады да,
арнаулы файлдық сілтеме-көрсеткіш файлдың ең соңына барып орналасады (соңғы
нөмірлі элементтен кейін әpi қарай файлдың соңына жаңа мәліметтерді Reset,
Rewrite процедураларының көмегімен ашылған файлдардағыдай ендіреді жазылуы:
APPEND(X);
мұндағы: X - Text-типті файлдық айнымалы
FLUSH процедурасы.
Файлдың ішкі буферін тазалап, соңғы енгізілген мәліметтердің дискіде
сақталуын қамтамасыз ету үшін FLUSH процедурасы колданылады. Бұл
процедураны тек Rewrite немесе Append процедураларының көмегімен ашылған
текстік файлдарда ғана пайдаланады, жазылуы:
FLUSH(X);
мұндағы: X - Техt-типті файлдық айнымалы
TRUNCATE процедурасы.
Файлдың көрсетілген компонентінен бастап соңына дейін eндipy
үшін TRUNCATE процедурасы қолданылады. Бұл процедура типі анықталған
файлдарда қолданылады жазылуы:
TRUNCATE(X);
мұндағы: X - типі анықталған файлдық айнымалы
RENAME процедурасы.
Дискідегі кез-келген ашылмаған файлдың атын өзгерту үшін RENAME
процедурасы қолданылады, жалпы жазылуы:
RENAME(X.New);
мұндагы: X файлдық айнымалы, New - файлдың жаңа аты.
ERASE процедурасы.
Дискідегі кез-келген ашылмаған файлды өшіру үшін ERASE процедурасы
қолданылады, жалпы жазылуы:
ERASE(X); дискіден X файлын өшіру
FILESIZE функциясы.
FILESIZE(X) - X файлының элементтерін, санын аныктау функциясы. Бұл
функцияны да текстік файлдарға қолдануға болмайды.
FILEPOS функциясы.
FILEPOS(X) X файлының орындалайын деп жатқан элементтін реттік нөмірін
анықтау функциясы. Бұл функцияны да текстік файлдарға қолдануға болмайды.
SEEK процедурасы.
SEEK(X,N) - файлдық сілтеме-керсеткішті N нөмірлі элементіне апаратын
процедура. Процедураны қолданғанда файлдық 1-ші элементінің нөмipi әрқашан
0-ге тең екенін ескеру қажет. Бұл процедураны текстік файлдарға қолдануға
болмайды.
EOLN, EOF және IORESULT логикалық функциялары.
EOLN(X) - Егер файлдық сілтеме-керсеткіштік позициясы қатардың соңында
болса, онда функция нәтижесі "Ақиқат" болады. EOF(X) - Егер файлдық сілтеме-
керсеткіштің позициясы X файлының соңында болса, онда функция
нәтижесі"Ақикат" болады.
IORESULT - Егер файл қатесіз дұрыс ашылса. онда функция нәтижесі 0-ге тең
болады.
SEEKEOLN, SEEKEOF логикалык функциялары.
SEEKEOLN(X) - Егер файлдық сілтеме-көрсеткіш қатарда кездесетін барлық бос
орын мен табуляция (ТаЬ) символдарын жіберіп қатардың соңына барып
орналасса, онда нәтиже "Ақиқат болады,
SEEKEOF(X) - Егер файлдық сілтемелер- көрсеткіш тексте кездесетін барлық
бос орын мен табуляция (ТаЬ) символдарын жіберіп файлдың соңына барып
орналасса, онда нәтиже "Ақиқат" болады.
2.3. Файлдармен жұмыс.
Программаның орындалу кезеңінде файл элементтерімен файлға тізбекті
және тікелей ену деп аталатын екі түрлі тәсілмен еніп жұмыс жасауға болады.
Файлға тізбекті ену тәсілінде файл элементтерін шығару, олармен әртүрлі
амалдар орындау, олардың файлға жазылған ретімен жүргізіледі. Бұл тәсіл
текст файлдарда кеңінен қолданылады.
Тікелей ену тәсілінде файл элементтерімен амалдар олардың файлдағы
реттік нөмірі бойынша шақырылып орындалады. Файлдың барлык, элементтерінің
өздерінің файлда тұрған орнына байланысты реттік нөмірлері болады бастапқы
элемент нөмірі 0-ге тең деп есептеледі. Файлға тікелей ену тәсілі типтері
аныкталған және аныкталмаған файлдарда қолданылады.
Турбо-Паскаль да өзге программалау тілдеріндегі сияқты сыртқы жадқа
сақтаулы файлдармен бірқатар іс-әрекеттер орындауға болады. Олар сипаты
жағынан екі топқа бөлінеді:
1. Жедел жадтағы файл компоненттерін (жазуларын) дискіге сақтау;
2. Сыртқы жадтағы файл компоненттерін жедел жадқа жүктеу.
... жалғасы
Кіріспе ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... .3
I тарау Файлдар
1.1.Файлдар ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... .5 1.2.Файлдардың
түрлері ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... .9
II тарау Файлдармен жұмыс
2.1.Файлдардың жалпы
сипатталуы ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... 16
2.2.Файлды өңдеудің негізгі процедуралары мен
функциялары ... ... ... ... ...19
2.3.Файлдармен
жұмыс ... ... ... ... ... ... ... .. ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... 26
III тарау
3.1.Текстік файлдар құру
мысалддары ... ... ... ... ... ... . ... ... ... ... ... ... ... ... ... ... ..
... ... 31
3.2.Типтері анықталған файлдармен жұмыс
мысалдары ... ... ... ... ... ... .. ... ... ... ... 44
3.3.Типтері анықталмаған файлдармен жұмыс
мысалдары ... ... ... ... ... ... .. ... ... ... 50
Қорытынды
Пайданылған әдебиеттер тізімі.
Кіріспе
Турбо Паскаль программалау тілін осы кезге дейін оқып үйренгенде
біздің программамыз өзінің нәтижесін экранға шығаратын, программа жұмысы
кезінде олар компьютердің жедел жадында сақталатын да, есептеулер
біткеннен кейін бұл мәліметтер жойылып кететін. Кейбір күрделі циклдік
программаларда элементтер саны бірталай көп және ондағы мәліметтерді қайта-
қайта өңдеу қажет болады. Оның салдарынан қателер жіберілуі мүмкін. Жұмыс
нәтижесін келешекте пайдалана алу үшін, мысалы, оларды есептеулерге
пайдалану үшін немесе жаңа мәліметтерді алу үшін, оларды есте сақтап қалу
керек, Паскаль бастапқы деректерді ( берілгендерді ) пернелер тақтасынан
емес , өзіміз алдын ала дайындалған сыртқы мәтіндік файлдардан енгізіп
және программа нәтижесін компьютер жадындағы немесе дискетке жазылған
файлда сақтап қойыуға мүмкіндік береді. Қызметтеріне қарай оларды:
магниттік ақпарат тасымалдаушылар немесе жазылатын CD-дискілер деп атайды.
Файл негізінен екі мәселені шешеді:
Берілген мәліметерді және программа нәтижесін жинақтауға және оның мәндерін
кейін басқа программаларда пайдалану үшін сақтауға мүмкіндік береді;
Программаны басқа сыртқы енгізу щығару құралдармен (дисплей,баспа)
байланыстырады.
Файлға тізбекті ену тәсілінде файл элементтерін шығару, олармен әртүрлі
амалдар орындау, олардың файлға жазылған ретімен жүргізіледі. Бұл тәсіл
текст файлдарда кеңінен қолданылады.
Файлды өңдеу үшін көптеген процедуралар мен функциялар қолданылады.
Олар: Assign, Close, Rewrite, Reset,Read, Write, Blockread, Blockwrite,
Append,Flush,Truncate, Rename,Erase, Filesize, Filepos, Seek,Eoln Eof
,Ioresult,Seekeoln, Seekeof т.с.с.
Программаның орындалу кезеңінде файл элементтерімен файлға тізбекті
және тікелей ену деп аталатын екі түрлі тәсілмен еніп жұмыс жасауға болады.
Файлға тізбекті ену тәсілінде файл элементтерін шығару, олармен әртүрлі
амалдар орындау, олардың файлға жазылған ретімен жүргізіледі. Бұл тәсіл
текст файлдарда кеңінен қолданылады. Турбо-Паскаль да өзге программалау
тілдеріндегі сияқты сыртқы жадқа сақтаулы файлдармен бірқатар іс-әрекеттер
орындауға болады.
I тарау Файлдар
1.1.Файлдар туралы жалпы түсінік
Файл- берілгендердің іргелі құрылымы (структура) Компьютерді
программалық ұйымдастыру, олардың сыртқы құрылғылармен байланысы файлдық
құрылымға негізделген.
File (ағылшын тілінен аударылғанда) бума, іс қағаздар жинағы, сонымен
қатар акпаратты сақтау деген мағынаны білдіреді .
Файлдар деп жад құрылғыларына( дискеттер, винчестер, экранда )
белгілі бір атпен жазып қойылатын мәліметтер жиыны. Пернелер тақтасынан
енгізетін немесе экранға шығаратын мәліметтер стандартты текстік файлдар
болады, ал винчестер немесе дискеттерде сақталатын мәліметтер сыртқы
файлдар деп аталады. Паскаль программалау тілі тұрғысынан қарастырғанда
Файл – бір типті элементтер тізбегінен тұратын берілгендердің атаулы
құрылымы. Turbo Pascal-да файлдардың мынандай ерекшіліктері бар:
оның белгілі бір аты болады, бұл бір мезгілде бірнеше файлдармен жұмыс
істеуге мүмкіндік береді;
2. оның компоненттері бір типті болады, мысалы жазулардан немесе жолдық
қатарлардан тұратын файлдар жасауға болады;
- бір файлдың ішінде екінші файл жасауға болмайды, файлдардан тұратын
файл жасауға болмайды.
3. файлды жасаған кезде оның бастапқы көлемі берілмейді, ол жазылатын
дискінің сыйымдылығымен анықталады.
Шартты түрде файлды жолақ (лента) түрінде қарастыруға болады, оның басы
бар, ал соңы нақтыланбаған( не фиксируется) . Файл компоненттері осы
жолаққа біртіндеп бірінен кейін бірі жазылады
Мұнда м.о – маркер( курсор) орыны , файлдың жұмысшы позициясын (
терезе) көрсетеді ; м.с. - маркер файдың соңында ; - #10, #13- файл
элементтерінің соңынан автоматты түрде қойылатын арнаулы кодтар . Мұндай
файлдарды біртіндеп қатынау файлы деп атайды.
Turbo Pascal-да файлдарды екі негізгі белгісі бойынша топтастыруға болады:
а) файлдық типі бойынша (оның логикалық құрылымына);
б) файл элементтеріне катынау тәсілі бойынша.
Типтері бойынша файлдар шартты түрде үш түрге бөлінеді:
Мәтіндік файл; типтік файл; типтік емес файл.
Біз көбінесе мәтіндік және типтік файлдармен жұмыс істейміз.
Қатынау тәсілі бойынша файлдар келесідей бөлінеді:
Біртіндеп ( кезекпен ) қатынау файлдары. Олардың элементтері бос
орындармен айырылған және ұзындықтары әртүрлі болуы мүмкін. Мұндай
файлдарда оның ортасында немесе соңында тұрған мәліметті оқу үшін, оның
алдындағы компоненттерінің барлығын оқуға тура келеді.
-Тікелей қатынау файлдары. Мұнда арнайы процедуралар және функцияларды
пайдалана отырып, мәліметтерді, олардың файлдағы орнына тәуелсіз, оқуға
немесе жазуға болады,
Турбо Паскальда біртіндеп қатынау файлдарын текстік, (не последовательные
файлы называют) мәтіндік ( компоненттері ұзындықтары қалауымызша болатын
жолдарға бөлінген символдар тізбегінен тұрады), ал тікелей қатынау файлын
-типтік деп атайды..
Программа бұрын бар файлды өңдей алады немесе жаңадан файл құра алады. Екі
жағдайдада файлдармен жұмыс үш пункттен тұрады:
1) файлды ашу; 2) оқу немесе жазу ; 3) файлды жабу.
Программаның кезкелген айнымалысы сияқты файл программаның айнымалыларды
сиппаттау бөлімінде хабарлануы тиіс. Файлды хабарлағанда оның типі
көрсетіледі.
1.2.Файлдардың түрлері
Осыған дейін ,біз мәліметтерді пернетақтадан енгізіп, оларды экранға
шығардық, программа жұмысы кезінде олар компьютердің оперативті жадында
сақталатын да,есептеулер біткеннен кейін бұл мәліметтер жоғалып
кететін.Жұмыс нәтижесін келешекте пайдалана алу үшін, мысалы, оларды
есептеулерге пайдалану үшін немесе жаңа мәліметтерді алу үшін, оларды есте
сақтап қалу керек. Ондай тәсілдердің бірі мынадай: нәтиже экранға шыққан
соң қолға қаламсап және бір бет қағаз алып, бұл мәліметтерді жазып алу.
Дербес компьютерлер дәуірінің басында оларды үй тапсырмасы деп атаған
да, шын мәнінде солай болған.Қазіргі кездегі дербес компьютерлердің барлығы
ақпаратты сақтауға арналған арнайы құрылғылармен жабдықталған.
Мәтіндік файлға мәліметтер жазу.
Бір өлшемді массив
Ең қарапайым файл типі мәтіндік файл болып табылады. Бұл файлдағы
мәліметтер типтік және типтік емес файлдардағыдай машиналық кодта емес,
сан, әріп және басқа пернетақта символдары түрінде (ASCII-кодында)
беріледі. Сондықтан мұндай файлдар мазмұны оңай қаралады,оңай өзгереді және
оларды кез-келген қарапайым мәтіндік редактордың, соның ішінде Borland
Pascal ортасының да көмегімен өзгертуге болады. Өздеріңіз білетіндей,
мәтінді теру кезінде жаңа жолды енгізу үшін Enter пернесін басу керек,
осы кезде арнайы код генерацияланады-ол жол соңы коды, ал файлды сыртқы
сақтау құрылғысына жазған кезде де арнайы код генерацияланады-ол файл соңы
коды. Мәтіндік файлды оқығанда бұл кодтар көрінбейді.
Келесі есепті шешіп көрейік: Пернетақтадан бірнеше сандар енгізіп,
оларды myfile.in атты мәтіндік типтегі файлға жазу керек.
Есепті кезеңдерге бөлейік:
1) Пернетақтадан мәліметерді енгізу.
2) Оларды myfile.in атты файлға жазу керек.
Бірінші кезеңді орындау үшін:
- пернетақтадан енгізілетін сандардың мөлшерін (массив өлшемін)
көрсету керек.
- Сан мөлшерін білген соң , параметрлі циклді қолдану арқылы массив
элементтеріне осы сандардың нақты мәндерін меншіктейміз.
Осы әрекеттерді орындау үшін қолданылатын айнымалыларды сипаттаймыз.
Айталық санымыз 100-ден көп емес және олар басқа да процедураларда
қолданылатындықтан, оларды ауқымды айнымалыларды баяндау блогында
сипаттаймыз.
Program Misal_F1;
Var
San: array [1..100] of integer;
I, sanMolcheri: integer;
Мәліметтерді енгізу процедурасы келесі түрде болады:
procedura init; begin readln (sanmolcheri):
for I:=1 to sanmolcheri do
begin
write (“san[“,I,”]=’);
readln (san[1]);
end;
Мәліметтерді өңдеу процедурасы әзірге бізге қажет емес ,сондықтан ол
қызмет атқарамай-ақ қойсын.
procedura work;
begin
end;
Енді екінші кезеңді қарастырайық, яғни мәліметтерді “myfile.in”атты
мәтіндік типтегі файлға жазу керек.
Алдымен өз файлымызды байланыстыратын, айнымалының атауын беру
керек.Айталық, ол айнымалының атауы FileOut болсын, содан кейін біз
мәтіндік файл ретінде сипаттауымыз керек. Бұл айнымалыны шығару
процедурасында пайдаланылатын болғандықтан, оны жергілікті айнымалы ретінде
сипаттаймыз:
var
fileOut:text;
Одан кейін біз программаға, мәтіндік типтегі FileOut атты
айнымалының, біздің mayfile.in атты нақты файлымызды белгілейтінін
көрсетуіміз керек. Ол үшін assign(NameVar,File) процедурасы қолданылады.
NameVar-бұл файлды белгілеу үшін берілген айнымалы аты, біздің жағдайда
NameVar-дың орнына FileOut сөзін жазасыз. NameFile-бұл біз жұмыс істейтін
файлдың аты, біздің жағдайда mayfile.in.
Файл аты мен оның кеңейтілуінен басқа орналасқан орнына қарай
сипатталатыны да белгілі. Мысалы, “c:\bp\bin\myfile.in”. Ал егер толық аты
берілмеген жағдайда,үнсіз келісім бойынша сіздің программаңыз орналасқан
ағымдағы каталог қолданылады.
Енді сіз берілген файлды ашып , оған мәліметтер жазылатындығын
көрсетуіңіз керек.Ол үшін rewrite (NameVar) процедурасы қолданылады.
Мұндағы, NameVar-бұл файлды белгілеу үшін берілген айнымалы аты, біздің
жағдайда NameVar-дың орнына FileOut атауы жазылады. Rewrite (NameVar)
процедурасы-файлды жазу үшін ашады және көрсеткішті файлдың басына
орналастырады.
Енді мәліметтерді файлға жазуға бәрі дайын.Ол үшін бұрыннан белгілі
Write ( ) және Writeln( ) процедураларын қолданамыз. Жазулар экранға емес
файлға жазылуы үшін, мәліметтерді шығару бағытын көрсетеміз. Яғни
,жақшаның ішіндегі мәліметтерді жазатын айнымалы атауының алдына, бізді
файлмен байланыстыратын assign( ) процедурасындағы айнымалы атауын
көрсетеміз. Айталық, берілгендерді шығыс файлына бір жолға жазу керек
болсын, бұл жағдайда бірінші мән ол енгізілетін сандардың мөлшері болады.
Жаңа жолға көшу болмайтындықтан, Write ( ) процедурасын қолданып,
бастапқыда файлға SanMolcheri айнымалысының мәнін жазамыз да, содан кейін
параметрлі циклді пайдаланып енгізу процедурасында енгізілген сандарды
жазамыз. Барлық мәліметтер файлға жазылып болған соң, файлды жабу керек .
Ол Close ( ) процедурасының көмегімен орындалады.
Close(NameVar) процедурасы- файлдың соңына, файл соңы белгісін жазып,
оны жабады. Егер файл Close( ) процедурасымен жабылмаған болса, онда
мәліметтер сақталынбайды.
Мәліметтерді файлға жазу процедурасы қандай болатынын қарастырып
көрелік:
Procedura exi;
Var
FileOut : text;
Begin
Assign (FileOut,’mayFile.in’);
Rewrite (FileOut);
Write(FileOut,SanMolcheri);
For I:=1 to SanMolcheri do
Write (FileOut,San[i]);
Close (FileOut);
End;
Негізгі программаның мәтіні өзгеріссіз қалады
begin
init;
work;
exi;
end.
Осы программаны Misal_F1 атымен дискіге жазып, оны орындауға
жіберіңіз. Программа жұмысын аяқтағаннан кейін, ВР редакторының көмегімен
біздің программамыз құрған ‘mayFile.in’ файлын ашып, оның мазмұнын
көріңіз. Өкінішке орай сандар файлда бос орынсыз тіркесіп жазылған болып
шығады. Мұндай жазбадан қандай сандар жазылғанын анықтау қиындық тудырады.
Бұл жағдайды қалай түзетуге болады?
Ол үшін, сандары бір бірінен дәл ажыратудың екі мүмкіндігі бар:
а) әрбір мәнді бос орын (‘ ’) белгісі арқылы бөліп жазу
b) әрбір мәнді жаңа жолға жазу (баған бойынша).
Бірінші жағдайда енгізілетін айнымалы атауынан кейін бос орын (‘’)
белгісін қоямыз:
write(FileOut,SanMolcheri, ‘’);
for i:=1 to SanMolcheri do
write(FileOyt,San[i], ‘’);
Екінші жағдай үшін,writeln ( ) процедурасын қолданамыз:
Writeln (FileOut,SanMolcheri);
for i:=1 to SanMolcheri);
writeln(FileOut,San[i]);
Типті файл-барлық элементтері бір типті мәліметтер болып келетін файл
түрі.Типті файл элементтері файлдық типтен басқа кез-келген тип бола алады.
Әр элементті файлға жазу үшін, мәліметтердің типіне
байланысты,міндетті белгіленген мөлшерде орын бөлінеді.Типті файлдарды
сипаттау бөлімінде ашу үшін, мәтіндік файлды сипаттағандай, файл атауын
беру керек және берілген файлдағы мәліметтерді сипаттайтын тип жазылады.
файл атауы:File of мәліметтер типі
Біздің жағдайымызда:
FileOut:File of integer;
Бұл жазу, берілген файлдағы мәліметтер-32768-ден 32767 аралығында
жататын бүтін сандар екенін көрсетеді.
Сонымен қатар, типті файлдармен жұмыс істегенде де, assign( )
–процедурасының көмегімен нақтылы файл аты мен байланыстыратын атауды
көрсетеміз.
Assign(файл атауы¸файлдың нақты атауы)
Біздің жағдайымызда:
Assign (FileOut,’may.dat’);
Типті файлдармен жұмыс жасағанда мәтіндік файлдардағы секілді оларды
жазуға және оқуға ашуға болады. Ол үшін стандартты функциялар қолданады:
Rewrite(файл атауы) – процедурасын файлды жазуға ашады және
курсорды файлдың басына орналастырады.
Типті файлдарға мәліметерді жазу write( ) процедурасы арқылы жүзеге
асырылады.Ол мәтіндік файлдарға write( ) процедурасына ұқсас .Алайда write(
) процедурасын типті файлдарда қолдануында біршама өзгешелік бар.
Әрекетті орындау кезінде көрсеткіш келесі жазу блогына көшеді. Типті
файлдарда writeln( ) процедурасын қолдану қателік көрсетеді.
Типті файлдарға writeln( ) процедурасын қолдануға болмайды.
Типті файлдармен жұмыс аяқталған соң Close(файл атауы)-процедурасы
көмегімен файл жабылады.
Reset(файл атауы)-процедурасы файлды оқуға ашады және көрсеткішті
файлдың басына орналастырады.
Типті файлдан мәліметтерді оқу үшін read( ) процедурасын қолданады.
Берілген процедураның жұмысы кезінде, блоктан мәліметті оқыған соң,
көрсеткіш автоматты түрде келесі жазбаға ауысады. Егер көрсеткіш соңғы
жазбаның соңынан тұрса , онда программа орындалуында қателік болады.
Бұл қиындықтан шығу үшін FileSize( ) функциясын қолдануға болады.
FileSize(файл атауы ):longint-функциясы файлдағы компоненттер санын
анықтайды. Яғни, бізге файлдағы барлық мәліметтерді оқу керек болса, оқу
процедурасын FileSize ( ) рет орындауымыз керек.
II Файлдармен жұмыс
2.1.Файлдардың жалпы сипатталуы
Программада файлдар FILE OF қызметші сөздері арқылы сипатталады. Turbo
Pascal программаларында файлдар идентификатормен белгіленетін арнайы
файлдық айнымалының көмегімен ашылады. Файлдық айнымалылар типі файлдың
құрамындағы элементтер арқылы анықталады.
а) бірден айнымалылар бөлімінде:
VAR файлдық айнымалы : файл элементтерінің типтері;.
ә) типтер бөлімінде:
TYPE типі=файл элементтерінің типтері;
VAR файлдық айнымалы: типі;
Файлдарды сипаттау мысалдары:
TYPE A=File Of Char;
VAR X:А; {символдардан түратын Х файлы FC-типті);
Y:File Of Real; {нақты сандардан тұратын Ү файлдык, айнымалысы}
TYPE Dosye=RECORD
A: String; B: lnteger; C: Char; D: Byte; END;
VAR X; Dosye; {Dosye-типті X жазуы)
Y: File Of Dosye {X жазуының элементтерінен тұратын Y файлдық
айнымалысы)
1. Әртүрлі символдардан құралған қатарлар тізбегінен тұратын
файлдарды текстік файлдар деп атайды, олардың файлдык. айнымалысы VAR
бөлімінде TEXT стандартты типімен сипатталады, мысалы.
VAR X: Text; Y: String;
Текстік файлдар әртүрлі текстік немесе сандык шамалардан тұратын
мәліметтерді сақтау үшін қолданылады. Олардың құрамындағы элементтер саны
мен ұзындықтары әртүрлі болып келеді. Әр қатардың соңы арнаулы қатардың
соңын білдіретін EOLN(End of Line), ал бүкіл текстің соңы файлдың соңын
білдіретін ЕOF(Enci Of File) белгілерімен аяқталады.
2. Құрамындағы элементтер типтері алдын-ала типтер бөлімінде
сипатталатын файлдарды типтері анықталған файлдар тобына жатқызуға
болады(немесе типтелген файлдар тобына), мысалы оларға жазулардан тұратын
файлдарды жатқызуға болады:
TYPE Karta=RECORD
A,B: lnteger;
C: Real;
D: String;
End;
VAR X: File Of Karta;
Y: Array [1..10] Of Karta;
Типтері анықталған файлдарды көбінесе деректер қорын жасайтын
программаларда қолданылады. Егер текстік файлдардың құрамын бірыңғай
символдардың жиынтығы болса, онда типтелген файлдардың құрамын реттелген
белгілі бір мәліметтердің жиынтығы деп қарастыруға болады.
3. Құрамындағы элементтер типтері көрсетілмей, тек қана файлдық
айнымалысы ғана File-типті болып сипатталатын файлдар типтері
анықталмаған файлдар тобына (немесе типтелмеген файлдар тобына ) жатады.
сипатталу мысалы:
VAR X:File; Y :integer;
Типтері анықталмаған файлдарды символдар мен байттардың жиынтығы
ретінде қарастыруға болады. Бұл файлдардың типтерінің жоқтығы оларды кез-
келген басқа типті файлдармен сәйкестендіріп байланыстыруға және дискі мен
жад арасындағы мәлімет ауыстыру жылдамдығын арттыруға мүмкіндік береді.
2.2. Файлды өңдеудің негізгі процедуралары мен функциялары.
ASSIGN және СlOSЕ процедуралары.
Файлмен жұмыс алдында оның атын файлды айнымалымен байланыстырып алу үшін
ASSIGN процедурасы қолданылады:
Assіgn(X,N);
мұндағы: X файлдық айнымалы, N - ашылатын файлдың аты.
Жоғарыдағы процедураның орындалу нәтижесінде компьютер жұмыс істеу үшін
ашылатын файлдың атын файлдық айнымалыға беріп (Х:=N), әрі қарай кездесетін
амалдарда ашылған файлдың атын X деп алып қатысады. Программада ашылған
файлда қолданған файлдық айнымалыны екінші бір файлды ашуға Assign
процедурасында қолдану үшін міндетті түрде бірінші ашқан файлды жабу керек
немесе екінші ашылатын файлдың файлдық айнымалысын басқа идентификатормен
белгілеу керек.
Файлды жабу үшін CLOSE процедурасы қолданылады.
CLOSE(X);
мұндағы: X – файлдық айнымалы
ASSIGN және CLOSE процедураларын қолдану мысалдары.
а) бірінші ашылған файлды жауып, екінші файлдың атын қайтадан X
файлдық айнымалысына беру: Assign(X,N); (Х-ке ашылатын N
файлының атын беру)
Ciose(X); {X файлын жабу}
Assign(X.M); аХ-ке келесі ашылатын М файлының атын беру
ә) бірінші ашылған файлды жаппай-ақ екінші файлдың атын басқа
идентификатормен белгіленген файлдык айнымалыға беру:
Assign(X,N); Х-ке ашылатын N файлының атын беру
Assign(X1 ,М); Х1 -кe келесі ашылатын М файлының атын беру
Close(X);
ASSIGN процедурасының көмегімен файлдың атын файлдык, айнымалымен
байланыстырғаннан кейін, олармен көптеген амалдар жүргізуге болады,
мысалы:
1. Дискіге жаңа файл жазу;
2. Дискіде бар файлдың мәліметтерін өшіріп, басқа мәліметтер жазу;
3. Файлды дискіден оқу;
4. Файлдың атын өзгерту;
5. Файлды дискіден өшіру;
6. Файлдан берілген элементті іздеп табу;
7. Файл элементтерін өзгерту;
8. Файлға жаңа элемент қосу;
9.Бір файлдың элементтерін екінші бір файлға көшіріп жазу т.б..
REWRITE процедурасы
Дискіден бос орын ашып, жаңа файл жазуға дайындау үшін стандартты
REWRITE процедурасы қолданылады. Процедураның орындалу нәтижесінде жаңа бос
файл ашылып арнаулы файлдык, сілтеме-көрсеткіш файлдың басына барып
орналасады да ( бастапқы 0 нөмірлі элементке), әрі қарай ендірілетін
мәліметтер жаңа файлға сол жерден бастап ендіріледі. Бұл процедураның
көмегімен дискіде бұрыннан бар файл ашылып жазылған жағдайда, ескі
файлдағы мәліметтер өшіріледі де орнына жаңа мәліметтер жазылады, жалпы
жазылуы:
REWRITE(X);
мұндағы: X - дискіге жазылатын файл аты.
Жаңа файлдың ішіне мәліметтер READ және WRITE енгізу-шығару
процедураларының көмегімен толтырылады.
WRITE('Teкст'); файлға жазылатын текст мәлімет
Read(Y) У - файлға жазылатын айнымалы
Ендірілген мәліметтер файлда сақталып жазылып қалуы үшін WRITE
процедурасы қолданылады:
WRITE(X,Y);
Y айнымалысынын, мәні X файлында сақталады
Дискіге файл жазу мысалы: VAR X;Text; Y,N:String;
BEGIN WRITE('файл атын енгіз:'};
Readln(N); {жазылатын файлдын, атын енгізу)
Asaign(X,N); {файлдың атын файлдық айнымалымен байланыстыру]
Rewrite(X); (дискіден X файлын жаңа файл жазу үшін ашу}
Write('Y қатарын енгіз:');
Readln(Y); {Y айнымалысының мәнін енгізу}
Write{X,Y}; {X файлында Y айнымалысынын, мәнін сақтап жазу} Close(X);
Readln END.
RESET процедурасы.
Дискідегі бар файлды ашу үшін стандартты RESET процедурасы қолданылады. Бұл
процедура дискіден файлды оқуға дайындап ашады да, арнаулы файлдык, сілтеме
- керсеткішті файлдың басына апарып орналастырады (бастапқы 0 немірлі
элементке). Егер файлдық айнымалы дискіде жок, файл атын кабылдаса, онда
программа орындалуы тоқтайды, жалпы жазылуы:
RESET(X); X - дискіден ашылатын файл аты.
файлдары айнымалылар мәндерін оқу READ процедурасы қолданылады, жалпы
жазылуы:
READ(X,Y); X ашылған файл, Y - файлдағы айнымалы
Файлдағы айнымалылардың мәндерін экранға шығару үшін WRITE процедурасы
қолданылады, жалпы жазылуы.
WRITE(Y); Y - файлдағы айнымалы
Ашылған файлға қайтадан жаңа мәліметтер READ және WRITE
процедураларының көмегімен жазылады.
Дискідегі файлды оқу мысалы:
VAR X:Text;
Y,N:String;
BEGIN Readln(N), {оқылатын файлдың атын енгізу)
Assign(X,M), {файлдың атын файлдық айнымалымен байланыстыру}
ResetfX); {дискіден X файлын оқу үшін ашу}
Read(X.Y); (X файлындағы Ү айнымалысының мәнін оқу)
Write('Y=',Y); {Ү - айнымалысының мәнін экранға шығару}
Close(X); Readln END.
BLOCKREAD процедурасы.
File-типті файлдардың элементтерін оқу үшін BLOCKREAD процедурасы
қолданылады, жазылуы:
BLOCKREAD(X, Y, B, N);
мұндағы:
X - файлдық айнымалы,
Ү - оқылатын айнымалы,
В - дискіден оқылатын мәліметтер көлемі(байт),
N - процедура орындалып болғандағы өңделген мәліметтер
көлемі(бұл параметрді көрсету міндетті емес).
BLOCKWRITE процедурасы.
File-типті файлдардың енгізілген элементтері дискіге жазылып сақталуын
қамтамасыз ету үшін BLOCKWRITE процедурасы қолданылады. Бұл процедура
параметрлері дәл BLOCKREAD процедурасындай жазылуы;
BLOCKWRITE(X,Y.B,N);
APPEND процедурасы.
Текстік файлдың соңына жаңа мәліметтер ендіру үшін APPEND процедурасы
қолданылады. Процедураның орындалу нәтижесінде дискідегі файл ашылады да,
арнаулы файлдық сілтеме-көрсеткіш файлдың ең соңына барып орналасады (соңғы
нөмірлі элементтен кейін әpi қарай файлдың соңына жаңа мәліметтерді Reset,
Rewrite процедураларының көмегімен ашылған файлдардағыдай ендіреді жазылуы:
APPEND(X);
мұндағы: X - Text-типті файлдық айнымалы
FLUSH процедурасы.
Файлдың ішкі буферін тазалап, соңғы енгізілген мәліметтердің дискіде
сақталуын қамтамасыз ету үшін FLUSH процедурасы колданылады. Бұл
процедураны тек Rewrite немесе Append процедураларының көмегімен ашылған
текстік файлдарда ғана пайдаланады, жазылуы:
FLUSH(X);
мұндағы: X - Техt-типті файлдық айнымалы
TRUNCATE процедурасы.
Файлдың көрсетілген компонентінен бастап соңына дейін eндipy
үшін TRUNCATE процедурасы қолданылады. Бұл процедура типі анықталған
файлдарда қолданылады жазылуы:
TRUNCATE(X);
мұндағы: X - типі анықталған файлдық айнымалы
RENAME процедурасы.
Дискідегі кез-келген ашылмаған файлдың атын өзгерту үшін RENAME
процедурасы қолданылады, жалпы жазылуы:
RENAME(X.New);
мұндагы: X файлдық айнымалы, New - файлдың жаңа аты.
ERASE процедурасы.
Дискідегі кез-келген ашылмаған файлды өшіру үшін ERASE процедурасы
қолданылады, жалпы жазылуы:
ERASE(X); дискіден X файлын өшіру
FILESIZE функциясы.
FILESIZE(X) - X файлының элементтерін, санын аныктау функциясы. Бұл
функцияны да текстік файлдарға қолдануға болмайды.
FILEPOS функциясы.
FILEPOS(X) X файлының орындалайын деп жатқан элементтін реттік нөмірін
анықтау функциясы. Бұл функцияны да текстік файлдарға қолдануға болмайды.
SEEK процедурасы.
SEEK(X,N) - файлдық сілтеме-керсеткішті N нөмірлі элементіне апаратын
процедура. Процедураны қолданғанда файлдық 1-ші элементінің нөмipi әрқашан
0-ге тең екенін ескеру қажет. Бұл процедураны текстік файлдарға қолдануға
болмайды.
EOLN, EOF және IORESULT логикалық функциялары.
EOLN(X) - Егер файлдық сілтеме-керсеткіштік позициясы қатардың соңында
болса, онда функция нәтижесі "Ақиқат" болады. EOF(X) - Егер файлдық сілтеме-
керсеткіштің позициясы X файлының соңында болса, онда функция
нәтижесі"Ақикат" болады.
IORESULT - Егер файл қатесіз дұрыс ашылса. онда функция нәтижесі 0-ге тең
болады.
SEEKEOLN, SEEKEOF логикалык функциялары.
SEEKEOLN(X) - Егер файлдық сілтеме-көрсеткіш қатарда кездесетін барлық бос
орын мен табуляция (ТаЬ) символдарын жіберіп қатардың соңына барып
орналасса, онда нәтиже "Ақиқат болады,
SEEKEOF(X) - Егер файлдық сілтемелер- көрсеткіш тексте кездесетін барлық
бос орын мен табуляция (ТаЬ) символдарын жіберіп файлдың соңына барып
орналасса, онда нәтиже "Ақиқат" болады.
2.3. Файлдармен жұмыс.
Программаның орындалу кезеңінде файл элементтерімен файлға тізбекті
және тікелей ену деп аталатын екі түрлі тәсілмен еніп жұмыс жасауға болады.
Файлға тізбекті ену тәсілінде файл элементтерін шығару, олармен әртүрлі
амалдар орындау, олардың файлға жазылған ретімен жүргізіледі. Бұл тәсіл
текст файлдарда кеңінен қолданылады.
Тікелей ену тәсілінде файл элементтерімен амалдар олардың файлдағы
реттік нөмірі бойынша шақырылып орындалады. Файлдың барлык, элементтерінің
өздерінің файлда тұрған орнына байланысты реттік нөмірлері болады бастапқы
элемент нөмірі 0-ге тең деп есептеледі. Файлға тікелей ену тәсілі типтері
аныкталған және аныкталмаған файлдарда қолданылады.
Турбо-Паскаль да өзге программалау тілдеріндегі сияқты сыртқы жадқа
сақтаулы файлдармен бірқатар іс-әрекеттер орындауға болады. Олар сипаты
жағынан екі топқа бөлінеді:
1. Жедел жадтағы файл компоненттерін (жазуларын) дискіге сақтау;
2. Сыртқы жадтағы файл компоненттерін жедел жадқа жүктеу.
... жалғасы
Ұқсас жұмыстар
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz