Вопрос № 163988: ЗДравствуйте уважаемые эксперты Поясните пажалуста как при создании TImage *bullet = new TImage(this); и загрузке рисунка програмно удалить с формы и очистить память от Image...
Вопрос № 164004: Доброго времени суток, уважаемые эксперты. У меня вопрос по поводу работы с XML документами. Я считал из XML файла одну структуру, <?xml version="1.0"?> <xmldata> <numb>1</numb><stime>1</stim...
Вопрос № 163.988
ЗДравствуйте уважаемые эксперты Поясните пажалуста как при создании TImage *bullet = new TImage(this); и загрузке рисунка програмно удалить с формы и очистить память от Image
Отправлен: 02.04.2009, 17:57
Вопрос задал: Kraven (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Hubbitus
Здравствуйте, Kraven! Полагаю delete bullet; должно помочь.
--------- Если у Вас есть все что Вы хотите - значит Вы мало хотите!
Ответ отправил: Hubbitus (статус: 8-й класс)
Ответ отправлен: 02.04.2009, 19:14
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 246680 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Вопрос № 164.004
Доброго времени суток, уважаемые эксперты. У меня вопрос по поводу работы с XML документами. Я считал из XML файла одну структуру, <?xml version="1.0"?> <xmldata> <numb>1</numb><stime>1</stime><ftime>1</ftime><input>1</input> </xmldata> а мне необходимо считывать много <?xml version="1.0"?> <xmldata> <numb>1</numb><stime>1</stime><ftime>1</ftime><input>1</input> <numb>2</numb><stime>5</stime><ftime>15</ftime><input>2</input> <numb>3</numb><stime>3</stime><ftime>11</ftime><input>3</input> </xmldata>.
в
массив структут struct my { int numb,stime,ftime,input } Помогите пожалуйста доработать прогрпмму, заранее спасибо.
Приложение:
Отправлен: 02.04.2009, 20:55
Вопрос задал: California (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Micren
Здравствуйте, California! Вот демонстрационная программа:
// А это Ваша задача // Извлекаем узлы с требуемым
и элементами в списки IXMLDOMNodeList *numbNodes,*stimeNodes,*ftimeNodes,*inputNodes; document->selectNodes(L"xmldata/numb",&numbNodes); document->selectNodes(L"xmldata/stime",&stimeNodes); document->selectNodes(L"xmldata/ftime",&ftimeNodes); document->selectNodes(L"xmldata/input",&inputNodes);
// А теперь идем по каждому из этих списков IXMLDOMNode *numbNode,*stimeNode,*ftimeNode,*inputNode; long index=0; numbNodes->get_item(index,&numbNode); stimeNodes->get_item(index,&stimeNode); ftimeNodes->get_item(index,&ftimeNode); inputNodes->get_item(index,&inputNode);
//
Пока все элементы в порядке while(numbNode&&stimeNode&&ftimeNode&&inputNode) { // Извлекаем значение VARIANT numbVal,stimeVal,ftimeVal,inputVal; numbNode->get_nodeTypedValue(&numbVal); stimeNode->get_nodeTypedValue(&stimeV
al); ftimeNode->get_nodeTypedValue(&ftimeVal); inputNode->get_nodeTypedValue(&inputVal); if((numbVal.vt|stimeVal.vt|ftimeVal.vt|inputVal.vt)==VT_BSTR) { // Выводим для проверки wcout<<L"numb = "<<W2T(numbVal.bstrVal)<<endl; wcout<<L"stime = "<<W2T(stimeVal.bstrVal)<<endl; wcout<<L"ftime = "<<W2T(ftimeVal.bstrVal)<<endl; wcout<<L"input = "<<W2T(inputVal.bstrVal)<<endl; wcout<<L"-----------------------------------------------------------"<<endl; } else
break; // Переходим к следующим элементам ++index; numbNodes->get_item(index,&numbNode); stimeNodes->get_item(index,&stimeNode); ftimeNodes->get_item(index,&ftimeNode); inputNodes->get_item(index,&inputNode); } } } catch(const
wchar_t* const e) { wcout<<e<<endl; } catch(...) { wcout << L"Неизвестная ошибка" <<endl; } CoUninitialize(); system("PAUSE"); }
Хотелось бы обратить Ваше внимание на другие библиотеки для работы с xml. Нормальные объектно ориентированные библиотеки позволяют парсить xml куда более изящно чем сие творение от MS.
Так как Вы используете VC++ то может иметь смысл обратить внимание на .NET(с ее мощной библиотекой классов). Для этого можно использовать, как один из вариантов, надмножество C++/CLI. Для этого надо создать проект CLR. Пример:
Код:
#include "stdafx.h"
using namespace System; using namespace System::Xml;
void parseXML(XmlNode^ node) { if(node==nullptr)return; for each(XmlNode^ child in node->ChildNodes) { if(child->NodeType==XmlNodeType::Element) { Console::WriteLine("{0} = {1}",child->Name,child->InnerText); parseXML(child); } } }
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.