Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.
Внимание! Некоторое время письма не доходят до аккаунтов MAIL RU GROUP, не доходят на все почтовые ящики mail.ru, inbox.ru, bk.ru. Пишите им жалобы, чтобы быстрее восстановили получение писем, регистрируйтесь через яндекс почту и gmail, туда письма с активизацией доходят.

Вернуться   Форум программистов > 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
Сообщений: 17,401
Репутация: 3353

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
Сообщений: 17,401
Репутация: 3353

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

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

Так ясно, что 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


23:50.


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

RusProfile.ru


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