41619

Текстовий редактор

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

Информатика, кибернетика и программирование

Лістинг програми fn=String::Empty; textChnged=flse; } prgm endregion privte: System::Void копіюватиToolStripMenuItem_ClickSystem::Object^ sender System::Eventrgs^ e { textBox1 Copy; } privte: System::Void копіюватиToolStripMenuItem1_ClickSystem::Object^ sender System::Eventrgs^ e { textBox1 Copy; } privte: System::Void вирізатиToolStripMenuItem_ClickSystem::Object^ sender System::Eventrgs^ e { textBox1 Cut; } privte: System::Void...

Украинкский

2013-10-24

122.58 KB

1 чел.

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

Варіант №8

Завдання:

Робота над проектом «Текстовий редактор».

Лістинг програми

fn=String::Empty;

  textChanged=false;

 }

#pragma endregion

 private: System::Void копіюватиToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {

    textBox1->Copy();

   }

private: System::Void копіюватиToolStripMenuItem1_Click(System::Object^  sender, System::EventArgs^  e) {

   textBox1->Copy();

  }

private: System::Void вирізатиToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {

   textBox1->Cut();

  }

private: System::Void вирізатиToolStripMenuItem1_Click(System::Object^  sender, System::EventArgs^  e) {

   textBox1->Cut();

  }

private: System::Void вставитиToolStripMenuItem1_Click(System::Object^  sender, System::EventArgs^  e) {

   textBox1->Paste();

  }

private: System::Void вставитиToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {

   textBox1->Paste();

  }

private:

String^ fn; //имя файла

 bool textChanged; //true - в текст внесені изменения

private: System::Void textBox1_TextChanged(System::Object^  sender, System::EventArgs^  e) {

   textChanged=true; //текст измене

  }

 //Записывает текст в файл

  //возвращает 0 или -1, если пользователь

  //в окне Сохранить нажмет кнопку Отмена

 private: int TextToFile()

   {System::Windows::Forms::DialogResult dr;

   int r=0;

   if(fn == String::Empty)

   { //Это новый документ

    //Запросить у пользовтеля имя файла

    //Отобразить диалог Сохранить

    dr =saveFileDialog1->ShowDialog();

    if (dr ==System::Windows::Forms::DialogResult::OK)

    {   fn=saveFileDialog1->FileName;

     r=0;

    }

    else 

    //в окне диалога Сохранить пользователь выбрал Отмена

    r=-1;

   }

   //сохранить файл

   if (r==0)

   {

    try

    {   //получим информаци о файле fn

     System::IO::FileInfo^ fi=gcnew System::IO::FileInfo(fn);

     //поток записи

     System::IO::StreamWriter^ sw=fi->CreateText();

     sw->Write(textBox1->Text);

     sw->Close(); //закрываем поток

     textChanged=false;

     r=0;

    }

    catch (System::IO::IOException^ e)

    {

     MessageBox::Show(e->ToString(),

                  "MEdit",

         MessageBoxButtons::OK,

         MessageBoxIcon::Error);

    }

   }

   return r;

   }

 //Проверяет, есть ли изменения в тексте,и сохраняет текст в файле

 //Возвращает 0 или -1, если пользователь

 //отказался от выполнения операции (нажал кнопку Отмена)

private: int SaveText()

  {System::Windows::Forms::DialogResult dr;

         int r;

   r=0;

   if (textChanged)

   {

    dr=MessageBox::Show("В текст внесены изменения. Сохранить измененный текст?",

    "MEdit",

    MessageBoxButtons::YesNoCancel,

    MessageBoxIcon::Warning);

    switch (dr)

    {

    case System::Windows::Forms::DialogResult::Yes:

    r=TextToFile();

    break;

    case System::Windows::Forms::DialogResult::No:

     r=0;

     break;

    case System::Windows::Forms::DialogResult::Cancel:

     r=-1;

     break;

    };

   }

   return r;

  }

 private: void OpenDocument()

   { System::Windows::Forms::DialogResult dr;

   int r;

   r=SaveText();

   if (r==0)

   {

    openFileDialog1->FileName=String::Empty;

    //Отоброзить диалог Открыть

    dr = openFileDialog1->ShowDialog();

    if (dr == System::Windows::Forms::DialogResult::OK)

    {

     fn = openFileDialog1->FileName;

             //Отобразить имя файла в заголовке окна

     this->Text=fn;

     try

     {

      //Считываем данные из файла

      System::IO::StreamReader^ sr=

      gcnew System::IO::StreamReader(fn);

      textBox1->Text=sr->ReadToEnd();

      textBox1->SelectionStart=textBox1->TextLength;

      sr->Close();

      textChanged=false;

     }

     catch (System::IO::FileLoadException^ e)

     {

      MessageBox::Show("Error:\n"+ e->Message,

                    "MEdit",

           MessageBoxButtons::OK,

           MessageBoxIcon::Error);

     }

    }

   }

   }

private: void SaveDocument()

  {int r;

  r=SaveText();

  if (r==0)

  {

   this->Text=fn;

   textChanged=false;

  }

  }

private: void NewDocument()

  {

   int r;

   r=SaveText();

   if (r==0)

   {

    this->Text="New Document";

    textBox1->Clear();

    textChanged=false;

    fn = String::Empty;

   }

  }

private: System::Void відкритиToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {

OpenDocument();

  }

private: System::Void зберегтиToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {

   SaveDocument();

  }

private: System::Void новийДокументToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {

   NewDocument();

  }


 

А также другие работы, которые могут Вас заинтересовать

17237. Компоненты СУБД MS SQL Server 93 KB
  Лекция №3 Компоненты СУБД MS SQL Server SQL Server реализуется в виде нескольких самостоятельных служб каждая из которых отвечает за выполнение определенного круга задач: MSSQLServer; SQLServerAgent; Microsoft Search MSSearch; Microsoft Distributed Transaction Coordinator MS DTС. MSSQLServer Основное яд...
17238. Представления СУБД MS SQL Server 40 KB
  Лекция №3_1 Представления Представление VIEW объект данных который не содержит никаких данных его владельца. Это тип таблицы чье содержание выбирается из других таблиц с помощью выполнения запроса. Поскольку значения в этих таблицах меняются то автоматически их з...
17239. Определение триггера в стандарте языка SQL 65.5 KB
  Лекция №4 Определение триггера в стандарте языка SQL Триггер это откомпилированная SQLпроцедура исполнение которой обусловлено наступлением определенных событий внутри базы данных. Триггеры особый инструмент SQLсервера используемый для поддержания целостности...
17240. Понятие хранимой процедуры 55.5 KB
  Лекция №5 Понятие хранимой процедуры Хранимые процедуры это группа связанных между собой операторов SQL или функций хранимых в откомпилированном виде. Использование хранимых процедур вместо отдельных операторов SQL дает пользователю следующие преимущества: хра
17241. ТАБЛИЧНЫЕ ПЕРЕМЕННЫЕ 53 KB
  Лекция №5_1 ТАБЛИЧНЫЕ ПЕРЕМЕННЫЕ В Microsoft SQL Server 2000 появился новый тип table используемый в языке TransactSQL. Тип table подобен временным таблицам. Тип table можно использовать только для определения локальных переменных и возврата значения из функции пользователя. Основно...
17242. Понятие курсора 76.5 KB
  Лекция №6 Понятие курсора Устно. Запрос к реляционной базе данных обычно возвращает несколько записей данных но приложение за один раз обрабатывает лишь одну запись. Даже если оно имеет дело одновременно с несколькими строками например выводит данные в форме электр
17243. Понятие транзакции 163 KB
  Лекция №7 Понятие транзакции Определение. Транзакция это последовательность операторов манипулирования данными выполняющаяся как единое целое все или ничего и переводящая базу данных из одного целостного состояния в другое целостное состояние. Транзакция об...
17244. Конфликты между транзакциями 77 KB
  Лекция №8 Конфликты между транзакциями Устно. Анализ проблем параллелизма показывает что если не предпринимать специальных мер то при работе в смеси нарушается свойство И изолированность транзакций. Транзакции реально мешают друг другу получать правильные резул
17245. Решение проблем параллелизма при помощи блокировок 164.5 KB
  Лекция №9 Решение проблем параллелизма при помощи блокировок Проанализируем поведение транзакций вступающих в конфликт при доступе к одним и тем же данным. Проблема потери результатов обновления Две транзакции по очереди записывают некоторые данные в одну и ту ж...