C# Кодировка при сохранении и открытии из файла
Формулировка задачи:
Такая проблема.
Пишу программу, для которой требуется реализация сохранения и открытия из файла.
В чём суть программы: Есть базовый класс "Растения", есть 2 класса наследника "Дерево" и "Цветок". Есть поля присущие всем наследникам, есть поля различные для классов наследников (Кол-во цветов в соцветии для Цветок, Форма листьев для Дерево). Все поля переопределяются в наследниках.
В общем, сама программа - это форма, вывод данных - листбокс. Вывод осуществляется посредством методов write классов наследников, с аргументами - значения соотв. полей.
Форма вывода:
"Цветок; Продолжительность жизни: {0}; Размер (см): {1}; ..."
"Дерево; Продолжительность жизни: {0}; Размер (см): {1}; ..."
Сделал сохранение в файл, проблема с открытием.
Что я пытаюсь делать, считываю строку из файла - s
С файлами, которые я сохранил самой программой, проверка работает, они открываются, добавляются в листбокс, всё нормально. Если я пытаюсь редактировать что-либо вручную блокнотом, то свич всегда идёт на дефаут, хотя в режиме отладки видно, что mas[0] действительно Дерево или Цветок. Ясно, что проблема в кодировке.
Я правильно понимаю, что по умолчанию
savefile = new StreamWriter(Save.FileName);
сохраняет в кодировке UTF8?
Тогда как мне сделать, чтобы при открытии
StreamReader openfile = new StreamReader(Open.FileName);
он все форматы преобразовывал в этот UTF8? Или наоборот, чтобы сразу же всё работало в том формате, в котором сохраняет блокнот (какой там, 1251 что ли) ?
StreamReader openfile = new StreamReader(Open.FileName, Encoding.UTF8); не пашет
string[mas]=s.Split(";",":"); switch (mas[0]) { case "Цветок": дальнейшая проверка соответствия строки формату case "Дерево": аналогично default: MessageBox.Show("Неверное количество аргументов"); return; }
Решение задачи: «C# Кодировка при сохранении и открытии из файла»
textual
Листинг программы
treamReader openfile = new StreamReader(Open.FileName, Encoding.UTF8)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д