crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Открытие файла Xml для записи!
rezor
  опции профиля:
сообщение 3.8.2010, 18:27
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 26
Регистрация: 1.4.2009
Пользователь №: 655

Спасибо сказали: 1 раз(а)




Репутация:   0  


Не пойму в чем проблема почему выпадает в консоли такая ошибка.
Запускается /home/stas/www/www...
QMetaObject::connectSlotsByName: No matching signal for on_tabWidget_currentChanged(QWidget*)
QFile::open: File (BDwww.xml) already open
Error open file
/home/stas/www/www завершился с кодом 0

Хотя файл открываю вроде правильно
// Запись в xml фаил
void MainWindow::addCategoryInXML()
{
QDomDocument doc;
QFile file("BDwww.xml");
doc.setContent(&file);
QDomElement root,categoryNum,categoryName;
QDomText categoryNameText;
if(file.open(QIODevice::WriteOnly | QIODevice::Text))
{

     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";

}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 3.8.2010, 18:32
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата
already open

тут копать, по любому ))

В отладчике определить, на какой строке спотыкается, понять, почему повторное открытие файла. Или файл ещё кем-то эксклюзивно открыт
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.8.2010, 18:47
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


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

Где-то он уже открыл файл. Возможно, попользовался и не закрыл.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rezor
  опции профиля:
сообщение 3.8.2010, 19:02
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 26
Регистрация: 1.4.2009
Пользователь №: 655

Спасибо сказали: 1 раз(а)




Репутация:   0  


Ну программно больше ни где не открывал!

Возможно причина в том что я добавил этот файл в список ресурсов проекта
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 3.8.2010, 17:51
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(rezor @ 3.8.2010, 23:02) *
Возможно причина в том что я добавил этот файл в список ресурсов проекта
???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rezor
  опции профиля:
сообщение 4.8.2010, 9:12
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 26
Регистрация: 1.4.2009
Пользователь №: 655

Спасибо сказали: 1 раз(а)




Репутация:   0  


Нет проблема осталась, хотя файл не открываю больше ни где!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 4.8.2010, 9:26
Сообщение #7


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


rezor, найди в коде все открытия и сделай счётчик этих открытий. Будет ли он >1
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rezor
  опции профиля:
сообщение 4.8.2010, 9:37
Сообщение #8


Студент
*

Группа: Участник
Сообщений: 26
Регистрация: 1.4.2009
Пользователь №: 655

Спасибо сказали: 1 раз(а)




Репутация:   0  


В коде пока что только это открытие!

пробовал заменять файл на другой тоже самое выдает!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 4.8.2010, 9:41
Сообщение #9


фрилансер
******

Группа: Участник
Сообщений: 2939
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


а вот так открывается?

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:58
Сообщение #10


Студент
*

Группа: Участник
Сообщений: 26
Регистрация: 1.4.2009
Пользователь №: 655

Спасибо сказали: 1 раз(а)




Репутация:   0  


Да так открывает,суть была в том что вызывал 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>
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 14:08