|
#1
|
|||
|
|||
Помогите с XML
Доброго времени суток)
Пытаюсь создать программу для создания графов по типу Drag-and-drop )) Все вершины запоминаются в массиве. Хочу подключить БД как замену. Да и сохранять\загружать старые работы можно будет... ADO - Надо установленный MSOffice BDE & dbExpress - наслышан о ненадежности Решил использовать XML...Но.. Не могу найти толкового объяснения как с ним работать. Надо: 1) Создание самого XML файла (Чтобы программа создавала) 2) Создание таблицы (№ элем. , положение по Х, положение по Y, тип (ребро, вершина и тд) 3) При создании нового элемента создавалась новая строка в таблице. 4) Считывание данных с таблицы. 5) Запись данных в таблицу. Кто чем может... ПЛИЗ! ПОМОГИТЕ! |
#2
|
|||
|
|||
ADO и MSOffice никак не связаны.
Я для работы с XML использую класс NativeXML (где брал не помню). Удобный, простой, функциональный. Для поставленной задачи хватит с запасом. Попробуй найти, посмотреть, если что будет непонятно - спрашивай. |
#3
|
|||
|
|||
1. Есть стандартный компонент TXMLDocument - обертка над MS'овским.
2. Для работы с БД можно вытащить (найти) какой-нить компонент для работы, например, с dbf. Поищи на www.torry.ru. 3. Ну а что тебе мешает просто сохранять массив в типизированный файл, а потом читать из него? |
#4
|
|||
|
|||
Цитата:
Хмм... типизированый файл? А так мона? Мона инструкцию как в него сохранять и считывать? (Ведь это же массив) |
#5
|
|||
|
|||
Да все просто.
Для начала делаешь запись для своих данных. Код:
type TGraf = record No : Integer; X, Y : Integer; Edge : Integer; end; Далее - в массиве держишь именно эти записи, т.е.: Код:
var AGraf : Array Of TGraf; Ну а сохранение и чтение через File Of: Код:
procedure SaveGraf(AFileName : String); var F : File Of TGraf; I : Integer; begin AssignFile(F,AFileName); Rewrite(F); For I := Low(AGraf) To High(AGraf) Do Write(F,AGraf[i]); CloseFile(F); end; procedure LoadGraf(AFileName : String); var F : File Of TGraf; begin SetLength(AGraf,0); AssignFile(F,AFileName); Reset(F); While Not EOF(F) Do Begin SetLength(AGraf,Length(AGraf)+1); Read(F,AGraf[High(AGraf)]); End; CloseFile(F); end; Что-то типа так. Мог немного напутать с именами процедур, типа не Rewrite, а RewriteFile. В свое время их имена менялись, а с тех пор таким методом давно не пользовался... |