Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
2-1141394071
n_sch
2006-03-03 16:54
2006.03.19
Помогите разобраться с DBRichEdit !!!


2-1140251747
WestBronx
2006-02-18 11:35
2006.03.19
GoTo


1-1139596792
guitarist
2006-02-10 21:39
2006.03.19
Координаты курсора относительно Image


15-1140515617
VanDet
2006-02-21 12:53
2006.03.19
Мастера делфи решите за деньги задачу !!!!!!!!!!!!!!!!!!!!!!!!!!!


1-1139581439
17Landgraf
2006-02-10 17:23
2006.03.19
Delphi 6 и Crystal Reports 10, подскажите.......





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский