![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Файлдармен жұмыс істеу.
Fzhi Файлдан ақ паратты оқ у жә не оғ ан ақ паратты жазу ү шін оны стандартты кітапханалық функция fopen кө мегімен ашу қ ажет. Программада fopen-ге бағ ытталу мына тү рде болады: Fp=fopen(name, mode); Бірінші параметр - файл аты, символдар қ атары, екінші параметр - mode-та файл қ алай қ олданылатынын кө рсететін символдар қ атары. Тө менде файлды қ олданудың негізгі тә сілдері келтірілген: “r” - файлды оқ у керек, “w” - файлғ а жазу керек, “a” - файлғ а қ осу керек, “r+” - файлды оқ у жә не жазу ү шін ашу (файл болу керек), “w+” - бос файлды оқ у жә не жазу ү шін ашу керек (егер ол файл бұ рын болса, оның ішіндегі мә ліметтер жойылады), “a+” - файлды оқ у жә не ішіне қ осу ү шін ашу (егер файл жоқ болса, онда ол алдын-ала қ ұ рылуы тиіс). “r”-ді қ олданғ ан кезде бар файл ашылады. Келесі функцияларды қ арастырайық: fgets(), fputs(), fread(), fwrіte(). 1. Fgets(). Fgets() функциясы stream кіріс ағ ынынан қ атарды оқ ып, strіng параметрі мә ні мен берілетін адрестегі қ атарғ а қ ояды. Символдар ағ ыннан жаң а қ атар символы болғ анғ а дейін оқ ылады, немесе ағ ынның соң ына дейін, немесе (n-1) символ оқ ылғ анғ а дейін. Егер n=1 болса, онда бос жол қ ұ рылады (қ атардың адресі қ айтарылады, егер қ ате болса немесе файлдың соң ына келсе мә ні NULL). 2. Fputs(). Функция strіng қ атарын ағ ымды позициядан бастап stream ағ ынына кө шіреді. Соң ын білдіретін нө льдік символ (‘\0’) кө шірілмейді (қ айтаратын мә н: соң ғ ы жазылғ ан символ; егер strіng қ атары бос болса, мә ні 0; егер қ ате болса, мә ні NULL). 3. Fread(). Функция stream кіріс ағ ынынан sіze ұ зындық ты count элементтерін оқ иды да, buffer берілген массивіне салады. Stream ағ ынымен байланысқ ан файл кө рсеткіші нақ ты оқ ылғ ан байттар санына ө седі. Мә ліметтерді форматты тү рлендіру (fscanf() функциясы ү шін секілді) жасалмайды. Қ атарды тү сіру символы (‘\n’) арнайы (fgets() ү шін секілді) ө ң делмейді. 4. Fwrіte(). Функция buffer обылысынан stream шығ ысағ ымғ а sіze байттан count жазба жазады. Stream ағ ымымен байланысты файл кө рсеткіші (ішкі кө рсеткіш) жазылғ ан байттар санына ө седі. Мә ліметтерді форматты тү рлендіру жасалмайды. Қ атарды тү сіру символы ө ң делмейді. 5. Fseek(). Stream ағ ымымен байланысқ ан функция файл кө рсеткішін (ішкі) файлдың offset ығ ысуымен есептелетін жә не orіgіn есебінің бағ ытының кө рсетуімен жаң а орнына алып барады. Кө рсетілген stream ағ ынына келесі енгізу/шығ ару операциясы ауыстыру орындалғ ан позициядан бастап орындалады. Тізбе қ ұ рылымды типі. Tkt Жазбалар – мә ліметтер қ ұ рлымы, элемент аты арқ ылы анық талады. Жазба элементтері кез келген типті болуы мү мкін. Сондық тан жазбаны сипаттағ анда ә рбір элемент атын, жә не оның типін кө рсету керек. Жазба келесі тү рде сипатталады: Type жазба-типінің -аты= Record элемент-аты: элемент-типі … e nd; Бұ лар тү рлі тіркелген элементтерді санын жинақ тайды. Жазбаның ә рбір элементінің жазба шегінде ерекше (уникальное) аты болады жә не ол ө ріс деп аталады. Жазбалар: · тіркелген (фиксированные); · вариантты; болып бө лінеді. Тіркелген (фиксированная) жазба - ө рістер саны тіркелген. Тіркелген жазбалады сипаттау ү шін Delphi-де келесі қ ұ рлым қ олданылады: Record FieldList1: Type1; … FieldListN: TypeN; end; Мұ ндағ ы FieldList1- бірінші ө ріс аты; FieldListN- жазбадағ ы соң ғ ы N ө ріс аты; Вариантты жазба - ө рістер саны тіркелген, бірақ ө рістердің жады аймағ ын алу кө лемін ә ртү рлі кө лемде қ арастыруғ а мү мкіндік береді. Жазбалардың вариантты бө лігін сипаттау case сө зінен басталады жә не жазбаның басқ а ө рістерін сипаттағ аннан кейін орналасуы керек. Вариантты жазбаны сипаттау ү шін келесі қ ұ рлымды пайдалануғ а болады: Record FieldList1: Type1; … FieldListN: TypeN; case tag: ordinalType of constantList1: (variant1); … constantListN: (variantN); end;
|