Запись в файл с использованием компонента SaveFileDialog 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Запись в файл с использованием компонента SaveFileDialog



Чтобы записать данные в файл выполните следующие действия:

1. Выберите в Панели элементов на вкладке Диалоговые окна элемент управления SaveFileDialog и добавьте его на форму в область невидимых элементов:

2. Настройте свойства элемента управления SaveFileDialog в окне Свойства:

· Filter=Название1|фильтр1|Название2|фильтр2…,

Например:

Filter= Текстовые файлы|*.txt|Все файлы|*.*

Filter= Текстовые файлы|*.txt

· DefaultExt=расширение – расширение, которое будет приписано к имени файл, если пользователь не ввел свое расширение. При этом свойство AddExtension (автоматическое приписывание расширения файлам) должно иметь значение true.

· FilterIndex=№ – индекс фильтра файлов по умолчанию. Нумерация начинается с единицы.

· InitialDirectory=путь/папка – исходная папка диалогового окна.

· Title=название – строка, отображаемая в заголовке программы

3. Подключите библиотеку System.IO с помощью команды using в разделе подключения библиотек:

using System.IO;

4. Для осуществления записи информации в текстовый файл необходимо прописать обработчик события для элемента управления, например обработчик нажатия кнопки:

private void button1_Click(object sender, EventArgs e)

{// Открываем стандартное окно Windows для сохранения информации в файл

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

// Создаем файловую переменную, ссылающуюся на имя файла, выбранного в диалоговом окне сохранения и открываем файл для записи

StreamWriter FS = new StreamWriter(saveFileDialog1.FileName);

// или

// StreamWriter FS = new StreamWriter(saveFileDialog1.FileName, true,

System.Text.Encoding.GetEncoding(1251));

// Записываем информацию в файл

FS.Write("Здесь можно вставить текст, например, из текстового поля - textBox1.Text");

// Закрываем файл

FS.Close();

}

}

При записи с помощью метода Write("текст формат") можно использовать строку форматирования, которая имеет следующий вид:

{N,W:F},

где N - номер параметра; W - ширина поля; F - формат вывода.

Допустимые форматы ввода:

· d - десятичный формат. Позволяет задать общее количество знаков (при необходимости число дополняется слева нулями).

· f - формат с фиксированной точностью. Позволяет задать количество знаков после запятой.

· x - шестнадцатеричный формат.

· c - денежный формат (добавляет знак доллара и показывает два знака после запятой).

· e - вывод числа в экспоненциальной форме.

Пример. Сохранить в файл число в поле шириной четыре знака с добавлением впереди числа нулей.

Код:

private void button14_Click(object sender, EventArgs e)

{

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{

StreamWriter FS = new StreamWriter(saveFileDialog1.FileName);

int a=Convert.ToInt16(textBox1.Text);

//Если введено a=38, то выведется 0038

FS.Write ("a={0:d4}", a);

FS.Close();

}

}

Примечание. Если путь к исходной папке задан неверно, то открывается папка «Мои документы».

Примечание. Если файл уже существует, то система выведет стандартное для операционной системы Windows предупреждение с предложением файл заменить.

Примечание. За действие, выполняемое в случае наличия выбранного файла отвечает второй аргумент в команде new StreamWriter:

new StreamWriter(имя файла, действие если файл уже существует, кодировка).

Если вторым аргументом стоит значение True, то произойдет дозапись в файл. Если вторым аргументом стоит значение False, то старая информация из файла будет стерта, а на ее место записана новая.

 

Запись двумерного массива размера [n,m] в файл

Чтобы записать в файл данные из таблицы dataGridView в форме матрицы необходимо прописать код, аналогичный следующему:

if (saveFileDialog1.ShowDialog() == DialogResult.OK)

{ StreamWriter FS = new StreamWriter(saveFileDialog1.FileName);

for (i = 0; i < n; i++)

{

for (j = 0; j < m; j++)

{

FS.Write("{0,3}", dataGridView1[j, i].Value);

};

FS.WriteLine();

};

FS.Close();

}

Примечание. Ширина одного столбца матрицы в файле равно 3.

Примечание. Один элемент массива можно записать в файл следующим образом:

FS.Write("\t {0}", A[1, 1]);

Чтение данных из файла

Алгоритм чтения данных из файла схож с алгоритмом записи данных в файл: компонент SaveFileDialog следует заменить на компонент OpenFileDialog, установить для компонента OpenFileDialog свойства, аналогичные свойствам компонента SaveFileDialog. Прописать код, аналогичный следующему:

private void button1_Click(object sender, EventArgs e)

{string s;

// Открываем стандартное окно Windows для чтения информации из файла

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

// Создаем файловую переменную, ссылающуюся на имя файла, выбранного в диалоговом окне чтения и открываем файл для считывания данных

StreamReader FS = new StreamReader (openFileDialog1.FileName);

// Считываем информацию из файла

s= FS.Readline();

// Закрываем файл

FS.Close();

}

}

Пример. Строка считывается из файла и прописывается на кнопке.

private void button15_Click(object sender, EventArgs e)

{ string s;

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{ StreamReader FS = new StreamReader (openFileDialog1.FileName);

s = FS.ReadLine();

FS.Close();

button15.Text = s;

}

}

 

Чтение двумерного массива размера [n,m] из файла

Чтобы считать из файла данные и записать их в таблицу dataGridView необходимо прописать код, аналогичный следующему:

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{ StreamReader FS = new StreamReader(openFileDialog1.FileName);

for (i = 0; i < n; i++)

{ s = FS.ReadLine();

for (j = 0; j < m; j++)

{ dataGridView1[j, i].Value = s.Substring(0, 3);

s = s.Substring(3, s.Length-3);

};

};

FS.Close();

}

Примечание. Ширина одного столбца матрицы в файле равно 3.

 



Поделиться:


Последнее изменение этой страницы: 2017-01-20; просмотров: 687; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.59.122.162 (0.013 с.)