Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IZVP_lab-novi.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
16.14 Mб
Скачать

Котрольні питання

  1. Яке призначення канви у C++ Builder?

  2. Які методи дозволяють вивести лінію?

  3. Як задаються парамтри при виводі прямокутника?

  4. За що відповідає властивість Transparent?

Лабораторна робота №5

Тема : Робота з файлами у Borland C++ Builder

Мета: Навчитись працювати з файлами у C++ Builder

ХІД РОБОТИ

  1. Створити програму Погода, форма якої приведена на рис.1, яка додає в текстовий файл, інформацію про температуру повітря.

  2. Кожний рядок файлу даних meteo.txt містить дату і значення температури. Якщо файлу даних в поточному каталозі немає, то програма створює його.

  3. Програму змінити так, щоб кнопка ОК була доступна тільки в тому випадку, якщо поле Температура містить дані.

Рис.1. Форма програми «Погода»

Приклад 1.

int f; // дескриптор файлу конструктор

__fastcall TForml::Tforml(TComponent* Owner): TForm(Owner)

{

//сьогоднішня дата не обведена колом

MonthCalendarl->ShowTodayCircle=false;

MonthCalendarl->Date = Now();

Buttonl->Enabled = false;

}

// змінився вміст поля редагування

void __fastcall TForml::EditlChange(TObject *Sender)

{

// кнопка "Додати" доступна, якщо в полі редагування

// знаходиться число. Якщо в полі символів немає або перший

// символ - "мінус", кнопка недоступна

if ((Editl->Text.Length()==0) ||

((Editl->Text.Length()==1) && [Editl->Text[1]==‘-’)))

Buttonl->Enabled = false;

else

Buttonl->Enabled = true;

}

// натискання на кнопці "Додати"

void__fastcall TForml::ButtonlClick(TObject *Sender)

{

AnsiString st;

/* файл можна відкрити в режимі fmCreate, тоді, якщо файл існує, він буде відкритий для запису, якщо файлу немає, то він буде створений */

st = MonthCalendarl->Date.DateString() + ‘ ‘ + Editl->Text + ‘\r\n’;

/* відкрити для запису або створити файл meteo.txt */

if (FileExists("meteo.txt"))

f= FileOpen("meteo.txt",fmOppenWrite);

else

f=FileCreate(“meteo.txt");//створити файл

if ( f != -1 ) {

// файл відкритий для запису

FileSeek(f,0,2); // встановити показник на кінець файлу

FileWrite(f,st.с_str(),st.Length());

FileClose(f);

Buttonl->Enabled = false;

} else

{

/* помилка доступу до файлу: не можливо створити, не можна відкрити */ ShowMessage("Помилка доступу до файлу: ні відкрити," "ні створити не вийшло");

}}

// в полі редагування можна ввести тільки додатнє або від’ємне число

-void__fastcall TForrol::Edit1KeyPress(TObjееt *Sender char &Key)

{

if (( Key >= '0') && (Key <= '9'))

return;

// десяткова крапка (кома)

if (( Key == '.') || (Key == ','))

{

Key =’,’;

if ( Editl->Text.Pos(',')!= 0 )

Key = 0;

return;

}

if ( Key == 8)

return;

if ((Key=='-') && (Editl-> Text.Length()==0)) //"мінус" може бути тільки першим символом

return;

// всі решта символи заборонені

Key = 0; }

// натискання в полі компоненту MottthCalendar

void__fastcall TFonnl::MonthCalendarlClick(TObject *Sender)

{

Editl->Text = ""; // очистити поле введення температури

Editl->SetFocus(); // встановити курсор в полі введення температури

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]