Меню
Разработки
Разработки  /  Информатика  /  Тесты  /  9 класс  /  Учебно-методическое пособие на тему "Файлы в Delphi".

Учебно-методическое пособие на тему "Файлы в Delphi".

Учебно-методическое пособие с теорией, тестом и лабораторной работой.

24.10.2016

Содержимое разработки








Учебно-методическое пособие по теме «Файлы в Delphi».





Выполнила: студентка

Аглиуллина Айгуль Ильнуровна

педагог дополнительного образования








Введение.

В последнее время резко возрос интерес к программированию. Это связано с развитием и внедрением в повседневную жизнь информационно-коммуникационных технологий. Если человек имеет дело с компьютером, то рано или поздно у него возникает желание, а иногда и необходимость, программировать.

Среди пользователей персональных компьютеров в настоящее время наиболее популярно семейство операционных систем Windows и, естественно, что тот, кто собирается программировать, стремится писать программы, которые будут работать в этих системах.

Delphi — это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi — строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal.

В настоящее время программистам стала доступна очередная версия пакета Delphi - Borland Delphi 7 Studio. Она может работать в среде операционных систем от Windows 98 до Windows XP. Особых требований, по современным меркам, к ресурсам компьютера пакет не предъявляет.

В Delphi имеется большое количество различных производных и непроизводных типов. Существенной особенностью всех значений производных типов является наличие в них конечного, наперед заданного числа компонент. Например, в значении многомерного массива это число можно определить, зная количество компонент по каждому измерению, а в значении записи это число определяется количеством и типом полей. Таким образом, заранее, еще до выполнения программы, по этому описанию можно выделить необходимый объем памяти машины для хранения значений переменных этих типов. Но существует определенный класс задач и определенные ситуации, когда количество компонент (пусть даже одного и того же типа) заранее определить невозможно, оно выясняется только в процессе решения задачи. Поэтому возникает необходимость в специальном типе значений, которые представляют собой произвольные последовательности элементов одного и того же типа, причем длина этих последовательностей заранее не определяется, а конкретизируется в процессе выполнения программы. Этот тип значений получил название файлового типа.

Важной особенностью файлов является то, что данные, содержащиеся в файле, переносятся на внешние носители. Файловый тип – это единственный тип значений, посредством которого данные, обрабатываемые программой, могут быть получены извне, а результаты могут быть переданы во внешний мир. Это единственный тип значений, который связывает программу с внешними устройствами ЭВМ.




















1. Понятие файла

С точки зрения пользователя файл - это именованная область данных на диске или любом другом внешнем носителе. В программе файл предстает как последовательность элементов некоторого типа. Так как размер одного файла может превышать объем всей оперативной памяти компьютера, доступ к его элементам выполняется последовательно с помощью процедур чтения и записи.

Для файла существует понятие текущей позиции. Она показывает номер элемента, который будет прочитан или записан при очередном обращении к файлу. Чтение-запись каждого элемента продвигает текущую позицию на единицу вперед. Для большинства файлов можно менять текущую позицию чтения-записи, выполняя прямой доступ к его элементам.

В зависимости от типа элементов различают три вида файла:

  • файл из элементов фиксированного размера (элементами такого файла чаще всего являются записи);

  • файл из элементов переменного размера (нетипизированный файл) - такой файл рассматривается просто как последовательность байтов;

  • текстовый файл; элементами такого файла являются текстовые строки.

Для работы с файлом в программе объявляется файловая переменная. В файловой переменной запоминается имя файла, режим доступа (например, только чтение), другие атрибуты. В зависимости от вида файла файловая переменная описывается по-разному.

Для работы с файлом, состоящим из типовых элементов переменная объявляется с помощью словосочетания file of, после которого записывается тип элемента:

имя_файла:file of тип_элементов_файлов;

F: file of char;

Объявление переменной для работы с нетипизированным файлом выполняется с помощью отдельного слова file:

var

F: file;

Для работы с текстовым файлом переменная описывается с типом TextFile:

имя_файла:TextFile;

F: TextFile;

После объявления файловой переменной, которая задает тип компонентов файла, необходимо указать конкретный файл, т.е. связать файловую переменную с физическим файлом.

2. Компоненты, работающие с файлами

  Работа с файлами важная вещь в любом языке программирования. Работа с файлами в Delphi позволяет считывать, сохранять информацию, и выполнять другие действия с файлами. В Delphi поддерживаются все операции с файлами - создание, поиск, чтение и запись, переименование как файлов, так и к директорий. В Delphi существует несколько способов работы с файлами.

   Для начала необходимо упомянуть компоненты Delphi, которые умеют работать с файлами. Они читают и сохраняют своё содержимое, строки типа String, в файл текстового формата. Это компоненты ListBox, ComboBox и Memo, расположенные на первой же вкладке палитры компонентов.

Каждая строка компонентов ListBox и ComboBox является объектом Items[i], а Memo - Lines[i], где i - номер строки, который отсчитывается от нуля. Добавление строк в компоненты выполняется методами Add и Insert:





  






Рисунок №1. Добавление строк в компоненты

begin
   Memo1.Lines.Add('Первая строка');
   ComboBox1.Items.Add('Первая строка');
   ComboBox1.Items.Add('Вторая строка');
   ListBox1.Items.Add('Первая строка');
   ListBox1.Items.Add('Вторая строка');
  end ;

Метод Add добавляет новую строку в конец. Метод Insert имеет дополнительный параметр, указывающий, после какой строки разместить новую строку. Доступ к строкам осуществляется так:

ComboBox1.Items[0] := 'Первая строка изменилась' ;

ListBox1.Items[1] := 'Вторая строка изменилась' ;

У компонента ComboBox дополнительно есть свойство Text, где (как и у компонента Edit) находится вводимый текст:

ComboBox1.Text := ' Вводимый текст ';

На выделенную в данный момент строку компонента ComboBox указывает свойство ItemIndex типа Integer, то есть это номер выделенной строки. Следовательно, получить саму выделенную строку компонента ComboBox можно следующей конструкцией:

S:=ComboBox1.Items[ComboBox1.ItemIndex];
или, пользуясь оператором присоединения

With ComboBox1 do

S:=Items[ItemIndex];

Таким способом по нажатию клавиши Enter можно заносить в этот компонент вводимую в строку информацию и удалять нажатием Escape:
выделить на Форме ComboBox и перейти в Инспектор объектов, на вкладку Events. Щёлкните дважды по обработчику OnKeyPress. Система Delphi создаст заготовку обработчика.

Для сохранения содержимого в файл необходимо выполнить команду

ListBox1.Items.SaveToFile(' Имя_файла.txt ') ;

Впрочем, расширение можно поставить любое, не обязательно .txt, как и вообще без него обойтись. Но расширение .txt позволит легко открыть файл стандартным Блокнотом, что бывает очень удобно на этапе написания программы.
Для загрузки служит метод LoadFromFile:

ListBox1.Items.LoadFromFile(' Имя_файла.txt ');

3. Классическая работа с файлами

Технология работы с файлами в системе Delphi требует определённого порядка действий:

  1. Прежде всего файл должен быть открыт. Система следит, чтобы другие приложения не мешали работе с файлом. При этом определяется, в каком режиме открывается файл - для изменения или только считывания информации. После открытия файла в программу возвращается его идентификатор, который будет использоваться для указания на этот файл во всех процедурах обработки.

  2. Начинается работа с файлом. Это могут быть запись, считывание, поиск и другие операции.

  3. Файл закрывается. Теперь он опять доступен другим приложениям без ограничений. Закрытие файла гарантирует, что все внесённые изменения будут сохранены, так как для увеличения скорости работы изменения предварительно сохраняются в специальных буферах операционной системы.

В Delphi реализовано несколько способов работы с файлами. Рассмотрим классический способ. Файловая переменная вводится для указания на файл. Делается это с помощью ключевого слова File :

var

F:  File ;

Описанная таким образом файловая переменная считается нетипизированной, и позволяет работать с файлами с неизвестной структурой. Данные считываются и записываются побайтно блоками, размер которых указывается при открытии файла, вплоть от 1 байт.

Но чаще используются файлы, состоящие из последовательности одинаковых записей. Для описания такого файла к предыдущему описанию добавляется указание типа записи:

var F:  File of тип_записи ;

В качестве типа могут использоваться базовые типы, или создаваться свои. Важно только, чтобы для типа был точно известен фиксированный размер в байтах, поэтому, например, тип String в чистом виде применяться не может, а только в виде String[N].

Данные, считанные из файла или записываемые в файл, содержатся в обычной переменной, которая должна быть того же типа, что и файловая. Поэтому сначала в программе описывается нужный тип, а затем вводятся две переменные этого типа - файловую и обычную.

Для текстовых файлов отдельно укажем, что тип файловой переменной в TextFile, а тип обычной - String.

Для открытия файла нужно указать, где он расположен. Для этого файловая переменная должна быть ассоциирована с нужным файлом, который определяется его адресом. Адрес файла может быть абсолютным, с указанием диска и каталогов ('C:\Мои документы\Мои рисунки\FileName.ini'), или относительным, тогда он создаётся в папке с .exe файлом программы. Для задания относительного адреса достаточно указать имя файла с нужным расширением. Делается это оператором AssignFile:

AssignFile(SaveF, 'C:\Мои документы\Мои рисунки\FileName.ini');

AssignFile(SaveF, 'FileName.ini');

Теперь файл должен быть открыт.

Открытие файла оператором Rewrite приведёт к воссозданию файла заново, т.е. существующий файл будет без предупреждения уничтожен, и на его месте будет создан новый пустой файл заданного типа, готовый к записи данных. Если же файла не было, то он будет создан.

Открытие файла оператором Reset откроет существующий файл к считыванию или записи данных, и его указатель будет установлен на начало файла :

Rewrite(SaveF);

Reset(SaveF);

Каждый из этих операторов может иметь второй необязательный параметр, имеющий смысл для нетипизированных файлов, и указывающий длину записи нетипизированного файла в байтах:

Rewrite(SaveF, 1);

Reset(SaveF, 1);

Чтение файла производится оператором Read:

Read(SaveF, SaveV);

Запись в файл производится оператором Write:

Write(SaveF, SaveV);

При этом чтение и запись производится с текущей позиции указателя, затем указатель устанавливается на следующую запись. Можно проверить, существует ли нужный файл, оператором FileExists:

if FileExists('FileName.ini')

   then Read(SaveF, SaveV);

Принудительно установить указатель на нужную запись можно оператором Seek(SaveF, N), где N - номер нужной записи, который, как и почти всё в программировании, отсчитывается от нуля:

Seek(SaveF, 49); - установка указателя на 50-ю запись.

При последовательном чтении из файла рано или поздно будет достигнут конец файла, и при дальнейшем чтении произойдёт ошибка. Проверить, не достигнут ли конец файла, можно оператором EOF (аббревиатура End Of File), который равен true, если прочитана последняя запись и указатель находится в конце файла:

while (not EOF(SaveF)) do

 Read(SaveF, SaveV);

Для текстовых файлов вместо Read и Write используются операторы Readln и Writeln, умеющие определять конец строки.

Оператор Truncate(SaveF) позволяет отсечь (стереть или удалить) все записи файла, начиная от текущей позиции указателя, и до конца файла.

В конце работы с файлом его необходимо закрыть. Это делается оператором CloseFile(SaveF) ;


4. Работа с текстовыми файлами

Наиболее часто приходится иметь дело с текстовым представлением информации, поэтому подробно рассмотрим запись и чтение текстового файла.

Приступая к работе с файлом, нужно первым делом вызвать процедуру AssignFile, чтобы файловой переменной поставить в соответствие имя файла на диске:

AssignFile(F, 'MyFile.txt');

В результате этого действия поля файловой переменной F инициализируются начальными значениями. При этом в поле имени файла заносится строка 'MyFile.txt'.

Так как файла еще нет на диске, его нужно создать:

Rewrite(F);

Теперь запишем в файл несколько строк текста. Это делается с помощью хорошо вам знакомых процедур Write и Writeln:

Writeln(F, 'Pi = ', Pi);

Writeln(F, 'Exp = ', Exp(1));

При работе с файлами первый параметр этих процедур показывает, куда происходит вывод данных.

После работы файл должен быть закрыт:

CloseFile(F);

Рассмотрим теперь, как прочитать содержимое текстового файла. После инициализации файловой переменной (AssignFile) файл открывается с помощью процедуры Reset:

Reset(F);

Для чтения элементов используются процедуры Read и Readln, в которых первый параметр показывает, откуда происходит ввод данных. После работы файл закрывается. В качестве примера приведем программу, распечатывающую в своем окне содержимое текстового файла 'MyFile.txt':

program Console;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

F: TextFile;

S: string;

begin

AssignFile(F, 'MyFile.txt');

Reset(F);

while not Eof(F) do

begin

Readln(F, S);

Writeln(S);

end;

CloseFile(F);

Writeln('Press Enter to exit...');

Readln;

end.

Так как обычно размер файла заранее не известен, перед каждой операцией чтения вызывается функция Eof, которая возвращает True, если достигнут конец файла.

Текстовые файлы можно открывать только для записи или только для чтения, но не для того и другого одновременно. Для того чтобы сначала записать текстовый файл, а потом прочитать, его нужно закрыть после записи и снова открыть, но уже только для чтения.


5. Использование файлов при решении задач

Рассмотрим использование файловых типов при решении задач на конкретных примерах.

1. Заполнить файл последовательного доступа N действительными числами, полученными с помощью датчика случайных чисел. Найти сумму максимального и минимального элементов этого файла.

Форма.



1 – Label1

2 – Edit1

3 – Edit2

4 – Button1

Листинг программы.

Unit1.

unit Unit1;

interface

uses

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

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

t:textfile;

n,i : byte;

min, max, temp : real;

tt: array [0..100] of integer;

begin

randomize;

n:=strtoint(edit1.text);

rewrite(t, 'd:\my.txt');

Append(t);

for i := 1 to n do

begin

tt[i]:=random(100)-5;

write(t, tt[i], ' ');

end;

closefile(t);

if(n 0) then

begin

reset(t);

read(t, min);

max := min;

for i := 2 to n do

begin

read(t, temp);

if(temp

begin

min := temp;

end;

if(temp max) then

begin

max := temp;

end;

end;

end;

closefile(t);

reset(t);

edit2.text:='chisla:'+' ';

for i := 1 to n do

begin

read(t, temp);

edit2.text:= edit2.text+inttostr(round(temp))+' ';

end;

edit2.text:=edit2.text+'Max is: '+ inttostr(round(max))+' ';

edit2.text:= edit2.text+'Min is: '+ inttostr(round(min))+' ';

closefile(t);

edit2.text:= edit2.text+'Sum is: '+ inttostr(round(min + max))+' ';

end;

end.

Скриншот формы.


2. Записать файл f последовательного доступа N натуральных чисел. Получить в другом файле последовательного доступа все компоненты файла f, кроме тех которые кратны k. Вывести полученный файл на печать.

Форма.














1 – Label1

2 – Edit1

3 – Label2

4 – Edit2

5 – Edit3

6 – Edit4

7 – Button1

Листинг программы.

unit Unit1;

interface

uses

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

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Button1: TButton;

Label2: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

t,f:textfile;

n,i: byte;

m,k: integer;

tt: array [0..100] of integer;

begin

randomize;

n:=strtoint(edit1.text);

k:=strtoint(edit2.Text);

AssignFile (f, 'sl.txt');

rewrite(f);

for i := 1 to n do

begin

tt[i]:=random(100)-5;

write(f, tt[i], ' ');

end;

reset(f);

edit3.text:='chisla:'+' ';

for i := 1 to n do

begin

read(f, m);

edit3.text:= edit3.text+inttostr(m)+' ';

end;

closefile(f);

AssignFile (f, 'sl.txt');

AssignFile (t, 'sl1.txt');

rewrite(t);

reset(f);

if(n 0) then

begin

for i := 1 to n do

begin

read(f, m);

if(m mod k 0) then write(t,m,' ')

else n:=n-1;

end;

end;

closefile(f);

reset(t);

edit4.text:='chisla:'+' ';

for i := 1 to n do

begin

read(t, m);

edit4.text:= edit4.text+inttostr(m)+' ';

end;

closefile(t);

end;

end.

Скриншот формы.


3. Дан файл Т, который содержит номера телефонов сотрудников учреждения: указываются фамилия, инициалы и номер телефона. Найти фамилию и инициалы сотрудника по его номеру телефона.









Форма программы.






– Label1

2 – Edit1

3 – Label2

4 – Memo1

5 – Button1

Листинг программы.

unit Unit1;

interface

uses

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

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Button1: TButton;

Memo1: TMemo;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

TUch = record

fam: String;

ini: string;

tel: String;

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

f: TextFile;

uchr: TUch;

telef: string;

aType: Integer;

begin

Memo1.Clear;

if Length(Edit1.Text) = 0 then begin

Exit;

end;

telef := Edit1.Text;

AssignFile(f, 'telef.txt');

Reset(f);

while not EOF(F) do begin

Readln(f, uchr.fam);

Readln(f, uchr.ini);

Readln(f, uchr.tel);

if not EOF(f) then Readln(f);

if uchr.tel=telef then begin

memo1.Lines.Add((uchr.fam) + ' ' + (uchr.ini));

end;

end;

CloseFile(f);

end;

end.

Скриншот формы.















4. Дан файл bibl, содержащий сведения о книгах. Сведения о каждой из книг – это фамилия автора, название и год издания. Определить имеется ли книга с названием «Информатика». Если да, то напечатать фамилию автора и год издания. Если таких книг несколько, то напечатать все имеющиеся о них сведения.

Форма.



1 – Memo1

2 – Button1

Листинг программы.

Unit1.

unit Unit1;

interface

uses

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

Dialogs, StdCtrls;

const n=4; path:string='d:\bibl.txt';

type author=record

surname:string;

end;

book=record

author:author;

title:string;

pubdate:string;

end;

var books:array [1..N] of book;

f:text;

type

TForm1 = class(TForm)

Memo1: TMemo;

Button1: TButton;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

ii:integer;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);

begin

ii:=1;

end;

procedure TForm1.Button1Click(Sender: TObject);

var i:integer;

begin

assignfile(f,path);

reset(f);

readln(f, books[1].author.surname);

readln(f, books[1].title);

readln(f, books[1].pubdate);

readln(f, books[2].author.surname);

readln(f, books[2].title);

readln(f, books[2].pubdate);

readln(f, books[3].author.surname);

readln(f, books[3].title);

readln(f, books[3].pubdate);

readln(f, books[4].author.surname);

readln(f, books[4].title);

readln(f, books[4].pubdate);

closefile(f);

assignfile(f,path);

reset(f);

for i:=1 to N do begin

if books[i].title='Информатика' then begin

memo1.lines[ii]:='****************************************************************';

memo1.lines[ii]:='Название - '+ books[i].title;

inc(ii);

memo1.lines[ii]:='Автор - '+ books[i].author.surname;

inc(ii);

memo1.lines[ii]:='Дата - '+ books[i].pubdate;

inc(ii);

memo1.lines[ii]:='****************************************************************';

inc(ii);

end;

end;

closefile(f);

end;

end.

Скриншот формы.







2. Тестирование по теме «Файлы в Delphi»

В качестве основного средства контроля и проверки обязательного уровня обученности, в настоящее время используются тесты, которые признаются сегодня наиболее объективными измерителями.

Преимущества перед традиционными методами контроля знаний:

1. Более высокая, чем в традиционных методах, объективность контроля.

2. Оценка, полученная с помощью теста, может быть более дифференцированной.

3. Тестирование обладает более высокой эффективностью. Позволяет при опросе охватывать большой объем материала.

Но затруднительно проверяет углубленное понимание предмета, овладение стилем мышления.

Тестирование – завершающий этап во всей системе комплексного контроля.

Ниже приведено тестирование, позволяющее проверить базовые знания по теме «Файлы в Delphi». Его использование возможно лишь после изучения теоретических основ программирования и приобретения практических навыков разработки программ с использованием файлов.

Вопросы:

  1. … - это именованная область данных на диске или любом другом внешнем носителе.

  1. запись

  2. файл

  3. строка

  1. Данный тип файла состоит из элементов переменного размера (последовательность байтов).

  1. текстовый файл

  2. типизированный файл

  3. нетипизированный файл


  1. Какое словосочетание используется в работе с файлом для объявления переменной?

  1. file of

  2. file eof

  3. assign file

  1. Каким типом описывается переменная при работе с текстовым файлом?

  1. Char

  2. TextFile

  3. String

  1. Для сохранения содержимого в файл необходимо выполнить команду …

  1. SaveToFile(' Имя_файла.txt ');

  2. LoadFromFile(' Имя_файла.txt ');

  3. SaveFromFile(' Имя_файла.txt ');

  1. Для загрузки из файла служит метод…

  1. SaveToFile(' Имя_файла.txt ');

  2. LoadFromFile(' Имя_файла.txt ');

  3. SaveFromFile(' Имя_файла.txt ');

  1. Каков общий порядок работы с файлами?

  1. открытие, запись (считывание, поиск и др.), закрытие файла

  2. создание, запись (считывание, поиск), закрытие файла

  3. создание, открытие, запись (считывание, поиск), закрытие файла

  1. Оператор, с помощью которого можно проверить, существует ли нужный файл.

  1. FileExists

  2. FileExit

  3. ExistsFile



  1. Какой оператор позволяет отсечь (стереть или удалить) все записи файла, начиная от текущей позиции указателя, и до конца файла?

  1. Seek(SaveF, N)

  2. Reset(F);

  3. Truncate(SaveF)

  1. Каково назначение функции Eof?

  1. тестирует начало файла и возвращает True, если файловый указатель стоит в начале файла;

  2. проверяет положение указателя;

  3. тестирует конец файла и возвращает True, если файловый указатель стоит в конце файла;

  1. Каково назначение файловой процедуры Read?

  1. выводит из файла подряд расположенные элементы;

  2. читает из файла подряд расположенные элементы;

  3. удаляет из файла подряд расположенные элементы;

  1. Каково назначение файловой процедуры Write?

      1. записывает в файл значения (данные);

      2. читает из файла подряд расположенные элементы;

      3. удаляет из файла подряд расположенные элементы;

  1. Каково назначение файловой процедуры AssignFile?

  1. открывает текстовый файл для добавления текста;

  2. закрывает файл;

  3. связывает файловую переменную с именем файла;

  1. Каково назначение файловой процедуры Reset?

      1. открывает существующий файл;

      2. закрывает файл;

      3. создаёт новый файл;

  1. Каково назначение файловой процедуры Seek?

  1. устанавливает последнюю позицию считывания/записи файла;

  2. устанавливает текущую позицию считывания/записи файла;

  3. связывает файловую переменную с именем файла;

  1. Для работы с какими файлами используются процедуры BlockRead и BlockWrite?

  1. нетипизированные

  2. типизированные

  3. текстовые

  1. Для чего предназначена процедура Rewrite?

  1. создаёт (записывает) новый файл;

  2. открывает текстовый файл;

  3. сохраняет файл;

  1. Для чего предназначена процедура Flush?

  1. освобождает память;

  2. возвращает текущий каталог;

  3. очищает внутренний буфер файла;

  1. Для чего предназначена процедура IOResult?

  1. урезает файл, уничтожая все его элементы;

  2. возвращает код, характеризующий результат последней операции ввода-вывода;

  3. возвращает число компонент в файле;

  1. Какой функцией можно определить размер файла?

  1. FileAge

  2. FileExists

  3. FileSize

Таблица 1. Правильные ответы

№ вопроса

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

ответ

b

c

a

b

a

b

c

a

c

c

b

a

c

a

b

a

a

c

b

c

Анализ результатов тестирования:

За 18-20 правильных ответов выставляется оценка «отлично», за 16-17 ответов – оценка «хорошо», за 14-15 ответов – оценка «удовлетворительно», если правильных ответов менее 14 – оценка «неудовлетворительно».

Данное тестирование может быть использовано для учащихся старших классов, а также студентов; по желанию может быть отредактировано и изменено.

3. Создание учебно-методического пособия

Сделанные выводы по изучению данной темы позволили принять решение о составлении учебно-методического материала, состоящего из теоретических аспектов, практического тренажёра и тестовых заданий. Он может стать основой для создания более полного методического пособия.

Данный методический материал сочетает теорию и практику. При его использовании учителю может отводиться роль направляющего. Учащийся занимается самообразованием. Это ведет к саморазвитию ребенка.

Методический материал предназначен для пользования и учителем, и учащимися. Он содержит основные теоретические сведения по рассматриваемой теме, разнообразные задания и тест, которые при использовании для обучения конкретного учащегося могли бы учитывать его индивидуальные особенности, интересы и склонности.

Учащиеся имеют возможность самостоятельно работать с методическим материалом, как закрепляя изученное, так и постигая новое.

Так, при разработке методического материала закладывались следующие цели обучения:

Образовательные:

  • Познакомиться и частично освоить среду Delphi;

  • Научиться подготавливать простейшие программы с использованием файловых типов;

  • Научиться проверять правильность написания программ;

  • Научиться получать справку о системе команд среды Delphi;

Воспитательные:

  • Воспитать внимательность, усидчивость, работоспособность;

  • Воспитание интереса к изучению информатики;

  • Воспитание ответственного отношения к учёбе;

  • Воспитание самостоятельности;

  • Воспитание дисциплинированности;

Развивающие:

  • Развитие памяти;

  • Развитие навыков работы с клавиатурой и мышью;

  • Развитие умения самостоятельно добывать знания и пользоваться полученными знаниями.

Разработанный методический материал предназначен для изучения Delphi в старших классах и других учебных заведениях, в частности темы – файлы, материал структурирован по разделам, которые включают теоретический материал, задания и тесты.

Данный методический материал представлен на дисковом накопителе и создан в среде программирования Delphi с использованием презентаций, созданных в MS PowerPoint.







Заключение.

« ... Формирование у детей и молодежи целостного миропонимания и современного научного мировоззрения» является одной из основных задач современного образования. [14, 56] Существенное значение для формирования научного мировоззрения школьников имеет раскрытие при изучении информатики основ программирования, а также использование файловых типов.

Для чего же нужны файлы (файловый тип)? Введение файлового типа в вызвано необходимостью обеспечить возможность работы с периферийными (внешними) устройствами ЭВМ, предназначенными для ввода, вывода и хранения данных.

Зачем нужны файлы? Дело в том, что количество элементов файла может быть любым: число компонент файла может изменяться (увеличиваться или уменьшаться), то есть заранее не фиксируется. Поэтому в них можно хранить достаточно большое количество данных. После каждого элемента автоматически ставится признак конца элемента, а в конце файла ставится признак конца файла.

Файловый тип данных или файл определяет упорядоченную совокупность произвольного числа однотипных компонент. Понятие файла - это фундаментальное понятие информатики, вспомним же его определение. Файлом называется область памяти жесткого диска, имеющая свое имя.

Понятие файла достаточно широко. Это может быть обычный файл на диске, коммуникационный порт ЭВМ, устройство печати, клавиатура или другие устройства.

В зависимости от способа описания можно выделить текстовые (text) файлы, двоичные или типизированные (file of) и нетипизированные (file). Вид файла определяет способ хранения информации в файле.

При работе с файлами выполняются операции ввода - вывода. Операция ввода означает перепись данных с внешнего устройства (из входного файла) в основную память ЭВМ, операция вывода - это пересылка данных из основной памяти на внешнее устройство (в выходной файл).

Итак, наша работа была посвящена выявлению особенностей использования файловых типов в работе программ в среде Delphi, чего мы и достигли.

Сделанные выводы по изучению данной темы позволили принять решение о составлении учебно-методического пособия, состоящего из теоретических аспектов, практического тренажёра и тестовых заданий.

Данный методический материал предназначен в помощь, как педагогу, так и обучающемуся. При разработке методического материала закладывались обучающие, воспитательные, развивающие цели обучения.

Таким образом, поставленные нами задачи были достигнуты. Выдвинутая гипотеза: использование файловых типов (файлов) и применение учебно-методического пособия, при изучении языка программирования Delphi может способствовать повышению уровня знаний, умений и навыков по разработке различных программ - частично доказана, поскольку существуют более совершенные, разработанные опытными педагогами методические пособия, которые могут в большей степени способствовать повышению уровня знаний, умений и навыков, развитию творческих способностей, логического мышления.

















Список использованной литературы:


  1. Архангельский А.Я. Программирование в Delphi. Учебник по классическим версиям Delphi. - М.: ООО «Бином-Пресс», 2006. - 1152 с.

  2. Архангельский А.Я. Разработка прикладных программ для Windows в Delphi 5 - М.: ЗАО «Издательство БИНОМ», 1999. - 256 с.

  3. Возневич Э. «Delphi. Осваивай самостоятельно». - М.: Восточная Книжная Компания, 1996 - 167 с.

  4. Гофман В. Delphi 5. - СПб.: БХВ - Санкт-Петербург, 2000. - 584 с.

  5. Гофман В. Э. Delphi. Быстрый старт / В. Э. Гофман, А. Д. Хомоненко. - СПб. : БХВ-Петербург, 2003. - 288 с.

  6. Дарахвелидзе П. , Е. Маркова «Учебник по Delphi 7 для начинающих»

  7. Дарахвелидзе П., Марков Е. Delphi 4. - СПб.: БХВ - Санкт-Петербург, 1999. - 486 с.

  8. Зуев Е.А. Программирование на языке Turbo Pascal 6. 0,7.0. - М.: Радио и связь, Веста, 1993 - 365 с..

  9. Культин Н.Б. Программирование в Turbo Pascal и Delphi. - СПб.: BHV - Санкт-Петербург, 1998. - 240 с.

  10. Культин Н.Б. Программирование на Object Pascal в Delphi 5. - СПб.: БХВ - Санкт-Петербург, 2000. - 464 с.

  11. Мизрохи С. В. Turbo Pascal и объектно-ориентированное программирование/ С. В. Мизрохи. - М.: Финансы и статистика, 1992. - 193 с.

  12. Озеров В. «Советы по Delphi». - М:1999, - 356 с.

  13. Пестриков, В. М. Delphi на примерах / В. М. Пестриков, А. Н. Маслобоев. -- СПб. : БХВ-Петербург, 2005. -- 496 с.

  14. Рубенкинг Н. «Программирование в Delphi для “чайников”» К.:Диалектика, 1996

  15. Семакин И.Г., Шестаков А.П. Основы программирования: Учебник. - М.: Мастерство, НМЦ СПО; Высшая школа, 2004. - 432 с.

  16. Фаронов В. В. Deiphi 6. Учебный курс / В. В. Фараонов. - СПб. : Питер, 2002. - 260с.

  17. Фаронов В.В. «DELPHI. Программирование на языке высокого уровня». - Питер, 2005.

  18. Федоров А. Г. Создание Windows-приложений в среде Delphi / А. Г. Федоров. - М. : ТОО «Компьютер Пресс», 1999. - 347 с.

  19. Фленов М. Е. Библия Delphi / М. Е. Фленов. -- 2-е изд. , перераб. и доп. - СПб. : БХВ-Петербург, 2008. -- 800 с.

  20. Хомоненко А. Самоучитель по Delphi 5. - СПб.: БХВ - Санкт-Петербург, 1999. - 496 с.






















Приложение 1.

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

На тему: «Обработка файлов в среде Delphi»

Задание 1: Создайте приложение, которое создает текстовый файл text1.txt и записывает в него текст, введенный пользователем в окно Edit, после чего закрывает файл.

Решение:

Создайте форму и задайте для ее свойства Caption значение «Создание файла и вывод в него текста». Разместите на форме компоненты Edit1, Labbel1, Button1, как показано на рис. 1. Задайте значения для свойства Label1. Caption – «Введите текст», Button1. Caption – «Сохранить». Выровняйте компоненты и зафиксируйте их положение на форме.
Сохраните файлы модуля под именем main и проекта под именем TextEditFile в папке Обработка текстовых файлов.
 

Создание файла и вывод в него текста


Введите текст


Сохранить


Рис. 1 Пример формы проекта

Создайте процедуру обработки события кнопки «Сохранить», введите в окне Редактора кода следующий текст:

procedure TForm1. Button1Click (Sender: TObject);
var
f: TextFile; {описание файловой переменной}
begin
AssignFile (f, 'text1.txt'); {связь файловой переменной с файлом}
Rewrite(f); {создать новый файл}
Writeln (f, Edit1. Text); {записать в файл}
CloseFile(f); end; {закрыть файл}

Запустите приложение и введите в окно Edit следующее предложение – «Мой первый пример текста». Щелкните мышкой на кнопке «Сохранить» и закройте окно приложения.

Откройте окно Проводника Windows папку Обработка текстовых файлов, в которой сохранены файлы проекта. В списке файлов этой папки находится вновь созданный файл text1.txt. Дважды щелкните левой кнопкой мыши на имени файла text1.txt. Убедитесь, что это – тот самый текст, который введен в окне приложения. Откроется окно редактора Блокнот с этим файлом. Закройте окно редактора Блокнот и Проводник.

Задание 2: Создайте приложение, открывающее текстовый файл для чтения и считывающие из него текст в окно Memo. Перед открытием файла следует проверить его наличие, в случае его отсутствия должно выводиться соответствующее сообщение.
Решение:
Создайте новое приложение (проект). Создайте форму «Чтение текста из файла в окно». На форме разместите компоненты Memo1, Label1, Button1, как показано на рис. 2. Задайте значения свойств Label1. Caption – «Текст из файла», Button1. Caption – «Прочитать текст из файла».
Для удаления текста Memo1 из компонента выберите в окне Инспектора объектов объект Memo1, затем на странице Свойства выберите свойсво Lines и в поле со значением Strings произведите двойной щелчок. После этого в окне StringListEditor удалите текст и щелкните мышью на кнопке ОК.
Для обеспечения возможности просмотра в окне Memo1 длинных текстов с использованием вертикальной полосы прокрутки в окне Инспектора объектов выберите свойство ScrollBars значение ssVertical. Выровняйте компоненты и зафиксируйте их положение на форме.
 SHAPE  \* MERGEFORMAT

Чтение текста из файла в окно


Прочитать текст из файла


Текст из файла


Мой первый пример текста


Рис. 2 Пример формы приложения

Создайте процедуру обработки события кнопки «Прочитать текст из файла», отредактируйте текст процедуры следующим образом:

procedure TForm1. Button1Click (Sender: TObject);
var f: TextFile;
ch: Char;
begin
AssignFile (f, 'text1.txt');
{$I-}
Reset(f);
{$I+}
if IOResult=0 then begin
while not Eof(f) do
begin
Read (f, ch);
Memo1. Text:=Memo1. Text+ch;
end;
CloseFile(f);
end else
ShowMessage ('Нет такого файла');
end;

Сохраните файл модуля под именем main1, а файл проекта – под именем TextMemoFile1 в папке Обработка текстовых файлов. Откомпилируйте и запустите приложение, проверьте его работу.
Задание 3: Создайте приложение, открывающее текстовый файл для дополнения и затем добавляющее в него введенный текст.
Решение:
Создайте новый проект, задайте название формы «Добавление текста в файл». На форме разместите компонентыButton1,2, Memo1, Label1,2, Edit1 как показано на рис. 3. Присвойте значения свойствам Label1. Caption – «Текст из файла», Button1. Capton – «Прочитать текст из файла», Label2. Caption – «Добавляемый текст», Button2. Caption – «Добавить текст в файл». Удалите текст из компонентов Memo1, Edit1. Установите линейку вертикальной прокрутки для обеспечения возможности просмотра длинных текстов в компоненте Memo1. Выровняйте компоненты и зафиксируйте их положение на форме.

 SHAPE  \* MERGEFORMAT

Добавление текста в файл


Прочитать текст из файла


Текст из файла


Добавить текст в файл


Рис. 3 Пример формы приложения

Создайте обработчик нажатия кнопки «Прочитать текст из файла» самостоятельно. Для кнопки «Добавить текст в файл» запишите следующий код события:

Procedure TForm1. Button2Click (Sender: TObject);
Var
F: TextFile;
Begin
AssingFile (f, ‘text1.txt’);
Append (f);
Writeln (f, Edit1. Text);
CloseFile (f);
End;

Сохраните файл модуля под именем Main2, а файл проекта – под именем TextMemoFile2 в папке Обработка текстовых файлов.
Запустите и проверьте работу приложения.

Задание 4: Создайте приложение, которое открывает текстовый файл с использованием метода OpenDialog, считывает текст из него в объект Memo, затем сохраняет измененный текст в файл с использованием метода SaveDialog и выводит текст на печать, используя метод PrintDialog.

Решение:
Создайте новый проект и сохраните в папке «Диалоговая панель». На форме разместите компоненты Memo1, Button1,2,3. Кнопки назовите «Сохранить», «Открыть», «Печать» соответственно. Задайте компоненту Memo1 вертикальную полосу прокрутки и удалите текст. Выровняйте и зафиксируйте компоненты на форме (см. рис. 4).
 SHAPE  \* MERGEFORMAT

Пример с диалоговыми окнами


Сохранить


Открыть


Печать


Рис. 4 Форма проекта «Диалоговая панель»

Выберите в палитре компонентов страницу Dialog и поместите на форму компоненты OpenDialog, SaveDialog, PrintDialog. Так как они не являются визуальными компонентами, то их можно поместить в любое место формы.

Задайте для свойства SaveDialog. Title значение «Сохранить текстовый файл», которое будет отображаться в заголовке диалогового окна сохранения файла. Чтобы при сохранении файла в окне диалога обеспечить выбор типа файла, выберите свойство Filter и произведите двойной щелчок в списке значений. Откроется окно FilterEditor. Задайте фильтры для выбора типа и расширения файла:

Filter Name

Filter

Текстовый (*.txt)

*.txt

Текстовый (*.doc)

*.doc

И щелкните по кнопке ОК, затем установите расширение *.txt по умолчанию – задайте свойству SaveDialog1. FilterIndex значение 1.

Задайте для свойства OpenDialog1. Title – «Открыть текстовый файл». Чтобы реализовать выбор типа файла при открытии файла в окне диалога, на странице Свойства произведите двойной щелчок по списку значений свойства Filter. В окне Filter Editor задайте фильтры для выбора типа и расширения файла:

Filter Name

Filter

Текстовый (*.txt)

*.txt

Все файлы (*.*)

*.*

И щелкните по кнопке ОК, затем установите расширение *.txt по умолчанию – задайте свойству OpenDialog1. FilterIndex значение 1.

Чтобы в диалоговом окне Печать включить возможность выбора диапазона печатаемых страниц и печати выделенного фрагмента, задайте для свойств PrintDialog1. Options.poPageNums и PrintDialog1. Options.poSelection значение True.

После этого в раздел описания модулей добавьте в список USES модуль PRINTERS, чтобы не вводить свою переменную. Этот модуль позволяет управлять процессом печати.

Отредактируйте раздел описания переменных:

Var
Form1: TForm1;
FName: string;
F: TextFile;
S: string;
Создайте процедуры обработки событий трех кнопок, следующим образом:
1)                сохранение:
procedure TForm1. Button1Click (Sender: TObject);
begin
fName:='Text1';
SaveDialog1. FileName:=FName;
if SaveDialog1. Execute then begin
fName:=SaveDialog1. FileName;
case SaveDialog1. FilterIndex of
1: fName:=fName+'.txt';
2: fName:=fName+'.doc';
end;
Memo1. Lines. SaveToFile(fName);
end;
end;
2)                открытие:
procedure TForm1. Button2Click (Sender: TObject);
begin
if OpenDialog1. Execute then
begin
AssignFile (f, OpenDialog1. FileName);
fName:=OpenDialog1. FileName;
Reset(F);
Readln (F, s);
Memo1. Text:=s;
CloseFile(F);
end;
end;
3)                печать:
procedure TForm1. Button3Click (Sender: TObject);
begin
if PrintDialog1. Execute then
begin
AssignPrn(f);
Rewrite(F);
Writeln (f, Memo1. Text);
System. CloseFile(f);
end;
end;










48


-80%
Курсы дополнительного образования

Создание динамических веб-страниц с помощью PHP и MySQL

Продолжительность 72 часа
Документ: Cвидетельство о прохождении курса
4000 руб.
800 руб.
Подробнее
Скачать разработку
Сохранить у себя:
Учебно-методическое пособие на тему "Файлы в Delphi". (1.31 MB)

Комментарии 0

Чтобы добавить комментарий зарегистрируйтесь или на сайт