Урок 15 windows forms. Работа с файлами

Лабораторные работы си шарп. Работа с файлами

Приложения для Windows forms

Лабораторная работа 15

Выполнить: Разработайте приложение, которое сохраняет в файл информацию из списка (ListBox) и загружает из файла информацию обратно в список.

Пример выполнения:
Работа с файлами в C#

[Название проекта: Lesson_15Lab1, название файла L15Lab1.cs]

✍ Выполнение:

  1. Поместите на форму элементы: список ListBox (lst), ListBox (lstFromfile) текстовое поле TextBox (txt), кнопки: btnAdd («Добавить элемент в список»), btnSave («Сохранить в файле»), btnOpen («Загрузить из файла»). Расположите правильно элементы (рисунок).
  2. Добавьте пространство имен для работы с файлами:
  3. 1
    
    using System.IO;
  4. При нажатии на btnAdd («Добавить элемент в список») в список lst должна добавиться строка, записанная в текстовое окно txt, а само окно при этом должно очиститься. Добавьте код для события click кнопки btnAdd:
  5. 1
    2
    3
    4
    5
    
    private void btnAdd_Click(object sender, EventArgs e)
            {
                lst.Items.Add(txt.Text);
                txt.Clear();
            }
  6. По щелчку на кнопке btnSave вся информация со списка должна добавляться во введенный пользователем в текстовое окно текстовый файл. Для этого добавьте процедуру для события Click кнопки:
  7. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    private void btnSave_Click(object sender, EventArgs e)
            {
                string fileName = txtFileName.Text; // путь к файлу
                if (File.Exists(fileName)) 
                {
                    File.Delete(fileName); // если файл существует - удаляем его
                }
                using (FileStream fs = File.Create(fileName, 1024)) // класс для работы с файлами
    // класс для работы с данными файла в двоичной виде
                using(BinaryWriter bw = new BinaryWriter(fs)) 
                {
                    for (var i = 0; i < lst.Items.Count; i++) // пока не конец списка
                    {
                        bw.Write(lst.Items[i].ToString()); // записываем в файл каждый пункт
     
                    }
                    bw.Close();
                    fs.Close();
                }
              }
  8. Событие Click кнопки btnOpen («Загрузить из файла») запрограммируйте таким образом, чтобы в список помещались все строки из файла:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void btnOpen_Click(object sender, EventArgs e)
        {
            string fileName = txtFileName.Text;
            lstFromfile.Items.Clear();
            using (FileStream fs = new FileStream(fileName, FileMode.Open))
            using (BinaryReader br = new BinaryReader(fs))
            {
             // метод PeekChar() возвращает следующий прочитанный символ
             // если символов нет - возвращается -1
                while (br.PeekChar() != -1) 
                {
                    // добавляем в список очередную прочитанную строку
                    lstFromfile.Items.Add(br.ReadString()); 
                }
                br.Close();
                fs.Close();
            }
        }
  1. Запустите приложение, внесите в список lst несколько строк и попытайтесь сохранить их в файл (желательно с расширением .txt: например, proba.txt). Если не написан путь к файлу, то файл сохранится в папке /bin/Debug Вашего проекта.