56
толықтырулар(жазуға деиін) openappend, файлды жабу closefile, файласоңына
тексерулер eof, орнатулар немесе файл типін оқу filemode, орнатулар
немесефаилдағы нұсқағыш орнын оқу filepos, файлдағы жолды оқу file_str.
Мысалы, файлға мəліметтер жаз əрекеттерінің реттелгені келессідей :
- файлады openwrite прединаты көьегімен ашу ;
- файлады writedevice прединатымен жазу құрылғысы ретінде тағайындалу;
- файлға жазудын өзі,мысалы, write немесе writef предикатор көмегімен;
- програманың тағайындалуына жауап беретін басқа кез келген предикатор
мен ережелердің қолданылуыиспользование любых других предикатов и
правил, отвечающих назначению программы;
- файлады closefile предикатымен жабу.
Борлық осы əрекеттер програмада келесі түрде сипатталуы мүмкін:
openwrite(datafile1,”File1.dat”),
writedevice(datafile1),
< файлға жазу >
< басқа кез келгенережелермен прединаттары >
closefile(datafile1).
Осындай схема арқылы файлдан мəліметтерді оқу жəне файлға мəлімет
жазу алдындағы əрекеттер сипатталуы мүмкін.
Енгізілген
предикаттарда
файлдармен
жұмыс
жасау
үшін
компьютердіңстандартты құрылғыларының логикалық атаулары қалданылуы
мүмкін keyboard (пернетақта), screen ( дисплеи экран), printer ( басып
шығарғыш құрылғы).
Пернетақтаданмəліметтерді оқу жане оларды файлға жазуды жүзеге
асыратын програма мына түрде юолуы мүмкін:
domains
file=datafile
kstr,fstr=string
predicates
readin(kstr,fstr) /* оқу-жазу */
create_a_file /* файлды құру */
goal
create_a_file.
clauses
create_a_file:-
nl,nl,write(“файл атын енгізу”),nl,nl,
readln(Filename),
openwrite(datafile,Filename),
writedevice(datafile),
readln(Kstr),/* пернетақтадан бірінші жолды енгізу*/
concat(Kstr,”\13\10”,Fstr),
readin(Kstr,Fstr),
closefile(datafile).
/* келессі жолдардыенгізу жəне оларды файлға жазу*/
readin(“stop”,_):-!.
57
readin(_,Fstr):- write(Fstr),readln(Kstr1),
concat(Kstr1,”\13\10”,Fstr1),
readin(Kstr1,Fstr1).
Келтірілген програмада
Kstr –пенрнетақтадан енгізетін жол,
Fstr – файлға шығарылатын жол.
Filename
файылының
құрылымынав
“\13\10”
символдарымен
толықтырылған қолданушы енгізетін жолдар кіреді. Жолды“\13\10”
символдарымен толықтыру readln предикатының жолдары оларды файлдан
оқудыда ажырата алу қажет .Програма жұмысы “stop” жолын енгізуде
анықталады.
Зертханалық жұмыс бойынша тапсырма мазмұны.
Сөздер реттілігі бар,(мысалы əйул адам есімі),бос орындармен бөлінген,
енгізілген жолдар оргументін енгізілген жолдар сөздер болып табылатын
берілген функтор атауы бар сөйлем .
Əрбір сөйлем жеке жолда орналасып нүктемен аяқталу керек.
2.9. Зертханлық жұмыс № 9.Visual Prolog файл жүйесi.
Бұл бөлiмде Visual Prolog файл жүйесiн жəне файлдармен айналып тұрған
стандарттык предикаттарды көрсетіледі. Енгiзу /шығару қайта
тағайындалумен - əр түрлi құрылымдарымен енгiзу /шығару тиiмдi байланыс
əдiсiмен таныстыру.
Файл жүйесi ептеген ерекшелiктерiмен Visual Prolog əр түрлi версияларында
бiрдей жұмыс iстейдi
Visual Prolog current_read_device (оқығанның ағымды құрылымы), оған
енгiзу оқылады жəне жазғанның ағымды құрылымы current_write_ device,
(одан шығару жіберіледі) қолданылады.
Əдеттегiдей, оқығанның ағымдағы құрылымы клавиатура болып
табылады, ал ағымдағы жазу құрылымы - дисплейдiң пердесi. Дегенімен
басқа құрылымдарды тағайындай аласыз
Мысалы, енгiзу сыртқы жадта сақталған (мүмкiн дискте) файлдан
оқыла алады. Тiптi мүмкiн бағдарламаны орындағанда ағымдағы енгiзу мен
шығару құрылымдарды қайта анықтау болады. Оқудын жəне жазудың
құрылымдарына қолданылғанына қарамаай, Prolog Visual бағдарламада
оқу мен жазу ұқсас етіледі. Файлға оны ашу керек. Файл келесілерге
ашылады .
•
Оқу үшін ;
•
Жазу үшін ;
•
Қосу үшін;
•
Модификацияға үшін.
58
Кез келген əсер ету үшін ашық файл, оқудан айырмашылығы бар
болатын, операция аяқтаудан кейін жабылу болуға тиісті. Жағымсыз
жағдайда өзгерістер енгізген файлға жоғалтуға бола алады. Бір уақытта
бірнеше файлдарды ашуға болады.
Ашық файлдардың арасында енгiзу мен шығару жылдам қайта
белгіленеді.
Файлдарды ашу мен жабуы көбірек уақыт алады, əлдеқайда
деректердің ағындарын қайта тағайындалулары қарағанда
Visual Prolog файл ашқан жатқан кезде, ол операциялық жүйенің файлдын
бейнелі түрде атын нақты атымен байланыстырады жəне осы бейнелі
түрде аты енгiзу мен шығаруға бағыттылынады.
Файлдардың бейнелі түрде атылары кішкентай əріптен бастауға тиісті
жəне file доменды сипатталғанда хабарландыруға болу тиісті. Мысалы: file
= file1; source; auxiliary; somethingElse
Кез келген бағдарламада тек қана бір file домен рұқсат берілген.
1 кестеде қөрсетілген бес кірістірілген file альтернативтерді Visual Prolog
айырылып танады
1 кесте. File доменның кірістірілген альтернативтер
Альтернатива Сипаттама
keyboard
Клавитатурадан оқу (Үндемеу бойынша )
screen
Мониторға жазу
stdin
Стандарттық еңгізуден оқу
stdout
Стандарттық шығуын жазу
stderr
Қателерды шығару үшін стандарттық құрылымға жазу
Бұл кірістірілген альтернативтер file сипатталғанда кездесуге тиісті
емес
Ашумен жабуға оларды керек емес болмайды.
Файлдарды ашу мен жабу
Файлдарды ашу мен жабу үшін стандарттық предикаттар туралы
келесі бөлімдер сипаталады
Ескерту
Файлды ашқанда ескеру сақтау керек, кері слэш (\), дискінің
подкаталогың
белгілеу
үшін
қолданатында
DOS-бағдарларынған
болжамдарда Visual Prolog ESC-символ (бағдарлаушысымен) боп келеді
Сондықтан бағдарламада файлға белгіленген жөлды рұқсаттылғанда екі
(\\)кері слэш əрдайым көрсету маңызды болады.
Мысалы, жөл:
"с:\\prolog\\include\\iodec1.con"
файлға рұқсаттың жолын ұсынады:
с:\prolog\include\iodec1.con
Предикат openread/2
Предикат openread оқу үшін OSFileName файл ашады, келесі формат
қолдана:
openread(SymbolicFileName, OSFileName)
% (i, i)
Достарыңызбен бөлісу: |