Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
35. Символдық, жолдық, блоктық және форматталған енгізу-шығару.
Символдарды енгізу/шығару операцияларында бір мәлімет алмасуы кезінде файлдан сөз тіркесі жолдары оқылады немесе оған сөз тіркесі жазылады. Мысалы: fgetc(FILE *fp); ашылған файлдан символ оқиды. Fputc(int ch,FILE *fp); ch символы кодын файлға жазады. Сөз тіркестері жолдарын енгізу/шығару операцияларында бір мәлімет алмасуы кезінде файлдан сөз тіркесі жолдары оқылады немесе оған сөз тіркесі жазылады. Мысалы: gets(char *S); файлдан мәлімет \n байттарын символы кездескенше біртіндеп оқиды да, оларды S тіркесіне орналастырып, символын \0 (нөл терминатор) белгісіне айналдырады. Fgets(char *S,int m,FILE *fp); fp түрінде сипатталған файлдан байттарды оқып, оларды \n символы кездескенше немесе m байт оқылып біткенше S тіркесі мәні ретінде жазып шығады. Блок бойынша енгізу/шығару операцияларында мәліметтер алмасу олардың бір блогын толық қамтиды. Мысалы: fread(void *ptv,int size,int n,FILE *fp); мұндағы fp файлынан әрқайсысы size байттан тұратын мәліметтің n блогы ptv нұсқаушы көрсетіп тұрған жады аймағына оқылады (оқылатын блок үшін алдын ала орын дайындап қою қажет). Fwrite(void *ptv,int size,int n,FILE *fp); мұнда ptv нұсқаушы көрсетіп тұрған жады аймағында орналасқан әрқайсысы size байттан тұратын мәліметтің n блогы ашық тұрған fp файлына жазылады. Fprintf файлға информация жазу үшін, ал fscanf- файлдан информация оқу үшін қолданылады.Олардың жалпы жазылу түрі: fprintf(fp,”спецификация шаблоны”,p); мұндағы p-өрнек; fscanf(fp,”спецификация шаблоны ”,адрес); Форматталған енгізу-шығарудың функциясының ерекшелігі енгізген кезде жол байттарының түрленуі орындалып, арнайыландырылған айнымалылардың алынған мәндері беріледі. Шығарған кезде мәндердің қайта түрленуі жүзеге асырылып, олардың символдық бейнелері шығару ағымына орналастырылады.
36. Файлдарға тікелей рұқсат алу.
Файл - сыртқы есте сақтау құрылғыларында орналастырылған және мәлімет өңдеу, тасымалдау кездерінде біртұтас күйде қарастырылатын мәліметтер жиыны. Файлдармен жұмыс істеу үшін оларды алдымен ашу керек, яғни файл туралы мәліметті атын, адресін программаға белгілі ету қажет. Си тілінде файлды ашу үшін fopen() функциясы арқылы орындалады. Файлдарға нұсқауыш сиппаталуы тиіс.Файлға нұсқауыш мынадай түрде сиппаталады: FILE *fp; мұндағы файл типі - <stdio.h> тақырыптық файлында анықталған құрылым. Файлды ашатын fopen() функциясының жалпы жазылуы: fp=fopen(name,mode) мұнда fp файлға сілтейтін нұсқауыш; name- файлдың адресін де көрсетуге болатын аты, көбінесе символдық тіркес арқылы жазылады; mode-файл файл қандай қандай режимде қолданылатынын көрсететін параметр, бұл да символдар тіркесімен төмендегідей түрде жазылады: r - файлды оқу үшін ашу, w - бос файлды информация жазу үшін ашу, a - файл соңына мәлімет қосып жазу үшін ашу, r+ - файлдан информация оқу және оған информация жазу үшін ашу , w+ - бос файлдан информация оқу және оған мәлімет жазу үшін файл жазу, a+ - файлдан информация оқу және оның соңына информация қосып жазып алу үшін ашу, t - файл мәтіндік текстік режимде ашылады,ол rt, wb, at, т.с.с. болып көрсетіле береді. b- файл екілік режимде ашылады, trb,wb,ab т.с.с. болып көрсетіле береді. Келісім бойынша файл көбінесе чәтіндік режимде ашылады. Файлмен жұмыс істеп болған соң, оны жабу үшін келесі функция қолданылады: fclose(файл_нұсқаушы). Мысалы : f = fopen(s, "wb");
k = fopen("h:\ex.dat", "rb");
37. Бинарлық және мәтіндік файлдарды құру, жою, қосу, элементтерін жөндеу, файлдарды баспаға шығару
Файлдарды өңдеу
Файлдардың екі түрін өңдеуге болады:
∙ Текстік файлдар. (t)
∙ Бинарлық файлдар.(b)
Си++тілінде тиімді шешім қабылданған. Класстарды және функцияларды хабарлауды жеке файлмен беруге болады және ол файлды #include операторының көмегімен басқа файлдардың басына қосуға болады.
Мысалы:
#include "Book.h"
#include операторы Book.h файлының мазмұнын ағымдағы файлда қолдануға мүмкіндік береді. Book.h файлы тақырыптар файлы деп аталады.
Тақырыптық файлдар атаулары төмендегідей:
assert.h, float.h, math.h, ctype.h,
limits.h, setjmp.h, errno.h, locale.h,
signal.h, stdarg.h, stddef.h, stdio.h,
stdlib.h, string.h, time.h.
Файлмен мәлімет алмасу мақсатында ifstream және ofstream кластарын
қолданған тиімді. Ол үшін < fstream. h > тақырыптық файлы ашылуы тиіс.
Мұнда, сәйкесінше, ifstream класының объектісі myof және ostream класының
mygf лектері құрылып көрсетілген файлмен байланысады.
Мысалы, Ifstream myof(“prim.in”,ios::in);
Ofstream mygf(“prim.out”,ios::out);
Файлмен мәлімет алмасу мүмкіндігінің режимін өзгерту файлдық объектінің
сипатындағы екінші аргументін өзгерту арқылы жүзеге асады.
Мысалы, Ofsetream myof ( “prim.in”,ios::app | ios::nocreate); - мұндағы файл бар
болса ғана myof объектісі құрылып, байланыс орнатылады, себебі ios::nocreate
аргументі берілген, яғни файл болмаса, объект құрылмайтынын білдіреді. Ал,
ios::app аргументі файлға шығарылатын мәндер файлдың соңына қосылатынын
анықтайды.
int FileCreate (const AnsiString FileName); -атауы берілген жаңа файлды құрып, ашылған файлдың дескрипторын қайтарады.
sprintf ( ) (string printf(), яғни printf() жолдық) функциясы printf()
функциясындағыдай форматтау спецификаторлары қолданылады. Айырмашылығы
sprintf ( ) функциясы нәтижені экранға емес, берілген массивке орналастырады.
Бұндай жағдай нәтижені, айталық экранға және принтерге бірнеше рет шығару
кезінде тиімді болуы мүмкін