Шаг 169.
Microsoft Visual C++ 2010. Язык С/С++.
Компоненты Windows Forms. Дополнение к вводу/выводу файлов

    На этом шаге мы рассмотрим еще один способ чтения и записи в файл.

    Из текста приложения мы видели, что для ввода/вывода файлов применялись методы из класса File пространства имен System::IO, и что процедура подготовки к применению этих методов была довольно громоздкой: в файл строки вводились текстовым редактором, а потом уже обрабатывались. Однако можно избежать этой внешней процедуры и организовать первичный ввод данных прямо из приложения, если воспользоваться компонентом TextBox в многострочном режиме. Эта возможность показана в примере ниже.

.     .     .     .
namespace My169_1 {

	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;

	using namespace System::IO; // для ввода/вывода
.     .     .     .
	private:
		/// <summary>
		void SaveTextToFile(String ^File,TextBox ^tb)
		{
			File::Delete(File);
			//Приведение формата TextBox к формату array<>:
			array<String^>^ tempArray = 
                                  gcnew array<String^>( tb->Lines->Length ); 
			tempArray = textBox1->Lines; 
			File::WriteAllLines(File, tempArray);
		}
		// ------------------------------------------
		void ReadTextFromFile(String ^File,TextBox ^tb)
		{
			tb->Clear();
			tb->Lines = File::ReadAllLines(File);//возвращает String[]
		}
		// -------------------------------------------
		/// Требуется переменная конструктора.
		/// </summary>
		System::ComponentModel::Container ^components;
.     .     .     .
// Кнопка "Выход"
private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
	 Close();
 }
// Кнопка "Переписать"
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
	 String^ p = "d:\\file3.txt";
	 SaveTextToFile(p, textBox1); 
	 ReadTextFromFile(p, textBox2);
 }
Архив проекта можно взять здесь.

    Результат работы приложения приведен на рисунке 1.


Рис.1. Результат работы приложения

    Пояснение:

    Для работы с файлами созданы две функции: SaveTextToFile() и ReadTextFromFile(), а в форме размещены два компонента TextBox. В одном компоненте набирается необходимый текст (свойство Multiline этих компонентов установлено в значение True - поля компонентов можно растягивать до необходимых размеров и вводить в одно из них множество строк, завершая ввод каждой строки нажатием клавиши Enter). Затем нажимается кнопка Переписать, в обработчике которой набранный в TextBox текст записывается в файл, а затем из него читается и записывается в другой компонент.

    На следующем шаге мы рассмотрим компоненты CheckBox и RadioButton.




Предыдущий шаг Содержание Следующий шаг