crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Открытие файла Xml для записи!
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
rezor Дата 4.8.2010, 10:44
  сразу после open

сразу после open

Поменял на QIODevice::ReadWrite теперь фаил не теряет информацию, но по прежнему остается
Calling appendChild() on a null node does nothing.
/home/stas/www/www завершился с кодом 0


Все решено спасибо!
Алексей1153 Дата 4.8.2010, 9:59
 
Цитата(rezor @ 4.8.2010, 12:48) *
Только теперь при открытии файл пустой становится.

прямо после выполнения open - смотришь файл, а он опустел ? Или всё же позднее ? :)
rezor Дата 4.8.2010, 9:58
  Да так открывает,суть была в том что вызывал doc.setContent(&file); до file.open() .
Только теперь при открытии файл пустой становится.
Запускается /home/stas/www/www...
QMetaObject::connectSlotsByName: No matching signal for on_tabWidget_currentChanged(QWidget*)
QIODevice::read: WriteOnly device
Calling appendChild() on a null node does nothing.
/home/stas/www/www завершился с кодом 0

void MainWindow::addCategoryInXML()
{

QFile file("BDwww.xml");
QDomDocument doc;
QDomElement root,categoryNum,categoryName;
QDomText categoryNameText;
if(file.open(QIODevice::WriteOnly | QIODevice::Text))
{    
    doc.setContent(&file);
  root=doc.documentElement();// получаем корень документа
    categoryNum=doc.createElement("category");//создаем потомка
    categoryName=doc.createElement("name_category");
    categoryNameText = doc.createTextNode("Errare humanum est");
    root.appendChild(categoryNum);
    categoryNum.appendChild(categoryName);
   categoryName.appendChild(categoryNameText);

    QTextStream out(&file);
    doc.save(out,4);
    file.close();


}
else qDebug()<<"Error open file";

}


если убрать doc.setContent(&file); то остается только
Calling appendChild() on a null node does nothing.
/home/stas/www/www завершился с кодом 0


xml
<?xml version="1.0"?>
<bdWWW>
<category number= "1">
<name_category>Почта</name_category>
<link number ="1">
<string_www>http:\\www.mail.ru></string_www>
<description>Почта</description>
<tags>Почта,mail</tags>
</link>
</category>
</bdWWW>
Алексей1153 Дата 4.8.2010, 9:41
  а вот так открывается?

QDomDocument doc;
QFile file("BDwww.xml");
//  doc.setContent(&file);
//  QDomElement root,categoryNum,categoryName;
//  QDomText categoryNameText;
if(file.open(QIODevice::WriteOnly | QIODevice::Text))
{
rezor Дата 4.8.2010, 9:37
  В коде пока что только это открытие!

пробовал заменять файл на другой тоже самое выдает!
Алексей1153 Дата 4.8.2010, 9:26
  rezor, найди в коде все открытия и сделай счётчик этих открытий. Будет ли он >1
rezor Дата 4.8.2010, 9:12
  Нет проблема осталась, хотя файл не открываю больше ни где!
Litkevich Yuriy Дата 3.8.2010, 17:51
 
Цитата(rezor @ 3.8.2010, 23:02) *
Возможно причина в том что я добавил этот файл в список ресурсов проекта
???
rezor Дата 3.8.2010, 19:02
  Ну программно больше ни где не открывал!

Возможно причина в том что я добавил этот файл в список ресурсов проекта
Litkevich Yuriy Дата 3.8.2010, 18:47
 
Цитата(Алексей1153 @ 3.8.2010, 22:32) *
Или файл ещё кем-то эксклюзивно открыт
ошибка была бы другая.

Где-то он уже открыл файл. Возможно, попользовался и не закрыл.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.4.2024, 4:44