Практична робота: Робота з файлами в Lazarus. 10 клас

Про матеріал

Практична робота: Робота з файлами в Lazarus. 10 клас. Допомога вчителю інформатики для 10 класу профільного рівня за новою програмою. Використані матеріали з інших джерел. Розробила вчитель інформатики Цодікова Л.М.

Перегляд файлу

Практична робота: Робота з файлами.

Мета: навчитися привязувати фал до програми в Lazarus.

Обладнання: Lazarus.

Хід роботи:

  1. Теоретичний матеріал:

Робота з текстовим файлом, який має тип TextFile. Для доступу до записів застосовуються процедури Read і Readln для читання, Write і Writeln для запису. У всіх цих процедурах першим параметром йде файлова змінна, а другим - список аргументів. Аргументами можуть бути одна або кілька змінних строкового, символьного або числового типу. Для прикладу, створимо просте додаток, що дозволяє працювати з текстовим файлом, заносячи в нього через підрядник текст з рядка TEdit.

  1. Практична частина

Завдання: створити простий додаток, що дозволяє працювати з текстовим файлом, заносячи в нього через підрядник текст з рядка TEdit.

  1. Відкрийте Lazarus з новим проектом. У Caption форми напишіть "Робота з текстовим файлом". Збережіть проект в папку ПІБ, клас.
  2. Встановіть на форму компонент TEdit і подовжити його, щоб користувач міг ввести довгий рядок. Очистіть у компонента властивість Text. Нижче встановіть дві кнопки, в Caption першої напишіть "Додати в файл", другий - "Вважати з файлу". Розтягніть їх, щоб текст на кнопках не здавалося прилип до країв. Ще нижче встановіть TMemo. Відкрийте редактор властивості Lines і видаліть звідти текст. Розтягніть компонент за розміром Edit1.

Форма проекта

  1. З підготовчою частиною закінчили, займемося програмуванням кнопок. Згенеруйте подію OnClick для першої кнопки. Її код буде таким:

procedure TForm1.Button1Click(Sender: TObject);

var

  tf: TextFile;  // текстовий файл

  s: String;

begin

  // якщо користувач не ввів рядок в Edit1, просто вийдемо з процедури:

  if Edit1.Text = '' then exit;

  // інакше в s отримуємо текст:

  s:= Edit1.Text;

  // потім пов'язуємо файлову змінну tf з файлом mytext.txt:

  AssignFile(tf, 'mytext.txt');

  // далі може виникнути виняткова ситуація, тому

  // укладемо небезпечний код в блок try-finally-end:

  try

    // якщо файлу немає (кнопку натиснули перший раз), створимо його:

    if not FileExists('mytext.txt') then Rewrite(tf)

    // інакше відкриємо для запису, встановивши покажчик в кінець файлу:

    else Append(tf);

    // тут просто записуємо рядок в файл:

    Writeln(tf, s);

    // очищаємо Edit1, щоб користувач бачив, що подія відбулася:

    Edit1.Text:= '';

  finally

    CloseFile(tf); // закриваємо файл

  end;

end;

  1. Код другої кнопки:

procedure TForm1.Button2Click(Sender: TObject);

var

  tf: TextFile;  // текстовий файл

  s: String;

begin

  // якщо файлу немає, просто виходимо:

  if not FileExists('mytext.txt') then exit;

  // інакше спочатку очищаємо Memo1:

  Memo1.Clear;

  // пов'язуємо файлову змінну tf з файлом mytext.txt:

  AssignFile(tf, 'mytext.txt');

  // далі може виникнути виняткова ситуація, тому

  // укладемо небезпечний код в блок try-finally-end:

  try

    Reset(tf); // відкрили файл для читання, покажчик на початку файлу

    // робимо, поки не кінець файлу:

    while not Eof(tf) do begin

      Readln(tf, s); // читаємо в s черговий рядок

      Memo1.Lines.Add(s);  // додаємо цей рядок в Memo1

    end;

  finally

    CloseFile(tf); // закриваємо файл

  end;

end;

За коментарями зрозуміло, яким чином відбувається читання. Зверніть увагу, для запису ми скористалися процедурою Writeln, а не Write, а при читанні - Readln, а не Read. Це позбавило нас від необхідності піклуватися про вставці і пошуку символів кінця рядка, рекомендую вам завжди використовувати такий, більш зручний спосіб. Весь алгоритм зчитування рядків ми помістили в блок while-do і зчитували текст рядок за рядком, поки функція Eof не повернула True, тобто, поки файл не закінчився.

  1. Програма в дії:

Программа в действии

  1. Зберегти зміни в проекті. Продемонструвати вчителю роботу.

Використано матеріал: http://intuit.valrkl.ru/course-1265/index.html#ID.23.lecture

 

 

 

docx
Додано
27 листопада 2018
Переглядів
1383
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку