writeln(‘Марка  Объем двигателя  Мощность  Скорость ’);

       {Открывается файл для чтения данных}

       for i:=1 to n do

               begin

               read(f1, c1); {Считываются данные из файла}

               write(c1.mark:15, c1.volume:10, c1.power:10, c1.speed:10);

               writeln();

               end;

       readln;

end.

Внешний вид формы в Delphi


В конструкторе

При выполнении



Код программы в среде Delphi

Оформление меню окна осуществляется с помощью компонента MainMenu (закладка Standart). Щелчок по этому компоненту, расположенному уже на форме, вызывает открытие окна-конструктора меню.

Работа с файлами осуществляется с помощью компонентов OpenDialog и SaveDialog (закладка Dialogs) – открытие и загрузка в файл соответственно.

{полный код модуля}

unit uFile;

interface

uses

       Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

       Dialogs, Menus, Grids;

type

       TForm1 = class(TForm)

               StringGrid1: TStringGrid;

               MainMenu1: TMainMenu;

НЕ нашли? Не то? Что вы ищете?

               N1: TMenuItem;

               N2: TMenuItem;

               N3: TMenuItem;

               N4: TMenuItem;

               OpenDialog1: TOpenDialog;

               SaveDialog1: TSaveDialog;

               procedure N3Click(Sender: TObject);

               procedure N2Click(Sender: TObject);

               procedure FormCreate(Sender: TObject);

               procedure N4Click(Sender: TObject);

       private

               { Private declarations }

               public

               { Public declarations }

       end;

       cars = record {Тип записи}

               mark: string[15];

               volume, power, speed:real;

       end;

var

       Form1: TForm1;

       F: file of cars; {Файл записи}

       r: cars; {Одна запись}

       N: integer; {Количество записей}

implementation

{$R *.dfm}

procedure TForm1.N3Click(Sender: TObject);

begin

{выполнение стандартного диалога "Open File" - загрузить из файла}

       if OpenDialog1.Execute then

       begin

               AssignFile(F, OpenDialog1.FileName);

{F - название выбранного диалогом файла (свойство FileName объекта OpenDialig1)}

               Reset(F);

               N :=0; {Читаем с самого начала}

               {Считываем все записи из файла}

               while not eof(F) do

                       begin

                       {В переменную N считываем текущую запись}

                       Read(F, r);

                       {Марка помещается в первый столбец таблицы}

                       StringGrid1.Cells[0, N+1] :=r. mark;

                       {Объем двигателя - во второй столбец}

                       StringGrid1.Cells[1, N+1] :=FloatToStr(r. volume);

                       {Мощность - в третий столбец}

                       StringGrid1.Cells[2, N+1] :=FloatToStr(r. power);

                       {Скорость - в четвертый столбец}

                       StringGrid1.Cells[3, N+1] :=FloatToStr(r. speed);

                       {Увеличиваем общее число записей}

                       N := N+1;

                       end;

               CloseFile(F); {Закрываем файл}

       end;

end;

procedure TForm1.N2Click(Sender: TObject);

var i: integer;

begin

{выполнение стандартного диалога "Save File" - сохранение в файл}

       if SaveDialog1.Execute then

               begin

               AssignFile(F, SaveDialog1.FileName);

               Rewrite(F);

               i:=1;

               while StringGrid1.Cells[3, i] <>'' do

                       begin

                       r. mark := StringGrid1.Cells[0, i];

                       r. volume := StrToFloat(StringGrid1.Cells[1, i]);

                       r. power := StrToFloat(StringGrid1.Cells[2, i]);

                       r. speed := StrToFloat(StringGrid1.Cells[3, i]);

                       Write (F, r);

                       i := i+1;

                       end;

               CloseFile(F);

               end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

{Заполняем заголовок таблицы}

       StringGrid1.Cells[0, 0] := 'Марка';

       StringGrid1.Cells[1, 0] := 'Объем двигателя';

       StringGrid1.Cells[2, 0] := 'Мощность';

       StringGrid1.Cells[3, 0] := 'Скорость';

end;

procedure TForm1.N4Click(Sender: TObject);

{закрытие программы, кнопка Выход главного меню}

begin

close();

end;

end.

Лабораторная работа №16

Используя файловый тип данных, создать файл записей, который будет содержать данные об объектах, заданные в соответствующем варианте предыдущей лабораторной работы (лабораторная работа №15 без выполнения поиска). Вывести содержимое файла на экран. Выполнить два варианта: один – в среде Pascal, другой – в среде Delphi.

Действия с файлами

Чтобы найти нужный элемент файла, необходимо последовательно просмотреть все предыдущие элементы. Это называется последовательный доступ к файлу.

Пример

Используя файл, созданный в прошлом примере, вывести на экран все автомобили, чья максимальная скорость >150 км/ч.

Код программы в среде Pascal

program Cars;

uses Crt;

type cars – record

               mark: string[15];

               volume, power, speed : real;

               end;

       myfile = file of cars;

var f1: myfile;

       i, n :integer

       a1: cars;

begin

       clrscr;

       assign(f1, ‘d:\cars’);

       {Открываем файл для считывания данных}

       reset(f1);

       while not eof(f1) do {Выполнять пока не достигнут конец файла}

               begin

               read(f1, c1); {Считываются данные из файла}

               if c1.speed > 150 then

                       write(c1.mark:15, c1.volume:10, c1.power:10, c1.speed:10);

               end;

       readln;

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17