Advertisement
kirya_shkolnik

Никита - сохранение, ввод из файла. Курсач

Nov 8th, 2021
1,021
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.02 KB | None | 0 0
  1.  
  2.        // ЭТО ПРОСТО СКОПИРОВАТЬ И ВСТАВИТЬ
  3.        // НАЧАЛО КОПИРОВАТЬ-ВСТАВИТЬ
  4.        String^ DelSpace(String^ str) {
  5.            str = str->Trim();
  6.            while (str->IndexOf("  ") >= 0) {
  7.                str = str->Replace("  ", " ");
  8.            }
  9.            return str;
  10.        }
  11.  
  12.        void openFile(TextBox^ inp, TextBox^ filename) { // куда вписать данные, куда вписать название файла
  13.            OpenFileDialog^ openFileDialog = gcnew OpenFileDialog;
  14.            openFileDialog->Title = "Открытие входногого файла";
  15.            openFileDialog->InitialDirectory = "C:\\";
  16.            openFileDialog->Filter = "Текстовый файл (*.txt)|*.txt";
  17.            openFileDialog->FilterIndex = 1;
  18.            openFileDialog->ShowReadOnly = true;
  19.            openFileDialog->ReadOnlyChecked = true;
  20.            openFileDialog->RestoreDirectory = true;
  21.            if (openFileDialog->ShowDialog() == System::Windows::Forms::DialogResult::OK) {
  22.                filename->Text = openFileDialog->FileName;
  23.                try {
  24.                    StreamReader^ sr = gcnew StreamReader(openFileDialog->FileName);
  25.                    String^ InBuffer = "";
  26.                    String^ outputtext = "";
  27.                    while (InBuffer = sr->ReadLine()) {
  28.                        if (InBuffer->Length == 0) continue; // Если строка пустая пропустить
  29.                        outputtext += InBuffer; //Собираем строки из входного файла в одну строку
  30.  
  31.                    }
  32.  
  33.                    outputtext = DelSpace(outputtext);
  34.                    inp->Text = outputtext; // Записываем полученную строку в техктбокс
  35.                    if (sr) sr->Close();
  36.                }
  37.                catch (Exception ^ ex) {
  38.                    MessageBox::Show(ex->Message, "Ошибка", MessageBoxButtons::OK, MessageBoxIcon::Error);
  39.                    return;
  40.                }
  41.            }
  42.            else {
  43.                filename->Text = "";
  44.            }
  45.        }
  46.  
  47.        void openFile(RichTextBox^ inp, TextBox^ filename) { // куда вписать данные, куда вписать название файла
  48.            OpenFileDialog^ openFileDialog = gcnew OpenFileDialog;
  49.            openFileDialog->Title = "Открытие входного файла";
  50.            openFileDialog->InitialDirectory = "C:\\";
  51.            openFileDialog->Filter = "Текстовый файл (*.txt)|*.txt";
  52.            openFileDialog->FilterIndex = 1;
  53.            openFileDialog->ShowReadOnly = true;
  54.            openFileDialog->ReadOnlyChecked = true;
  55.            openFileDialog->RestoreDirectory = true;
  56.            if (openFileDialog->ShowDialog() == System::Windows::Forms::DialogResult::OK) {
  57.                filename->Text = openFileDialog->FileName;
  58.                try {
  59.                    StreamReader^ sr = gcnew StreamReader(openFileDialog->FileName);
  60.                    String^ InBuffer = "";
  61.                    String^ outputtext = "";
  62.                    while (InBuffer = sr->ReadLine()) {
  63.                        if (InBuffer->Length == 0) continue; // Если строка пустая пропустить
  64.                        outputtext += InBuffer; //Собираем строки из входного файла разделяя строки
  65.                        outputtext += "\n";
  66.                    }
  67.  
  68.                    //outputtext = DelSpace(outputtext);
  69.                    inp->Text = outputtext; // Записываем полученную строку в техктбокс
  70.                    if (sr) sr->Close();
  71.                }
  72.                catch (Exception ^ ex) {
  73.                    MessageBox::Show(ex->Message, "Ошибка", MessageBoxButtons::OK, MessageBoxIcon::Error);
  74.                    return;
  75.                }
  76.            }
  77.  
  78.            else {
  79.                filename->Text = "";
  80.            }
  81.        }
  82.  
  83.  
  84.        void saveFile(String^ out, TextBox^ filename) { // строка вывода, куда вписать название файла
  85.            SaveFileDialog^ saveFileDialog = gcnew SaveFileDialog;
  86.            saveFileDialog->Title = "Открытие выходного файла";
  87.            saveFileDialog->Filter = "Текстовый файл (*.txt)|*.txt";
  88.            saveFileDialog->FilterIndex = 1;
  89.            saveFileDialog->OverwritePrompt = true;
  90.            if (saveFileDialog->ShowDialog() == System::Windows::Forms::DialogResult::OK) {
  91.                filename->Text = saveFileDialog->FileName;
  92.                try {
  93.                    if (out->Length > 0) {
  94.                        StreamWriter^ sw = gcnew StreamWriter(saveFileDialog->FileName, true);
  95.                        sw->WriteLine(out + "\n\n\n");            // Вывод результата
  96.                        if (sw) sw->Close();
  97.                    }
  98.                    else {
  99.                        MessageBox::Show("Результат не найден. Результат записан не будет",
  100.                            "Ошибка",
  101.                            MessageBoxButtons::OK,
  102.                            MessageBoxIcon::Error); // Если в строке Res пусто
  103.                    }
  104.                }
  105.                catch (Exception ^ ex) {
  106.                    MessageBox::Show(ex->Message, "Ошибка", MessageBoxButtons::OK, MessageBoxIcon::Error);
  107.                    return;
  108.                }
  109.                MessageBox::Show("Успешно сохранено", "Успех!", MessageBoxButtons::OK, MessageBoxIcon::Information);
  110.            }
  111.            else  filename->Text = "";
  112.        }
  113.        // КОНЕЦ КОПИРОВАТЬ-ВСТАВИТЬ
  114.  
  115.  
  116.        // ЭТО САМОМУ СОЗДАТЬ МЕТОДЫ (ДВА РАЗА НА КНОПКУ ТЫКАЕШЬ И ПИШЕШЬ ТУДА ПРИМЕРНО ТАКОЙ КОД)
  117. private: System::Void button13_Click(System::Object^ sender, System::EventArgs^ e) { // Первая задача кнопка ввода
  118.     textBox9->Text = ""; // textBox результата первой задачи (скорее всего не изменится название, но на всякий)
  119.     openFile(textBox5, textBox15); // textBox5 - исходные данные, textBox15 - имя файла
  120. }
  121.  
  122. private: System::Void button12_Click(System::Object^ sender, System::EventArgs^ e) { // Первая задача кнопка вывода
  123.     saveFile("Исходный массив" + textBox5->Text + "\n\n" + "Обработанный массив: " + textBox9->Text, textBox12);  // textBox5 - исходные данные,  textBox9 - результат, textBox12 - название файла
  124. }
  125.  
  126.  
  127. private: System::Void button16_Click(System::Object^ sender, System::EventArgs^ e) { // Вторая задача кнопка ввода
  128.     mat1->Text = ""; mat2->Text = ""; // mat1 - исходные данные,  mat2 - результат
  129.     openFile(mat1, textBox14); // mat1 - исходные данные textBox14 - название файла
  130. }
  131.  
  132.  
  133. private: System::Void button15_Click(System::Object^ sender, System::EventArgs^ e) { // Вторая задача кнопка вывода
  134.     saveFile(mat1->Text + "\n\n" + "Результат: " + mat2->Text, textBox13); // mat1 - исходные данные mat2-результат, textBox13 - название файла
  135. }
  136.  
  137.  
  138.  
  139. private: System::Void button17_Click(System::Object^ sender, System::EventArgs^ e) { // Третья задача кнопка ввода
  140.     textBox4->Text = ""; textBox6->Text = ""; // textBox6 - исходные данные,  textBox4 - результат
  141.     openFile(textBox6, textBox19); // textBox6 - исходные данные,  textBox19 - Название файла
  142. }
  143.  
  144.  
  145. private: System::Void button9_Click(System::Object^ sender, System::EventArgs^ e) { // Третья задача кнопка вывода
  146.     saveFile(textBox6->Text + "\n\n" + "Результат: " + textBox4->Text, textBox20); // textBox6 - исходные данные, textBox4 - рез,  textBox20 - Название файла
  147. }
  148.  
  149.  
  150. private: System::Void button19_Click(System::Object^ sender, System::EventArgs^ e) { // Четвертая задача кнопка ввода
  151.     textBox7->Text = ""; textBox8->Text = ""; // textBox7 - исходные данные,  textBox8 - результат
  152.     openFile(textBox7, textBox17); // textBox7 - исходные данные,  textBox17 - название файла
  153. }
  154.  
  155.  
  156. private: System::Void button18_Click(System::Object^ sender, System::EventArgs^ e) { // Четвертая задача кнопка вывода
  157.     saveFile("Исходная строка:\n" + textBox7->Text + "\nРезультат:\n" + textBox8->Text, textBox16); // textBox7 - исходные данные,  textBox8 - результат textBox16 - название файла
  158. }
  159.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement