Advertisement
Guest User

Untitled

a guest
Jun 25th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. private: System::Void button7_Click(System::Object^ sender, System::EventArgs^ e) {
  2. if (textBox4->Text == "" || textBox5->Text == "") {
  3. textBox4->BackColor = BackColor.Red;
  4. textBox5->BackColor = BackColor.Red;
  5. MessageBox::Show("Заполните поля");
  6. }
  7. else {
  8. textBox4->BackColor = BackColor.White;
  9. textBox5->BackColor = BackColor.White;
  10. dataGridView1->Rows->Clear();
  11.  
  12. String^ path; // создаем переменную, в которую будем заносить путь программы
  13. path = Directory::GetCurrentDirectory(); // Заносим в перемнную путь данной программы
  14. path += "Dictionary.txt"; // Дописываем в переменную путь текстового файла (он лежит в след папке files)
  15. BinaryReader ^ bR = gcnew BinaryReader(File::Open(path, FileMode::Open)); // Инициализируем переменную потока бинарного ввода в файл
  16. try { // Для обработки исключений, если что-то пойдет не так
  17. int i = 0;
  18. arDictionary->Clear();
  19. while (bR->PeekChar() != -1) {
  20. Word^ word = gcnew Word;
  21. word->eng = bR->ReadString();
  22. word->rus = bR->ReadString();
  23. arDictionary->Add(word);
  24. i++;
  25. }
  26.  
  27. }
  28. catch (IOException ^ ex) { // Если сработало исключение
  29. MessageBox::Show(ex->Message); // Выводим сообщение об ошибке
  30. }
  31. finally{
  32. if (bR != nullptr) // Если поток вывода неравен пустоте не существует
  33. bR->Close(); // Закрываем файл
  34. }
  35. bR->Close();
  36. for (int i = 0; i < arDictionary->Count; i++)
  37. if (arDictionary[i]->eng == textBox4->Text)
  38. arDictionary[i]->rus = textBox5->Text;
  39.  
  40. // Запись в бинрный файл
  41.  
  42. BinaryWriter ^ bW = gcnew BinaryWriter(File::Open(path, FileMode::Create)); // Инициализируем переменную потока бинарного ввода в файл
  43. try { // Для обработки исключений, если что-то пойдет не так
  44.  
  45. for (int i = 0; i < arDictionary->Count; i++) {
  46. bW->Write(arDictionary[i]->eng);
  47. bW->Write(arDictionary[i]->rus);
  48. }
  49.  
  50. }
  51. catch (IOException ^ ex) { // Если сработало исключение
  52. MessageBox::Show(ex->Message); // Выводим сообщение об ошибке
  53. }
  54. finally{
  55. if (bW != nullptr) // Если поток вывода неравен пустоте не существует
  56. bW->Close(); // Закрываем файл
  57. }
  58. bW->Close();
  59.  
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement