unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, xmldom, XMLIntf, msxmldom, XMLDoc, StdCtrls, unit2, Menus, DB, ADODB; type TForm1 = class(TForm) Memo1: TMemo; XMLDocument1: TXMLDocument; Edit1: TEdit; Button2: TButton; OpenDialog1: TOpenDialog; Button1: TButton; GroupBox1: TGroupBox; MainMenu1: TMainMenu; Soubor1: TMenuItem; Konec1: TMenuItem; Npovda1: TMenuItem; Oprogramu1: TMenuItem; Label1: TLabel; RadioButton1: TRadioButton; RDSConnection1: TRDSConnection; procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Konec1Click(Sender: TObject); procedure Oprogramu1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses Unit3; {$R *.dfm} procedure TForm1.Button2Click(Sender: TObject); begin OpenDialog1.Execute; Edit1.Text:=OpenDialog1.FileName; end; procedure TForm1.FormCreate(Sender: TObject); var i,e,r:integer; gates_y: array of string; temp:string; begin setlength(gates_y, 1); r:=0; for i:=0 to XMLDocument1.DocumentElement.ChildNodes.Count-1 do begin // vypisu si do Mema inputy site if XMLDocument1.DocumentElement.ChildNodes[i].NodeName = 'input' then begin Memo1.Lines.Add(XMLDocument1.DocumentElement.ChildNodes[i].NodeName+'; id: '+XMLDocument1.DocumentElement.ChildNodes[i].Attributes['id']); Memo1.Lines.Add(''); end; if XMLDocument1.DocumentElement.ChildNodes[i].NodeName = 'gate' then begin gates_y[r]:=XMLDocument1.DocumentElement.ChildNodes[i].Attributes['y']; inc(r); setlength(gates_y, length(gates_y)+1); // zaznamenam vysky bran, abych vedel, jak jdou po sobe a mohl je pozdeji ve spravnem poradi zpracovat end; end; // BubbleSort - seradim si brany for i:=0 to length(gates_y)*2 do begin for e:=0 to length(gates_y)-3 do begin if strtoint(gates_y[e]) > strtoint(gates_y[e+1]) then begin temp:=gates_y[e+1]; gates_y[e+1] := gates_y[e]; gates_y[e] := temp; end; end; end; for r:=0 to length(gates_y)-1 do begin for i:=0 to XMLDocument1.DocumentElement.ChildNodes.Count-1 do begin if XMLDocument1.DocumentElement.ChildNodes[i].NodeName = 'gate' then begin if XMLDocument1.DocumentElement.ChildNodes[i].Attributes['y'] = gates_y[r] then begin Memo1.Lines.Add(inttostr(r+1)+'. '+XMLDocument1.DocumentElement.ChildNodes[i].NodeName+'; typ: '+XMLDocument1.DocumentElement.ChildNodes[i].Attributes['type']); // vypisuji serazene brany podle souradnice Y for e:=0 to XMLDocument1.DocumentElement.ChildNodes[i].ChildNodes.Count-1 do begin if XMLDocument1.DocumentElement.ChildNodes[i].ChildNodes[e].NodeName = 'input' then Memo1.Lines.Add(' I:'+XMLDocument1.DocumentElement.ChildNodes[i].ChildNodes[e].Attributes['id']); if XMLDocument1.DocumentElement.ChildNodes[i].ChildNodes[e].NodeName = 'output' then Memo1.Lines.Add(' O:'+XMLDocument1.DocumentElement.ChildNodes[i].ChildNodes[e].Attributes['id']); end; // vypisu inputy a outputy bran Memo1.Lines.Add(''); end; end; end; end; for i:=0 to XMLDocument1.DocumentElement.ChildNodes.Count-1 do begin if XMLDocument1.DocumentElement.ChildNodes[i].NodeName = 'output' then begin Memo1.Lines.Add(XMLDocument1.DocumentElement.ChildNodes[i].NodeName+'; id: '+XMLDocument1.DocumentElement.ChildNodes[i].Attributes['id']); Memo1.Lines.Add(''); end; // vypisu outputy site end; // chyba : nemel jsem radit jen brany, ale i vstupy a vystupy :( end; procedure TForm1.Button1Click(Sender: TObject); begin XMLDocument1.FileName:=Edit1.Text; XMLDocument1.Active:=True; Memo1.Clear; Form1.FormCreate(Sender); end; procedure TForm1.Konec1Click(Sender: TObject); begin Application.Terminate; end; procedure TForm1.Oprogramu1Click(Sender: TObject); begin AboutBox.Show; end; end.