Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
-5 / 1 / 1
Регистрация: 10.11.2011
Сообщений: 24

Функция с XMLDocument

05.12.2011, 11:11. Показов 3172. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Хочу сделать функцию, которая парсит xml-файлы и по if выбирает определённый текст из xml.
Параметром функции должно быть имя xml-файла.
Создаю на форме новый xmlDocument1 и использую его в функции так:
C++
1
2
XMLDocument1->LoadFromFile(FileName.c_str());
XMLDocument1->Active = true;
Выдает ошибку: не определено XMLDocument1.

В главной программе всё работает.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.12.2011, 11:11
Ответы с готовыми решениями:

XMLDocument
Использую компонент XMLDocument и не как не могу понять как мне загрузить например вот это Все что находится между тегами...

Использование XMLDocument
Необходимо из .xml получить некоторые данные и присвоить элементам формы. Синтаксических ошибок нет, но программа вылетает "Could not...

XMLDocument и CDATA
Добрый день. Как считать с помощью XMLDocument значение CDATA? К примеру, есть такой xml файл: <xml> <node> <!]> ...

13
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
05.12.2011, 11:52
создаете xmlDocument1
а используете XMLDocument1
ничего не замечаете?
с++ регистрочувствительный язык
либо вы что-то не договариваете, в том числе о "главной программе".
0
-5 / 1 / 1
Регистрация: 10.11.2011
Сообщений: 24
05.12.2011, 12:04  [ТС]
Цитата Сообщение от AntonChik Посмотреть сообщение
создаете xmlDocument1
а используете XMLDocument1
ничего не замечаете?
с++ регистрочувствительный язык
либо вы что-то не договариваете, в том числе о "главной программе".
Спасибо за отзыв. Замечаю. Под "создаю xmlDocument1" я подразумеваю что из вкладки Internet
беру объект XMLDocument1. И тут регистр ни при чём.
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
05.12.2011, 12:09
хорошо.
ваша функция принадлежит форме?
0
-5 / 1 / 1
Регистрация: 10.11.2011
Сообщений: 24
05.12.2011, 12:10  [ТС]
Цитата Сообщение от AntonChik Посмотреть сообщение
хорошо.
ваша функция принадлежит форме?
принадлежит.
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
05.12.2011, 12:13
в чем вы находите отличие данного случая от случая, когда все работает в главной программе?

Не по теме:

мои экстрасенсорные способности после провала на выборах пока что на низком уровне...

0
-5 / 1 / 1
Регистрация: 10.11.2011
Сообщений: 24
05.12.2011, 12:15  [ТС]
Цитата Сообщение от AntonChik Посмотреть сообщение
в чем вы находите отличие данного случая от случая, когда все работает в главной программе?
В том, что в функции программа не видит этот элемент: XMLDocument1.
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
05.12.2011, 12:22
код объявления и описания(хотя бы шапку) вашей функции в студию
0
-5 / 1 / 1
Регистрация: 10.11.2011
Сообщений: 24
05.12.2011, 13:18  [ТС]
Объявление функции:
C++
1
AnsiString Decode(AnsiString Source_File);
Начало функции:
C++
1
2
3
4
5
6
7
8
9
10
AnsiString Decode(AnsiString Source_File)
{
AnsiString ExeFileDir =  ExtractFileDir(Application->ExeName);
AnsiString FileName = ExeFileDir + "\\Справочники\\"+Source_File;
TXMLDocument *XMLDocument2;
XMLDocument2->LoadFromFile(FileName.c_str());
XMLDocument2->Active = true;
...
return FileName; //например
}
В Unit1.h:
C++
1
2
__published:
        TXMLDocument *XMLDocument2;
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
05.12.2011, 13:50
а каким образом
C++
1
AnsiString Decode(AnsiString Source_File);
принадлежит форме?
0
-5 / 1 / 1
Регистрация: 10.11.2011
Сообщений: 24
05.12.2011, 14:42  [ТС]
Если честно, то я объявляю все функции где-то между формой и кнопкой, по которой у меня всё запускается:
C++
1
2
3
4
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
объявление функций и переменных глобальных
C++
1
2
void __fastcall TForm1::Button1Click(TObject *Sender)
{
И у меня так всё работало.
Если Вы имеете ввиду, чтобы было так:
C++
1
2
3
4
5
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
AnsiString Decode(AnsiString Source_File);
}
то, так тоже не работает.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
05.12.2011, 15:02
Цитата Сообщение от Softina Посмотреть сообщение
Начало функции:
AnsiString Decode(AnsiString Source_File)
{
//...
TXMLDocument *XMLDocument2;
XMLDocument2->LoadFromFile(FileName.c_str());
XMLDocument2->Active = true;
...
дык, и я в этой функции не вижу
Цитата Сообщение от Softina Посмотреть сообщение
XMLDocument1
0
1090 / 588 / 121
Регистрация: 11.11.2008
Сообщений: 1,544
05.12.2011, 15:27
Softina, зря народ не отвлекайте, почитайте книжки о классах, о видимости переменных и т.д.

объявляете в Unit1.h в классе формы:
C++
1
2
public:
AnsiString Decode(AnsiString Source_File);
описываете
C++
1
2
3
AnsiString TForm1::Decode(AnsiString Source_File)
{
}
если объявлять как делали вы, то тогда делать это так
C++
1
AnsiString Decode(AnsiString Source_File, TXMLDocument *xml);
ну и передавать туда этот ваш XMLDocument1 как xml;
1
-5 / 1 / 1
Регистрация: 10.11.2011
Сообщений: 24
05.12.2011, 15:41  [ТС]
Хорошо, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.12.2011, 15:41
Помогаю со студенческими работами здесь

XmlDocument и теги
Мне нужно отобразить в середине нода текст с < >, но мне он переводит как &lt. Как убрать этот автоматический перевод и показывать как...

Компонент XMLDocument
Имеется XML-документ следующего содержания: <?xml version="1.0" encoding="utf-8"?> <response list="true"> <user> ...

Checkbox и XMLDocument
TXMLDocument *XMLDocument =new TXMLDocument(this); try { XMLDocument->Active = true; XMLDocument->Encoding = "UTF-8"; ...

XmlDocument в строку
Как преобразовать XMLDocument в строку?

Компонент XMLDocument
Товарищи, всем привет! Просьба с ходу - не пинать меня, я учусь :) Прочитал все темы на форуме касательно этого вопроса, а так же пару...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru