![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как саписать данные из Edit в файл xml
Daria © (2006-02-07 14:25:00)Всем привет. Надо, чтобы пользователь на формочке вводил в едиты данные, а после надатия на кнопочку,эти данные записывались в файл .xml
Loginov Dmitry (2006-02-15 11:25:00) [1]
> wal © (07.02.06 15:05) [8]
>
> Создаешь шаблон с пустыми тэгами. Дальше что-то вроде этого:
>
> uses MSXML2_TLB;
А почему, собственно, MSXML 2_TLB, а не MSXML_TLB? Имхо, библиотечка с интерфейсом MSXML2_TLB появляется после установки MSOffice. Т.е., если MSOffice не установлен, то некоторые функции, объявленные в MSXML2_TLB могут оказаться недоступными. Притом, MSXML_TLB генерируется на порядок быстрее :)
wal (2006-02-15 11:22:00) [2]
> Просходит какая-то аварийная ситуация и вываливается окно:
Что и требовалось доказать. Файл не может быть прочитан. Или его нет, или он кривой или еще что-нибудь.
Сенокур Петя (2006-02-15 10:37:00) [3]
> 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."
Ну и на том спаисибо, буду пытаться дальше думать, а то начинаю комплексовать по поводу того, что слишком много вопросов у меня :)
> У Микрософта ее дофига
Будем искать
ЗЫ: спасиб за участие...
umbra (2006-02-14 18:24:00) [4]Удалено модератором
wal (2006-02-14 16:59:00) [5]
> xml.load('C:\tests.xml');
if not xml.load('C:\tests.xml') then PByte(0)^:=0;
> Кстати, а есть как.-нидь документация по MSXML2_TLB?
У Микрософта ее дофига
Сенокур Петя (2006-02-14 15:19:00) [6]
> 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 15:12:00) [7]
> [26] Сенокур Петя (14.02.06 15:06)
Код давай
Сенокур Петя (2006-02-14 15:06:00) [8]
> тэк-с, все работает. сохраняется, только абсолютно пустой
> файл
> <Цитата>
>
>
> Daria (07.02.06 16:12) [23]
> все, уже не пустой, но такой же как и был до запуска программы.
> т.е. ничего не добавляется. вот мне в name нужно добавить
> из edit1
а у меня файл пустой.... не подскажите в чем проблема?... не могу найти причину (в отличии от Daria ) :)
Daria (2006-02-07 16:26:00) [9]ой, спасибо огромное!!!! впервые в жизни вижу xml. пойду учить заодно :))
wal, ты просто гений!!!!
wal (2006-02-07 16:20:00) [10]
> [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:12:00) [11]все, уже не пустой, но такой же как и был до запуска программы. т.е. ничего не добавляется. вот мне в name нужно добавить из edit1
Daria (2006-02-07 15:59:00) [12]ой, минусы - фигня какая-то.
тэк-с, все работает. сохраняется, только абсолютно пустой файл
Reindeer Moss Eater (2006-02-07 15:59:00) [13]Кстати, можно ли сочинить такой XPath, который вернет все узлы в иерархии начиная с корня?
wal (2006-02-07 15:55:00) [14]
> [16] Daria (07.02.06 15:51)
а что это за минусы?
wal (2006-02-07 15:54:00) [15]
> [17] Reindeer Moss Eater © (07.02.06 15:52)
Точно, старею :)
wal (2006-02-07 15:53:00) [16]Если считываешь из файла, то просто load, а не loadXML
Reindeer Moss Eater (2006-02-07 15:52:00) [17]for i:=0 to Pred(nl.length) do
Daria (2006-02-07 15:51:00) [18]а сам файл 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>
Daria (2006-02-07 15:51:00) [19]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;
wal (2006-02-07 15:49:00) [20]Полностью код приведи