Как сохранить файл в C# через Windows Form
Опция сохранения на компьютере распространена повсюду. Бывает что создавая приложение необходимо, чтобы оно обладало данной функцией. Создание приложения на C# и Windows Form при использовании Visual Studio достаточно простая задача. (ссылка) Но что если нам понадобится вызвать из приложения окно сохранения. И в сегодняшней статье мы создадим простое приложение Windows Form, рассмотрим как записать данные в файл и в конце добавим окно сохранения.
Для начала создадим новое приложение, так как это описано в одной из статей. Далее вкладка ВИД > панель элементов. Выбираем элемент Button и помещаем его на форму.
Затем добавим один элемент RichTextBox, принимающий пользовательский ввод. Кнопка сохранения будет помещать введенный текст в указанное место на компьютере.
Название на кнопке изменено в окне свойств. Правая кнопка > свойства. Находим поле текст.
Дважды щелкаем по элементу Button. В результате получаем обработчик нажатия. Внутри которого объявляется строковая переменная, которой присваивается текст полученный в элементе RichTextBox. Для простоты выведем его в новое окно через MessageBox.
private void button1_Click(object sender, EventArgs e)
<
string text = richTextBox1.Text;
MessageBox.Show(text);
>
Для открытия окна сохранения используем класс SaveFileDialog.
private void button1_Click(object sender, EventArgs e)
<
string text = richTextBox1.Text;
MessageBox.Show(text);
SaveFileDialog open = new SaveFileDialog();
// открываем окно сохранения
open.ShowDialog();
// присваниваем строке путь из открытого нами окна
string path = open.FileName;
try <
// создаем файл используя конструкцию using
using(FileStream fs = File.Create(path))
<
// создаем переменную типа массива байтов
// и присваиваем ей метод перевода текста в байты
byte[] info = new UTF8Encoding(true).GetBytes(text);
// производим запись байтов в файл
fs.Write(info, 0, info.Length);
>
>
catch (Exception ex)
<
Console.WriteLine(ex.ToString());
В данном коде используется конструкция using, для безопасного открытия потока на запись с последующим его закрытием. Данная конструкция автоматизирует освобождение ресурсов памяти. Таким образом мы создали, простое оконное приложение Windows Form на C#, с функцией записи в файл и его сохранением.
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
Она выглядит вот так:
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
как сохранять данные в C#
Как сохранять данные в программе? Например, если у меня консольное приложение и я собираюсь считать свой бюджет и каждый раз, открывая программу я буду добавлять или отнимать деньги со своего бюджета.
Для начала можно попробовать сериализацию в XML. Привёл полный пример кода.
Существует много способов, но на мой взгляд самый простой — используя EntityFramework и подход Code First.
CodeFirst удобен тем, что вам ненужно самостоятельно создавать базу, она будет создана автоматически при первом входе в программу и дальше вы будете с ней работать.
Создаёте класс для работы с бюджетом. Все методы и необходимые поля (количество средств, операция со средствами, дата операции, описание)
Создаёте проект, подключаете EF через nuget package.
Далее создаём класс для работы с бюджетом. На моём примере вышло что-то такое
Далее для работы с БД необходимо создать класс-контекст, почитать об этом можно например вот тут: https://msdn.microsoft.com/ru-ru/library/system.data.entity.dbcontext(v=vs.113).aspx
У меня получилось нечто такое:
Далее необходимо зайти в App.config найти там закрывающий тег
и добавить после него строку подключения с именем «DbConnection»:
Собственно это всё что нужно для сохранения данных в БД. Осталось использовать полученный механизм в программе:
Примеры сохранения/чтения объектов класса. Сериализация
Данная тема содержит примеры сериализации объектов классов. В наиболее общем случае сериализация это свойство объекта сохранять свое состояние в файловом потоке и (по требованию) восстанавливать его.
Содержание
- 1. Пример разработки класса, содержащий средства записи в файл и чтение из файла. Класс реализует массив чисел типа double*
- 2. Пример записи/чтения объекта класса, содержащий поля типа string
- 3. Пример записи/чтения объекта класса, содержащий вложенные объекты другого класса
Поиск на других ресурсах:
1. Пример разработки класса, содержащий средства записи в файл и чтение из файла. Класс реализует массив чисел типа double*
В примере показано свойство экземпляра класса сохранять свое состояние в файле и восстанавливать его из файла. Под состоянием объекта понимается текущее значение внутренних данных (внутренних полей) объекта.
Разработан класс, содержащий следующие составляющие:
- A – массив чисел типа double;
- count – текущее количество элементов в массиве;
- конструктор ArrayNumbers(double*, int) – инициализирует внутренний массив внешними данными;
- конструктор ArrayNumbers() – создает массив нулевой длины;
- конструктор копирования ArrayNumbers(const ArrayNumbers&) ;
- операторная функция operator=(const ArrayNumbers&) ;
- деструктор
Результат выполнения программы
2. Пример записи/чтения объекта класса, содержащий поля типа string
Чтобы записать строку типа string в бинарный файл, нужно выполнить следующую последовательность действий:
- получить длину строки (число символов). Это целое число типа int ;
- записать длину строки в файл;
- с помощью цикла записать каждый символ строки в файл.
Чтобы считать строку из файла в объект типа string , нужно следовать следующей последовательности:
- считать длину строки из файла как тип int ;
- в цикле посимвольно считать всю строку в некоторый участок памяти или использовать добавление символа в конец строки в каждой итерации цикла.
В примере реализуется сериализация объекта типа BOOK . Класс BOOK описывает книгу, содержащую следующие поля:
- author – название автора книги. Это поле типа string ;
- title – заголовок книги, поле типа string ;
- year – год издания;
- price – стоимость книги.
Класс также содержит ряд методов оперирования данными о книге и сохранения/чтения этих данных:
- BOOK() – параметризированный конструктор;
- Author() – метод, возвращающий имя автора книги;
- Title() – заголовок книги;
- Year() – год издания;
- Price() – стоимость книги;
- SaveToFile() – метод, записывающий текущее значение внутренних полей в файл;
- ReadFromFile() – метод, считывающий значение полей из файла.
Текст демонстрационной программы следующий.
Результат выполнения программы
3. Пример записи/чтения объекта класса, содержащий вложенные объекты другого класса
Данный пример рассматривает случай, когда в классе объявляются объекты (экземпляры) другого класса, и эти объекты нужно корректно сохранять и считывать. По приведенному примеру можно сохранять и считывать структурные переменные (структуры).
Чтобы сохранить вложенные объекты в классе, нужно получить непосредственно данные этих объектов в виде примитивных типов (int, doulbe, char и т.п.).
При записи и считывании данных (внутренних полей) объектов важно соблюдать следующее правило:
- последовательность записываемых данных должна совпадать с последовательностью считываемых данных. Так, например, если записываются данные x, y, z, то в том же порядке эти данные должны считываться.
В примере демонстрируется сохранение экземпляра класса Line, в котором есть два встроенных объекта типа Point. Для записи/чтения в классе Line соответственно реализовано два метода SaveToFile() и ReadFromFile().
C как сохранять данные
Лучший отвечающий
Вопрос
- Перемещено SachinW 1 октября 2010 г. 20:56 MSDN Forums Consolidation (От:Начинающие разработчики)
Ответы
- Помечено в качестве ответа I.Vorontsov 21 сентября 2010 г. 6:27
Все ответы
- Помечено в качестве ответа I.Vorontsov 21 сентября 2010 г. 6:27
Как задать параметры приложения которые хранить в конфиге:
1. Смотришь свойства любого элемента приложения;
2. Находишь в Properties ApplicationSettings (если упорядочить свойства по алфвиту — то пункт будет самым верхним);
3. Раскрываешь ApplicationSetting;
4. Выбираешь пункт PropertyBindings;
5. Нажимаешь на кнопочку с тремя точками . ;
6. Выбираем свойство элемента управления, которое хотим хранить в конфиге;
8. Для всех остальных свойств элементов, которые нужно хранить в конфиге делаем все тоже самое;
9. Если нужно хранить какие-то свои данные лезем в app.config и по аналогии добавляем ключи и значения;
Как присвоить значение параметра:
Можно присвоить свойству, которое выбрал в п. 6 или прямо в конфиге:
Как сохранить изменения:
Перед выходом из приложения (перед закрытием основной формы)
Это только для VB ?
Просто у меня нет в свойствах элемента вкладки ApplicationSettings(пишу на C#)