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();

  }


 

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

18840. Определение входного сопротивления 79.52 KB
  Определение входного сопротивления Опишем линейную модель усилителя системой уравнений в соответствии с 1 и 2 законами Кирхгофа: Из уравнения 2 определим: и подставим в уравнение 1. Отсюда находим входное сопротивление транзистора. При напряжении колл...
18841. Определение коэффициента усиления по напряжению 225.45 KB
  Определение коэффициента усиления по напряжению Для этого воспользуемся следующей методикой: Рис. 3.10 упрощенная схема замещения усилителя с ОЭ. Предположим что входное и выходное напряжения синфазны пусть по отношению к общей шине распложен как показано на Ри
18842. Определение коэффициента усиления по току 60.28 KB
  Определение коэффициента усиления по току. Коэффициент усиления по току определяется как: Где а . Следовательно получим: . Из выражения следует что коэффициент усиления по току . Для увеличения ki следует уменьшать RН однако начиная с определенного значения RН на...
18843. Определение выходного сопротивления 378.4 KB
  Определение выходного сопротивления. Выходное сопротивление можно определить двумя способами. 1 Отключить сопротивление нагрузки. Замкнуть активный источник входного сигнала. Подвести к выходным зажимам усилителя переменное напряжение . Рассчитать переменный ток ...
18844. Схема с общим эмиттером 108.35 KB
  Схема с общим эмиттером. Схема усилителя представлена на рисунке 3.6. Назначения элементов аналогичны представленной ранее схемы. Рис. 3.6 принципиальная схема усилителя с ОЭ...
18845. Расчет схемы по постоянному току 153.47 KB
  Расчет схемы по постоянному току. Режим работы схемы по постоянному току определяется элементами: RЭ RБ EК и параметрами транзистора. Аналогично как и для схемы с общим эмиттером выходную и входную цепи можно описать следующими системами уравнений: Т. к. I
18846. Расчет по переменному току 237.08 KB
  Расчет по переменному току. Представим схему замещения усилителя с ОК для расчета каскада по переменному току см. Рис. 3.16. при этом примем следующие допущения: зажимы и источника питания по переменному току считаем однопотенциальными за счет низкого внутреннег...
18847. Определение коэффициента усиления по току 51.07 KB
  Определение коэффициента усиления по току. Коэффициент усиления по току можно определить как отношение выходного тока ко входному: где ток нагрузки входной ток эмиттерного повторителя. Подставив значения IН и IВх в формулу для ki получим: . Поскольку доп
18848. Определение выходного сопротивления 229.72 KB
  Определение выходного сопротивления. Для определения выходного сопротивления повторителя воспользуемся методикой изложенной в разделе. модель каскада приведена на. С учетом того что замыкание активного источника ЭДС произведем вместе с его внутрен