C# Кодировка при сохранении и открытии из файла

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «C# Кодировка при сохранении и открытии из файла»

textual
Листинг программы
treamReader openfile = new StreamReader(Open.FileName, Encoding.UTF8)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5
Похожие ответы