Форум: "Основная";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
Внизкак саписать данные из Edit в файл xml Найти похожие ветки
← →
Daria (2006-02-07 14:25) [0]Всем привет. Надо, чтобы пользователь на формочке вводил в едиты данные, а после надатия на кнопочку,эти данные записывались в файл .xml
← →
wal © (2006-02-07 14:28) [1]Если данных не очень много, то можно просто текстовый файл записать.
← →
Daria (2006-02-07 14:30) [2]со всеми тэгами? просто потом еще надо, чтобы пользователь выбирал xml файл и он выводился в читаемом виде(без тэгов, только данные)
← →
wal © (2006-02-07 14:34) [3]
> просто потом еще надо...
А что-то еще надо? Если нет, то какой глубокий смысл использовать именно xml?
← →
Daria (2006-02-07 14:38) [4]такие требования. файл должен быть xml. а девочка, которая будет данные вводить ничего не знает, ничего не понимает. ей надо сделать формочку с едитами, куда она будет вбивать данные, нажимать на кнопочку - и файл сформирован
← →
Reindeer Moss Eater © (2006-02-07 14:40) [5]TXMLDocument + форма едитами
← →
wal © (2006-02-07 14:48) [6]Формат xml-я как-то оговорен?
← →
Daria (2006-02-07 14:51) [7]да. оговрен.
← →
wal © (2006-02-07 15:05) [8]Создаешь шаблон с пустыми тэгами. Дальше что-то вроде этого:
uses MSXML2_TLB;
---
var
xml: DOMDocument;
nl: IXMLDomNodeList;
i: integer;
begin
xml := CoFreeThreadedDOMDocument.Create;
xml.async := false;
xml.loadXML(шаблон);
nl := xml.selectNodes(путь к нужным тэгам)
for i:=0 to nl.length do
nl.item[i].text := Edit[n].text
xml.save(файл)
end;
← →
Daria (2006-02-07 15:12) [9]спасибо большое! сейчас попробую
← →
Daria (2006-02-07 15:15) [10]ой, а он пишет, что не найден файл MSXML2_TLB.dcu
← →
Fay © (2006-02-07 15:18) [11]http://mv.rb.ru/simplexml.htm
← →
wal © (2006-02-07 15:22) [12]Меню Project-Import Type Library-Microsoft XML v3.0-Create Unit
← →
Daria (2006-02-07 15:45) [13]елки, он пишет access violation на строке nl.item[i].text := Edit[n].text
← →
wal © (2006-02-07 15:49) [14]Полностью код приведи
← →
Daria (2006-02-07 15:51) [15]var
xml: DOMDocument;
nl: IXMLDomNodeList;
i: integer;
begin
xml := CoFreeThreadedDOMDocument.Create;
xml.async := false;
xml.loadXML("C:\tests.xml");
nl := xml.selectNodes("Name");
for i:=0 to nl.length do
nl.item[i].text := LabeledEdit1.text;
xml.save("C:\tests.xml");
end;
← →
Daria (2006-02-07 15:51) [16]а сам файл tests.xml такой должен быть?
<?xml version="1.0" encoding="windows-1251" ?>
- <INQ version="1">
- <THEADER>
<CreateDate>20.07.2005</CreateDate>
</THEADER>
- <TBODY>
- <ChangeCode>
- <KeyData>
- <KEYLP>
<Name></Name>
<EGRN></EGRN>
<INN></INN>
</KEYLP>
</KeyData>
<SubjectCode></SubjectCode>
<Email></Email>
<NewCode></NewCode>
</ChangeCode>
</TBODY>
</INQ>
← →
Reindeer Moss Eater © (2006-02-07 15:52) [17]for i:=0 to Pred(nl.length) do
← →
wal © (2006-02-07 15:53) [18]Если считываешь из файла, то просто load, а не loadXML
← →
wal © (2006-02-07 15:54) [19]
> [17] Reindeer Moss Eater © (07.02.06 15:52)
Точно, старею :)
← →
wal © (2006-02-07 15:55) [20]
> [16] Daria (07.02.06 15:51)
а что это за минусы?
← →
Reindeer Moss Eater © (2006-02-07 15:59) [21]Кстати, можно ли сочинить такой XPath, который вернет все узлы в иерархии начиная с корня?
← →
Daria (2006-02-07 15:59) [22]ой, минусы - фигня какая-то.
тэк-с, все работает. сохраняется, только абсолютно пустой файл
← →
Daria (2006-02-07 16:12) [23]все, уже не пустой, но такой же как и был до запуска программы. т.е. ничего не добавляется. вот мне в name нужно добавить из edit1
← →
wal © (2006-02-07 16:20) [24]
> [21] Reindeer Moss Eater © (07.02.06 15:59)
/descendant-or-self::*
> [23] Daria (07.02.06 16:12)
> nl := xml.selectNodes("Name");
"/INQ/TBODY/ChangeCode/KeyData/KEYLP/Name"
← →
Daria (2006-02-07 16:26) [25]ой, спасибо огромное!!!! впервые в жизни вижу xml. пойду учить заодно :))
wal, ты просто гений!!!!
← →
Сенокур Петя (2006-02-14 15:06) [26]
> тэк-с, все работает. сохраняется, только абсолютно пустой
> файл
> <Цитата>
>
>
> Daria (07.02.06 16:12) [23]
> все, уже не пустой, но такой же как и был до запуска программы.
> т.е. ничего не добавляется. вот мне в name нужно добавить
> из edit1
а у меня файл пустой.... не подскажите в чем проблема?... не могу найти причину (в отличии от Daria ) :)
← →
wal © (2006-02-14 15:12) [27]
> [26] Сенокур Петя (14.02.06 15:06)
Код давай
← →
Сенокур Петя (2006-02-14 15:19) [28]
> wal © (14.02.06 15:12) [27]
так я просто пока вникаю в
> как саписать данные из Edit в файл xml
и взял код самого файла xml из
> Daria (07.02.06 15:51) [16]
а сам код
Это на Button1.Click
> var
> xml: DOMDocument;
> nl: IXMLDomNodeList;
> i: integer;
> begin
> xml := CoFreeThreadedDOMDocument.Create;
> xml.async := false;
> xml.load("C:\tests.xml");
> nl := xml.selectNodes("/INQ/TBODY/ChangeCode/KeyData/KEYLP/Name");
> for i:=0 to Pred(nl.length) do
> nl.item[i].text := LabeledEdit1.text;
> xml.save("C:\tests.xml");
> end;
ну путь расположения tests.xml свой...
у меня файл test.xml полностью пустой становиться....
Кстати, а есть как.-нидь документация по MSXML2_TLB?
← →
wal © (2006-02-14 16:59) [29]
> xml.load("C:\tests.xml");
if not xml.load("C:\tests.xml") then PByte(0)^:=0;
> Кстати, а есть как.-нидь документация по MSXML2_TLB?
У Микрософта ее дофига
← →
umbra © (2006-02-14 18:24) [30]Удалено модератором
← →
Сенокур Петя (2006-02-15 10:37) [31]
> wal © (14.02.06 16:59) [29]
>
> > xml.load("C:\tests.xml");
> if not xml.load("C:\tests.xml") then PByte(0)^:=0;
Неаа... Просходит какая-то аварийная ситуация и вываливается окно:
"Project xxxx raised exception class yyyyy with message "zzzzzz".
Process stopped. Use Step or Run to continue."
Ну и на том спаисибо, буду пытаться дальше думать, а то начинаю комплексовать по поводу того, что слишком много вопросов у меня :)
> У Микрософта ее дофига
Будем искать
ЗЫ: спасиб за участие...
← →
wal © (2006-02-15 11:22) [32]
> Просходит какая-то аварийная ситуация и вываливается окно:
Что и требовалось доказать. Файл не может быть прочитан. Или его нет, или он кривой или еще что-нибудь.
← →
Loginov Dmitry © (2006-02-15 11:25) [33]
> wal © (07.02.06 15:05) [8]
>
> Создаешь шаблон с пустыми тэгами. Дальше что-то вроде этого:
>
> uses MSXML2_TLB;
А почему, собственно, MSXML2_TLB, а не MSXML_TLB? Имхо, библиотечка с интерфейсом MSXML2_TLB появляется после установки MSOffice. Т.е., если MSOffice не установлен, то некоторые функции, объявленные в MSXML2_TLB могут оказаться недоступными. Притом, MSXML_TLB генерируется на порядок быстрее :)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
Память: 0.52 MB
Время: 0.014 c