Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

KN_6_2013-2014 / НПП_6_з_2013 / НПП_6_з_2013 / Лаб_раб_файлы / Теоретические сведения

.pdf
Скачиваний:
9
Добавлен:
29.02.2016
Размер:
154.5 Кб
Скачать

Теоретические сведения.

1.Создать консольное приложение, которое будет считывать числа из файла t2.txt возводить их в квадрат и записывать полученные значения в файл t3.txt

Приводим текст программы к виду:

using System;

using System.Collections.Generic; using System.Text;

using System.IO;

namespace ConsoleApplication1

{

class Program

{

static void Main()

{

Console.Clear(); string s = ""; string s2; double x, y;

//Открыть файловый поток для чтения

StreamReader f1 = new StreamReader(@"D:t2.txt"); //Открыть файловый поток для записи

StreamWriter f2 = new StreamWriter(@"D:t3.txt"); //while (s != null)

while ((s = f1.ReadLine()) != null)

{

x = Convert.ToDouble(s); y = x * x;

s2 = y.ToString(); //Преобразовать Y в строку //вывод полученной строки в файл f2.WriteLine(s2);

}

f1.Close(); //Закрыть файловый поток f1 f2.Close(); //Закрыть файловый поток f2

}

}

}

Запись в файл.

Для записи (а в последующем и для чтения) в файл мы будем использовать символьные потоки позволяющие оперировать непосредственно с символами

Unicode.

StreamWriter sw = new StreamWriter("D:t2.txt"); sw.WriteLine("блаблабла");

sw.Close();

После всех действий над файлом не забываем закрывать его используя метод Close(), в противном случае изменения в файле не только не будут сохранены. Приведеный выше пример записи файла полностью перезаписывает его, если же надо дописать в конец файла:

StreamWriter sw;

FileInfo fi = new FileInfo("D:t2.txt"); sw = fi.AppendText(); sw.WriteLine("blablabla");

sw.Close();

Запись из формы построково

StreamWriter sw;

FileInfo fi = new FileInfo("D:t2.txt"); sw = fi.AppendText();

string aa = textBox1.Text; sw.WriteLine(aa); sw.Close();

Использование контролов OpenFileDialog и SaveFileDialog для работы с файлами

Для изучения работы с контролами OpenFileDialog и SaveFileDialog создадим новое решение и поместим на форму контролы RichTextBox, OpenFileDialog и SaveFileDialog. Контролы OpenFileDialog и SaveFileDialog не визуальные и, потому, разместились ниже формы. Проект решения с которым будем работать примет вид, показанный на Рис.1.

Рис.1 Проект решения для работы с OpenFileDialog и SaveFileDialog

Дважды кликнем на форме (вне контролов) и, таким образом, создадим обработчик Form1_Load, который будет вызываться при каждой загрузки формы и который в дальнейшем будем часто использовать для начальной инициализации параметров программы и переменных. В обработчике запишем код очистки RichTextBox:

private void Form1_Load(object sender, System.EventArgs e)

{

richTextBox1.Clear();

}

Обработчик нажатия кнопки Закрыть приложение:

private void button3_Click(object sender, System.EventArgs e)

{

Application.Exit();

}

Основные свойства OpenFileDialog

Свойство AddExtension разрешает или запрещает автоматическое добавление расширение, указанное в свойстве DefaultExt.

Свойство DefaultExt - расширение, принятое по умолчанию для автоматического добавления к имени файла при AddExtension=true.

Свойство CheckFileExists - используется для получения или устанавки значения, указывающего отображать или нет диалоговое окно предупреждения, если пользователь указал в свойстве FileName имя файла, которого не существует в данной директории и нажал кнопку "Oткрыть" при невыбранном кликом мышки файле. При CheckFileExists=true вместо прерывания будет выдано сообщение, что такого файла нет и исключения не вызывается.

На Рис.2 показано окно предупреждение при FileName=a.doc, CheckFileExists=true и нажатии кнопки "Oткрыть" при невыбранном файле.

Рис.2 Окно предупреждения при CheckFileExists=true

Свойство FileName - имя файла по умолчанию для выборки если была нажата кнопка OK и не выбрн кликом мышки файл в окне диалога.

Свойство CheckPatchExists - используется для получения или устанавки значения, указывающего отображать или нет диалоговое окно предупреждения, если пользователь указал в свойстве FileName имя файла с несуществующим именем директории. Окно полностью анлогично показанному на Рис.2., например, при FileName=С:\3\a.doc и не выбранном файле в директории C:\ и нажатии кнопки "Oткрыть" будет выдано сообщение, поазанное на Рис.3. При CheckPatchExists=true вместо прерывания будет выдано только сообщение.

Рис.3 Окно предупреждения при CheckPatchExists=true

Свойство DereferenceLinks - используется для указания контролу что именно возвращпть при выборе файла ссылки - файл по ссылке (true) или файл самой сылки (false).

Свойства Filter, FilterIndex - фильтр для выбираемых файлов и индекс строки, отображаемой в окошечке "Имя файла". Например значение свойства заданного строкой при FilterIndex=1.

rtf файлы (*.rtf)|*.rtf|txt файлы(*.txt)|*.txt

позволит выбрать только текстовые файлы в формате rtf или txt. В окошечке "Тип файла" будет только две строки:

rtf файлы (*.rtf) txt файлы(*.txt)

а в окошечке "Имя файла" будет отображена первая.

Свойство InitialDirectory - директория, которая выбирается при старте

OpenFileDialog.

Свойство MultiSelect - при значении true позволяет выбрать мышкой при нажатой кнопке Shift или Ctrl несколько файлов и сохранить их имена в свойстве FileNames в виде массива строк.

Свойство ReadOnlyChecked - при значении true позволяет открывать команде OpenFile выбранные файлы только в режиме чтения.

Свойство RestoreDirectory - при true диалоговое окно восстанавливает текущий каталог к первоначальному значению если пользователь изменил каталог при поиске файлов, при false - нет.

Свойство работает только если закрыт поток Stream, созданный методом openFileDialog1.OpenFile().

Свойство ShowHelp - при значении true в окне диалога отображается кнопка "Справка".

Свойство ShowReadOnly - при значении true в окне диалога отображается переключатель "Только для чтения".

Свойство Title - заголовок диалогового окна.

Свойство ValidateNames - при true проверяет допустимость имени для файла применительно к Win32. Никакое заданное по умолчанию в этом случае не добавляется.

Отметим, что ве свойcтва могут быть заданы на этапе проектирования и программно - путем присвоения соответствующих значений.

Загрузка содержимого файла с использованием OpenFileDialog

Утановим для OpenFileDialog следующие значения свойств:

Filter - rtf файлы (*.rtf)|*.rtf

InitialDirectory - C:\

Способ, который позволяет загружать фйлы в формате .txt. При наличии на форме TextBox и установленном его свойстве MultiLine в true, в обработчике Form1_Load допишем строку

textBox1.Text="";

а cвойству Filter присвоим значение

rtf файлы (*.rtf)|*.rtf|txt файлы(*.txt)|*.txt

В обработчике события нажатия кнопки Открыть напишем код для чтения текстовых файлов.

private void button1_Click(object sender, System.EventArgs e)

{

openFileDialog1.Filter="rtf файлы (*.rtf)|*.rtf|txt файлы(*.txt)|*.txt"; if(openFileDialog1.ShowDialog() == DialogResult.OK)

{

System.IO.StreamReader streamReader; streamReader = new

System.IO.StreamReader(openFileDialog1.FileName);

richTextBox1.Text = streamReader.ReadToEnd(); streamReader.Close();

//Можно указть кодировку вывода отличную от кодировке по умолчанию

streamReader = new System.IO.StreamReader(openFileDialog1.FileName,

System.Text.Encoding.GetEncoding("windows-1252")); textBox1.Text = streamReader.ReadToEnd(); streamReader.Close();

}

Соседние файлы в папке Лаб_раб_файлы