Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2012, 11:44   #1
DENIS_POLOTSK
Пользователь
 
Регистрация: 28.05.2012
Сообщений: 29
По умолчанию Последовательная запись в xml файл из DataGridView

Здравствуйте! Есть программа, приложение напоминание на рабочий стол, в которой используется DataGridView, необходимо последовательно дописывать в xml строку из DataGreedView. Использую код:
Код:
 private void button1_Click(object sender, EventArgs e)
        {
            XmlTextWriter xwriter = new XmlTextWriter("D://xmlwriter.xml", Encoding.Unicode);
            xwriter.WriteStartDocument();
            xwriter.WriteStartElement("Sobitiya");
            xwriter.WriteStartElement("Time");
            xwriter.WriteString(dataGridView1.Rows[SelIndex].Cells[0].Value.ToString());//SelIndex - индекс выбранной строки
            xwriter.WriteEndElement();
            xwriter.WriteStartElement("Discription");
            xwriter.WriteString(dataGridView1.Rows[SelIndex].Cells[1].Value.ToString());
            xwriter.WriteEndElement();
            xwriter.WriteEndDocument();
            xwriter.Close();
        }
как дописать в xml файл без создания нового?
DENIS_POLOTSK вне форума Ответить с цитированием
Старый 07.06.2012, 12:39   #2
DENIS_POLOTSK
Пользователь
 
Регистрация: 28.05.2012
Сообщений: 29
По умолчанию

Если можно использовать другой вариант, напишите, если по силам. Необходимо записывать и считывать не весь файл целиком а по частям, желательно используя Sax парсинг.
DENIS_POLOTSK вне форума Ответить с цитированием
Старый 07.06.2012, 13:06   #3
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

походу так... не проверял
Код:
Stream xmlFile = new FileStream(@"c:\path",FileMode.Append);
XmlTextWriter textWritter = new XmlTextWriter(xmlFile, Encoding.Unicode);
Reskov вне форума Ответить с цитированием
Старый 07.06.2012, 13:18   #4
DENIS_POLOTSK
Пользователь
 
Регистрация: 28.05.2012
Сообщений: 29
По умолчанию

В данном коде, во второй строчке, выдаёт ошибку:
Процесс не может получить доступ к файлу "D:\xmlwriter.xml", так как этот файл используется другим процессом.
Код:
Stream xmlFile = new FileStream(@"D://xmlwriter.xml", FileMode.Append);
            XmlTextWriter xwriter = new XmlTextWriter("D://xmlwriter.xml", Encoding.Unicode);
Нашёл ошибку
DENIS_POLOTSK вне форума Ответить с цитированием
Старый 07.06.2012, 13:21   #5
DENIS_POLOTSK
Пользователь
 
Регистрация: 28.05.2012
Сообщений: 29
По умолчанию

xml файл теперь имеет такую структуру:
version="1.0" encoding="utf-16"?><Sobitiya><Time>12:33</Time><Discription>q1q313f13f</Discription></Sobitiya><?xml
version="1.0" encoding="utf-16"?><Sobitiya><Time>0:0</Time><Discription>ewrewrw</Discription></Sobitiya>

Это правильная структура?
DENIS_POLOTSK вне форума Ответить с цитированием
Старый 08.06.2012, 11:35   #6
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

не правильная, у вас каждый раз вызывается xwriter.WriteStartDocument(); и xwriter.WriteEndDocument(); поставьте if (!File.Exists()) например
Reskov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение dataGridView в файл men232 Windows Forms 8 21.05.2013 14:16
DataGridView в xml oleg90990 Visual C++ 0 11.05.2012 18:36
DataGridView в файл. KuckaMAXHATKA Windows Forms 0 30.05.2011 14:17
сформировать xml-файл на основе другого xml-файла NieL Общие вопросы Delphi 2 21.12.2010 15:49
Последовательная запись? CraftR14 Общие вопросы Delphi 11 23.04.2010 21:36