Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
1

Преобразование файла в формат XML путём сериализации

15.06.2016, 20:16. Показов 1234. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день, дано такое задание :

Дан файл, в первых трех столбцах записаны фамилия, имя и отчество, а в четвёртом — адрес электронной почты. Написать программу для преобразования файла в формат XML
мой код :
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
public class Person
    {
 
 
 
        public string Name { get; set; }
        public string SName { get; set; }
        public string OName { get; set; }
        public string Mail { get; set; }
 
        public Person()
 
        { }
 
 
 
        public Person(string name, string sname, string oname, string mail)
        {
 
            Name = name;
            SName = sname;
            OName = oname;
            Mail = mail;
 
 
        }
 
    }
 
 
    class Program
    {
 
        static void Main(string[] args)
        {
 
            string filename = @"C:\test\1.txt";
 
 
 
            string line;
 
            Person person;
            person = new Person();
      //     Person[] people = new Person[] { person };
 
            XmlSerializer formatter = new XmlSerializer(typeof(Person));
 
            StreamReader sr = new StreamReader(@filename);
 
while (!sr.EndOfStream)
{
   line = sr.ReadLine();
   string[] ss = line.Split(';');
   Console.WriteLine(ss[0]);
   Console.WriteLine(ss[1]);
   Console.WriteLine(ss[2]);
   Console.WriteLine(ss[3]);
   Console.WriteLine("------------");
   person.Name = ss[0];
   person.SName = ss[1];
   person.OName = ss[2];
   person.Mail = ss[3];
 
   using (FileStream fs = new FileStream(@"C:\test\people1.xml", FileMode.OpenOrCreate))
   {
       formatter.Serialize(fs, person);
   }
 
}      
                sr.Close();
тк считываю я данные из файла, то получается, что он сериализует только последную строку, как мне записать все строки ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.06.2016, 20:16
Ответы с готовыми решениями:

Использование XML-файла при помощи сериализации
Помогите добавить использование XML-файла при помощи сериализации в программу для создания тестов....

Чтение XML путем перетаскивания файла в DataGridView
Добрый день. Подскажите , пожалуйста, как можно прочитать xml в datatable, перетащив мышью этот...

Преобразование текстового файла в требуемый формат
Добрый день! Есть задание: 1 создать текстовый файл Text1.txt с помощью объекта класса...

Конвертация файла XML в формат CSV
Добрый день. Уважаемые знатоки, помогите сконвертировать XML в CSV. Пытался разобраться с...

2
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
15.06.2016, 20:22 2
Цитата Сообщение от vuasya Посмотреть сообщение
как мне записать все строки ?
Создайте коллекцию из строк и сериализуйте коллекцию.
0
1 / 1 / 2
Регистрация: 26.08.2013
Сообщений: 381
15.06.2016, 20:36  [ТС] 3
можете примерчик скинуть

Добавлено через 4 минуты
сделал так :
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 Collection<string> dinosaurs = new Collection<string>();
 
 
 
            XmlSerializer formatter = new XmlSerializer(typeof(Collection<string>));
            StreamReader sr = new StreamReader(@filename);
 
 
 
            using (FileStream fs = new FileStream(@"C:\test\people1.xml", FileMode.OpenOrCreate))
            {
                while (!sr.EndOfStream)
                {
                    line = sr.ReadLine();
                    string[] ss = line.Split(';');
                    /*        Console.WriteLine(ss[0]);
                            Console.WriteLine(ss[1]);
                            Console.WriteLine(ss[2]);
                            Console.WriteLine(ss[3]);
                            Console.WriteLine("------------");
                            person.Name = ss[0];
                            person.SName = ss[1];
                            person.OName = ss[2];
                            person.Mail = ss[3];
                             */
                    dinosaurs.Add(ss[0]);
                    dinosaurs.Add(ss[1]);
                    dinosaurs.Add(ss[2]);
                    dinosaurs.Add(ss[3]);
 
                    formatter.Serialize(fs, dinosaurs);
                }
            }
но отображается не верно, при простом просмотре выходит первая голоя строка с пробелами, а если в блокноте открыть, то вот что :
Код
<?xml version="1.0"?>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <string>121221</string>
  <string>21321321</string>
  <string>21321</string>
  <string>33@mail.ru</string>
</ArrayOfString><?xml version="1.0"?>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <string>121221</string>
  <string>21321321</string>
  <string>21321</string>
  <string>33@mail.ru</string>
  <string>ss1</string>
  <string>d13m21</string>
  <string>2e321</string>
  <string>pp@mail.ru</string>
</ArrayOfString><?xml version="1.0"?>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <string>121221</string>
  <string>21321321</string>
  <string>21321</string>
  <string>33@mail.ru</string>
  <string>ss1</string>
  <string>d13m21</string>
  <string>2e321</string>
  <string>pp@mail.ru</string>
  <string>mmmss1</string>
  <string>mdmmm1321</string>
  <string>mmm2e321</string>
  <string>mmmpp@mail.ru</string>
</ArrayOfString>
Добавлено через 2 минуты
решил пробелему, просто вынес сериализацию за цикл

Добавлено через 11 секунд
спасибо
0
15.06.2016, 20:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.06.2016, 20:36
Помогаю со студенческими работами здесь

Перевод текстового файла в XML формат
Здравствуйте, мне необходимо написать программу, которая получая на входе текстовый файл будет...

Формат XML файла после экспорта с применением bcp
Добрый день. Подскажите новичку. Я экспортирую данные из таблицы. Если применить, например...

Преобразование XML файла в табличные данные Excel
Добрый день. Прошу помощи, себе уже весь мозг сломал... :sorry: Существует некий сервис,...

Реализация сериализации xml
Доброго времени, Создаю класс, кидаю объекты в List, потом привязываю к datagridwiew для...

Параметры сериализации XML
Доброго времени суток. Для xml-сериализации использую следующий метод: private static string...

Ошибка при сериализации XML
возникает исключение при сериализации xml файла вот такого вида - &lt;?xml version=&quot;1.0&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru