Лабораторные работы си шарп. Работа с файлами
Приложения для Windows forms
Лабораторная работа 15
Выполнить: Разработайте приложение, которое сохраняет в файл информацию из списка (ListBox) и загружает из файла информацию обратно в список.
[Название проекта: Lesson_15Lab1
, название файла L15Lab1.cs
]
✍ Выполнение:
- Поместите на форму элементы: список ListBox (lst), ListBox (lstFromfile) текстовое поле TextBox (txt), кнопки: btnAdd («Добавить элемент в список»), btnSave («Сохранить в файле»), btnOpen («Загрузить из файла»). Расположите правильно элементы (рисунок).
- Добавьте пространство имен для работы с файлами:
- При нажатии на btnAdd («Добавить элемент в список») в список lst должна добавиться строка, записанная в текстовое окно txt, а само окно при этом должно очиститься. Добавьте код для события click кнопки btnAdd:
- По щелчку на кнопке btnSave вся информация со списка должна добавляться во введенный пользователем в текстовое окно текстовый файл. Для этого добавьте процедуру для события Click кнопки:
- Событие Click кнопки btnOpen («Загрузить из файла») запрограммируйте таким образом, чтобы в список помещались все строки из файла:
1 | using System.IO; |
1 2 3 4 5 | private void btnAdd_Click(object sender, EventArgs e) { lst.Items.Add(txt.Text); txt.Clear(); } |
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(); } } |
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(); } } |
- Запустите приложение, внесите в список lst несколько строк и попытайтесь сохранить их в файл (желательно с расширением .txt: например, proba.txt). Если не написан путь к файлу, то файл сохранится в папке /bin/Debug Вашего проекта.