Файлы с прямым и последовательным доступом (Отчет по лабораторной работе № 15)

Страницы работы

4 страницы (Word-файл)

Содержание работы

   МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ

        Учреждение образования «Гомельский государственный

                 университет имени Франциска Скорины»

                                       Физический факультет

                           Кафедра радиофизики и электроники

Отчет

       по лабораторной работе № 15

       Файлы с прямым и последовательным доступом

Выполнил:

студент группы Ф-11                                                  В.К.Меринов

     Проверил:

     канд. физ.-мат. наук,

     доцент кафедры общей физики                                  В. В. Свиридова

                                               Гомель 2011.

Цель:

Изучить принципы работы с файлами при помощи прямого и последовательного доступов.

Задание:

При создании файлов, использовать данные типа запись из лабораторной работы №12 (Ввести информацию из Л.Р.№12 в массив записей).

Программа должна состоять из трёх частей:

    Часть 1:   Программа создания файла с прямым доступом;

    Часть 2:   Программа создания файла с последовательным доступом;

    Часть 3:   Программа поиска и корректировки  данных в существующем файле;

uses crt;

type

    skladrec=record

    nazv:string[20];

    cena:string[5]

    end;

var

   sf:file of skladrec;

   m:skladrec;

   name:string[30];

   i,j,n,p:integer;

   newnazv:string[20];

   newcena:string[5];

begin

     clrscr;

     writeln('Выберите действие над файлом');

     writeln;

     writeln('Нажмите 1 и ENTER для создания файла с прямым доступом');

     writeln('Нажмите 2 и ENTER для создания файла с последовательным доступом');

     writeln('Нажмите 3 и ENTER для поиска и корректировки данных в существующем файле');

     readln(n);

     clrscr;

     if n=1 then

        begin

             writeln('Введите имя файли или путь к нему');

             readln(name);

             assign(sf,name);

             clrscr;

             rewrite(sf);

             i:=0;

             with m do

                  while true do

                        begin

                             seek(sf,i);

                             writeln('введите наименование товара');

                             readln(nazv);

                             if nazv='end' then

                                begin

                                     close(sf);

                                     exit

                                end;

                             writeln('введите цену за единицу товара');

                             readln(cena);

                             write(sf,m);

                             clrscr;

                             i:=i+1

                        end;

        end;

     if n=2 then

        begin

             clrscr;

             writeln('введите имя файла или путь к нему');

             readln(name);

             assign(sf,name);

             clrscr;

             rewrite(sf);

             with m do

                  while true do

                        begin

                             writeln('введите наименование товара');

                             readln(nazv);

                             if nazv='end' then

                                begin

                                     close(sf);

                                     exit

                                end;

                             writeln('введите цену за единицу товара');

                             readln(cena);

                             write(sf,m);

                             clrscr;

                        end;

        end;

     if n=3 then

        begin

             clrscr;

             writeln('Введите имя файла или путь к нему');

             readln(name);

             assign(sf,name);

             reset(sf);

             with m do

                  begin

                       clrscr;

                       writeln('введите количество записей для корректировки');

                       readln(i);

                       clrscr;

                       for j:=1 to i do

                           begin

                                writeln('Введите номер корректируемой записи');

                                readln(p);

                                writeln('Введите новое наименование товара');

                                readln(newnazv);

                                writeln('Введите новую цену за единицу товара');

                                readln(newcena);

                                seek(sf,p-1);

                                read(sf,m);

                                nazv:=newnazv;

                                cena:=newcena;

                                seek(sf,p-1);

                                write(sf,m)

                           end

                  end;

             close(sf)

        end

end.

Похожие материалы

Информация о работе