Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 12.05.2018, 16:54   #1
arnora
Пользователь
 
Регистрация: 27.11.2017
Сообщений: 13
Репутация: 10
По умолчанию Помогите исправить ошибку "Исключение не обработано"

Код:

#pragma endregion
		String ^fileName;

	private: System::Void открытьToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
		
		openFileDialog1->ShowDialog();
		if (openFileDialog1->FileName == nullptr) return;
		fileName = openFileDialog1->FileName;
		fileName = "laba.txt";

		try
		{

			System::Text::Encoding^ Кодировка = System::Text::Encoding::GetEncoding(1251);
			auto data = gcnew IO::StreamReader(fileName, Кодировка);
			String^ str;
			array<String^>^split;
			int i = 0;
			while ((str = data->ReadLine()) != nullptr)
			{
				split = str->Split(' ');
				dataGridView1->RowCount++;
				dataGridView1->Rows[i]->Cells[0]->Value = split[0];
				dataGridView1->Rows[i]->Cells[1]->Value = split[1];
				dataGridView1->Rows[i]->Cells[2]->Value = split[2];
				i++;
			}
			data->Close();
		}
		catch (IO::FileNotFoundException^ Error)
		{
			MessageBox::Show(Error->Message + "\n Файл не найден!",
				"Ошибка", MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
		}
	}
private: System::Void сохранитьToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
	int i, j;
	fileName = "laba2.txt";
	try
	{
		if (fileName == nullptr)
		{
			
			saveFileDialog1->ShowDialog();
			if (saveFileDialog1->FileName == nullptr) return;

			System::Text::Encoding^ Кодировка = System::Text::Encoding::GetEncoding(1251);
			fileName = saveFileDialog1->FileName;
			auto data = gcnew IO::StreamWriter(fileName, false, Кодировка);
			String^ str2;

			for (i = 0; i < 3; i++)
			{
				str2 = Convert::ToString(dataGridView1->Rows[i]->Cells[i]->Value);
				for (j = 1; j < 3; j++)
					str2 = str2 + " " + dataGridView1->Rows[i]->Cells[j]->Value;
				data->WriteLine(str2);
			}
			data->Close();
		}
		else {
			System::Text::Encoding^ Кодировка = System::Text::Encoding::GetEncoding(1251);
			auto data = gcnew IO::StreamWriter(fileName, false, Кодировка);
			String^ str2;

			for (i = 0; i < 3; i++)
			{
				str2 = Convert::ToString(dataGridView1->Rows[i]->Cells[i]->Value);
				for (j = 1; j < 3; j++)
					str2 = str2 + " " + dataGridView1->Rows[i]->Cells[j]->Value;
				data->WriteLine(str2);
			}
			data->Close();
		}

	}
	catch (IO::FileNotFoundException^ Error)
	{
		MessageBox::Show(Error->Message + "\n Данные не верны!",
			"Ошибка", MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
	}
}
private: System::Void openFileDialog1_FileOk(System::Object^  sender, System::ComponentModel::CancelEventArgs^  e) {
	openFileDialog1->FileName = "laba.txt";
	openFileDialog1->Filter = "Текстовые файлы (*.txt)|*.txt|All files (*.*)|*.*";
}
private: System::Void saveFileDialog1_FileOk(System::Object^  sender, System::ComponentModel::CancelEventArgs^  e) {
	saveFileDialog1->FileName = "laba2.txt";
	saveFileDialog1->Filter = "Текстовые файлы(*.txt) | *.txt | All files(*.*) | *.*";
}
private: System::Void сохранитьКакToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
	saveFileDialog1->ShowDialog();
	if (saveFileDialog2->FileName == nullptr) return;
	fileName = saveFileDialog2->FileName;

	int i, j;

	try
	{
		if (fileName == nullptr)
		{
			saveFileDialog2->ShowDialog();
			if (saveFileDialog2->FileName == nullptr) return;

			System::Text::Encoding^ Кодировка = System::Text::Encoding::GetEncoding(1251);
			fileName = saveFileDialog2->FileName;
			auto data = gcnew IO::StreamWriter(fileName, false, Кодировка);
			String^ str2;

			for (i = 0; i < 3; i++)
			{
				str2 = Convert::ToString(dataGridView1->Rows[i]->Cells[i]->Value);
				for (j = 1; j < 7; j++)
					str2 = str2 + " " + dataGridView1->Rows[i]->Cells[j]->Value;
				data->WriteLine(str2);
			}
			data->Close();
		}
		else {
			System::Text::Encoding^ Кодировка = System::Text::Encoding::GetEncoding(1251);
			auto data = gcnew IO::StreamWriter(fileName, false, Кодировка);
			String^ str2;

			for (i = 0; i < 3; i++)
			{
				str2 = Convert::ToString(dataGridView1->Rows[i]->Cells[i]->Value);
				for (j = 1; j < 7; j++)
					str2 = str2 + " " + dataGridView1->Rows[i]->Cells[j]->Value;
				data->WriteLine(str2);
			}
			data->Close();
		}

	}
	catch (IO::FileNotFoundException^ Error)
	{
		MessageBox::Show(Error->Message + "\n Данные введины не верны!",
			"Ошибка", MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
	}
}
private: System::Void выходToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
	auto Mbox = MessageBox::Show("\nСохранить изменения?", "Моя программа",
		MessageBoxButtons::YesNo, MessageBoxIcon::Exclamation);
	{
		int i, j;

		if (fileName == nullptr)
		{
			saveFileDialog1->ShowDialog();
			if (saveFileDialog1->FileName == nullptr) return;

			System::Text::Encoding^ Кодировка = System::Text::Encoding::GetEncoding(1251);
			fileName = saveFileDialog1->FileName;
			auto data = gcnew IO::StreamWriter(fileName, false, Кодировка);
			String^ str2;

			for (i = 0; i < 3; i++)
			{
				str2 = Convert::ToString(dataGridView1->Rows[i]->Cells[i]->Value);
				for (j = 1; j < 7; j++)
					str2 = str2 + " " + dataGridView1->Rows[i]->Cells[j]->Value;
				data->WriteLine(str2);
			}
			data->Close();
		}
		else {
			System::Text::Encoding^ Кодировка = System::Text::Encoding::GetEncoding(1251);
			auto data = gcnew IO::StreamWriter(fileName, false, Кодировка);
			String^ str2;

			for (i = 0; i < 3; i++)
			{
				str2 = Convert::ToString(dataGridView1->Rows[i]->Cells[i]->Value);
				for (j = 1; j < 7; j++)
					str2 = str2 + " " + dataGridView1->Rows[i]->Cells[j]->Value;
				data->WriteLine(str2);
			}
			data->Close();
		}


	}
}
private: System::Void saveFileDialog2_FileOk(System::Object^  sender, System::ComponentModel::CancelEventArgs^  e) {
	saveFileDialog2->Filter = "Текстовые файлы(*.txt) | *.txt | All files(*.*) | *.*";
}
};
}

______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.
Изображения
Тип файла: jpg 2018-05-12 (2).jpg (101.0 Кб, 7 просмотров)

Последний раз редактировалось Alex11223; 12.05.2018 в 17:08.
arnora вне форума   Ответить с цитированием
Старый 12.05.2018, 17:08   #2
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 16,826
Репутация: 3300

icq: 512-765
skype: alexp.frl
По умолчанию

Так в ней же все написано.
Alex11223 вне форума   Ответить с цитированием
Старый 12.05.2018, 17:54   #3
arnora
Пользователь
 
Регистрация: 27.11.2017
Сообщений: 13
Репутация: 10
По умолчанию

А как это исправить?
arnora вне форума   Ответить с цитированием
Старый 12.05.2018, 18:05   #4
Alex11223
Модератор
Заслуженный модератор
 
Регистрация: 12.01.2011
Сообщений: 16,826
Репутация: 3300

icq: 512-765
skype: alexp.frl
По умолчанию

Для начала определить что именно выходит за пределы (в этой строке 2 варианта).
Alex11223 вне форума   Ответить с цитированием
Старый 12.05.2018, 18:36   #5
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 12,041
Репутация: 2054

icq: 216409213
По умолчанию

Так ясно, что j. Иначе оно вывалилось бы на 0,1 или 0,2. Может ТС забыл, что нумерация с 0?
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите исправить ошибку в строке for(p=s; (p=strstr(p, "000"))!=NULL; ) (значение типа char нельзя присвоить сущности типа char DEXTER322 Помощь студентам 1 22.02.2017 18:51
Помогите исправить ошибку: вывести все "недопалиндромы" из указанного диапазона (от a до b). "недопалиндром" - число которое само не является палиндромов,но сумма его цифр является jeppa Паскаль 8 06.10.2016 11:57
Не могу исправить ошибку "Сортировка массива" Snejok.dav.2580 Помощь студентам 2 11.10.2015 08:16
как исправить ошибку "chacheManager error: Writing index data failed!" spravka Помощь студентам 3 07.11.2010 02:42
как исправить ошибку "File not found: 'IdTCPConnection.dcu'" Даниил_глазко Работа с сетью в Delphi 4 02.11.2010 13:44


04:17.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru