Читайте также: |
|
Типтелген файлдың кез келген компонентінің ұзындығы тұрақты болады, сондықтан файлдың әрбір компонентіне тікелей қатынас жасауға болады (яғни компонентке оның реттік нөмірі бойынша қатынау). Енгізу-шығару процедураларына бірінші рет қатынағанда файлдың көрсеткіші файлдың басында болады және ол нөмірі 0-ге тең бірінші компонентке көрсетеді. әрбір оқыған немесе жазған сайын көрсеткіш файлдың келесі компонентіне жылжиды. Енгізу-шығару тізімдеріндегі айнымалылар файлдың компоненттері тәрізді типтен тұрады. Егер бұл айнымалылар тізімде бірнешеу болса, көрсеткіш дискілік файлдар мен айнымалылар арасында мәліметтер алмастырудың әр операциясынан кейін жылжиды.
READ процедурасы. Типтелген файлдың кезекті компоненттерін оқуды қамтамасыз етеді. Қатынау форматы:
READ (<ф.айн.>, <енгізу тізбегі>),
мұндағы <енгізу тізбегі> - енгізілетін айнымалылардың тізбегі, олардың типтері файл компоненттерінің типтерімен бірдей болу керек.
WRITE процедурасы. Типтелген файлға міліметтер жазу үшін қолданылады. Қатынау форматы:
WRITE (<ф.айн.>, <енгізу тізбегі>);
мұндағы < енгізу тізбегі > - шығарылатын өрнектердің тізбегі, олардың типтері файл компоненттерінің типтерімен бірдей болу керек.
SEEK процедурасы файлдың қажетті компонентіне көрсеткішті жылжытады:
SEEK (<ф.айн.>, <N компон.>);
Файлдың бірінші компонентінің нөмірі 0-ге тең.
FILESIZE функциясы файл компоненттерінің санын анықтайды:
FILESIZE (<ф.айн.>);
Типтелген файлдың соңына көрсеткішті орнату үшін келесі түрде жазуға болады:
SEEK (<ф.айн.>, FILESIZE (<ф. айн.>));
FILEPOS функциясы кезекті енгізу-шығару процедураларымен өңделетін файл компонентінің реттелген нөмірін анықтайды:
FILEPOS (<ф.айн.>);
Негізгі әдебиет: 1 [119-139]
Қосымша әдебиет: 5 [16-19], 6 [87-95], 7[359-369].
Бақылау сұрақтары
1. Типтелген файлдың компоненттері қандай мәннен бастап нөмірленеді?
2. Қандай процедура арқылы типтелген файлдың қажетті компонентіне файлдың көрсеткішін жылжытуға болады?
3. Типтелген файлдың компоненттерінің типтері қандай болуы мүмкін?
4. Filepos қандай нәтижені қайтарады?
5. ASSIGN процедурасының параметрлері қандай?
11– дәріс. Мәтіндік және типтелмеген файлдар
Мәтіндік файлдар мәтіндік ақпаратты сақтау үшін қолданылады. Мәтіндік файлдың компоненттерінің ұзындығы айнымалы болуы мүмкін (Ұзындығы айнымалы болатын қатарлардың жиынтығы мәтіндік файл болып табылады). Осындай файлдың әрбір қатарын қарастырғанда файлдың тек бірінші қатарынан бастап тізбектеп өңдеуге болады.
Мәтіндік файлды құру кезінде әр жазбадан (жолдан) кейін EOLN арнайы белгісі, ал барлық файлдың соңына EOF белгісі қойылады. Мәтіндік файлдарды құру барысында келесі ASCII кодтары қолданылады:
EOLN – #13 (CR) және #10 (LF);
EOF – # 26
Жазбаларға қатынау үшін READ, READLN, WRITE, WRITELN процедуралары қолданылады.
READ процедурасы. Сандарды, жолдарды, символдарды енгізу үшін қолданылады:
READ (<ф.айн.>, <енгізу тізбегі>);
Мұнда < енгізу тізбегі > - CHAR, STRING типті айнымалылар және бүтін немесе нақты типті айнымалылардан тұратын тізбек.
CHAR типті айнымалыларды енгізгенде файлдан бір символдың оқуы орындалады және оқылған мәнді айнымалы меншіктейді. Егер оқу процедурасын орындау алдында файлдың көрсеткіші кезекті жолдың соңына жетсе, онда (#13 ACCII коды) оқудың нәтижесі болып саналады және файлдың соңы кездессе, онда EOF (# 26коды) символы оқудың нәтижесі болып саналады. Пернетақтадан енгізгенде CR символы Enter пернесін басу арқылы, ал EOF символы CTRL және Z пернелерін біруақытта басқан кезде енгізіледі.
STRING типті айнымалыларды енгізу кезінде жолдарда орналасқан және процедурамен саналған символдардың саны қатарлардың ұзындығына тең болады, егер CR немесе EOF символдары бұрын кездеспеген болса. Бұл жағдайда CR және EOF символдары қатарларға орналаспайды. Егер мәліметтердің енгізу ағынында символдар саны қатарлардың максималды ұзындығынан артық болса, онда «артық» символдар қатардың аяғына дейін алынып тасталады, ал READ процедурасына жаңадан қатынау бос қатарды қайтарады. Демек, READ процедурасы қатарлар тізбегін оқи алмайды: бірінші қатарды оқуға болады, ал қалғандары бос болып қалады.Қатарлар тізбегін енгізу үшін READLN процедурасын қолдану қажет.
Сандық айнымалыларды енгізу үшін READ процедурасы алдымен енгізу ағынында келесі ереже бойынша ішкі қатарды бөліп алады: бірінші мәні бар символ кездескенге дейін оның алдындағы бос орындар, табуляция символдары және EOLN – қатарлардың соңының маркерлері қарастырылмайды, ал мәні бар символ кездескеннен кейін аталған символдар және EOF символы ішкі қатардың соңы болып саналады. Осылай бөлініп алынған ішкі қатар содан кейін сәйкес типті сандық тұрақтының символдық бейнеленуі ретінде қарастырылады және ішкі бейнеленуіне түрлендіріледі, ал осының нәтижесінде шыққан мән айнымалыға меншіктеледі. Егер ішкі қатарда сандық тұрақтыларды бейнелеудің қажетті форматы бұзылса, онда енгізу-шығару қатесі шығады.
Кезекті бүтін немесе нақты санды енгізген кезде READ процедурасы қатарлар соңының маркерлерін «аттап» өтеді, яғни файл сандардың мәтіндік бейнеленуінен тұратын бір ұзын қатарретінде қарастырылады.
READLN процедурасы. Символдарды, қатарларды, сандарды енгізгенде READLN процедурасын пайдалануға болады. Бұл процедура READ процедурасын ұқсас, тек қана мынадай айырмашылығы бар: соңғы айнымалы оқылғаннан кейін EOLN маркерге дейін қатардың қалған бөлігі қарастырылмайды, сондықтан READLN (немесе READ) процедурасына келесі қатынау жаңа жолдың бірінші символынан басталады.
WRITE процедурасы. Ақпаратты мәтіндік файлға жазу үшін немесе логикалық құрылғыға шығару үшін келесі түрде шақырылады:
WRITE (<ф.айн.>, <шығару тізбегі>) немесе WRITE (<шығару тізбегі>), мұнда <шығару тізбегі> - CHAR, STRING, BOOLEAN бүтін немесе нақты типті өрнектерден тұратын тізбек.
<ф.айн.> файлдық айнымалы TEXT типті айнымалы ретінде баяндалуы қажет және ASSIGN процедурасы арқылы файлдың атымен немесе логикалық құрылғымен байланысуы қажет. Шығару тізбегінің кез келген элементі келесі түрде жазылуы мүмкін:
P[: l [: d] ]
Мұнда P – шығарылатын өрнек.
l – P өрнектің символдық бейнеленуі жазылатын өрістің минималды ұзындығы;
d – нақты сандық бөлшек бөлігіндегі цифрлардың саны.
Егер шығарылатын өрнектің l шығару өрісінің ұзындығы көрсетілмесе, онда шығарылатын өрнектер бөлшектер арқылы бөлінбейді.
Логикалық өрнектер шығарылғанда олардың мәніне байланысты TRUE немесе FALSE қатарлары шығарылады.
WRITELN процедурасы. WRITE процедурасына ұқсас, тек мынадай ерекшелік бар: шығарылатын символдар қатары CR және LF кодтарымен аяқталады. WRITELN процедурасын шақырған кезде <шығару тізбегі> параметрі жазылмаса, онда файлға EOLN маркері беріледі, тбұл экранға шығарылғанда келесі қатардың басына курсордың көшірілуіне келтіріледі.
EOLN логикалық функциясы TRUE мәнін қайтарады, егер енгізілетін мәтіндік файлда қатардың соңының маркері кездессе:
EOLN (<ф. айн.>).
SEEKEOLN (<ф.айн.>) логикалық функциясы қатардың соңының маркеріне дейін немесе мәні бар бірініші символына дейін барлық бос орындарды, табуляция белгілерін аттап өтуге пайдаланылады және TRUE-ді қайтарады, егер маркер кездессе.
SEEKEOF (<ф.айн.>) логикалық функциясы файлдың соңының маркеріне дейін немесе мәні бар бірінші символына дейін барлық бос оырндарды, табуляция белгілерін және EOLN қатардың соңының маркерлерін аттап өту үшін қолданылады және TRUE-ді қайтарады, егер маркер кездессе.
Дата добавления: 2015-07-08; просмотров: 1341 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Дәріс. Жазбалар. Жазбаларды қолдану мысалдары | | | Курс бойынша емтихан сұрақтары |