![]() |
|
|
|
|
#1
|
|||
|
|||
|
Доброго времени суток)
Пытаюсь создать программу для создания графов по типу 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. В свое время их имена менялись, а с тех пор таким методом давно не пользовался... |