Folosim txmldocument

Adăugați un nou modul Fișier-> Nou-> Unitate la proiect. Aici vom descrie procedurile și funcțiile care nu sunt legate de interfața și variabilele globale. Prima este funcția de încărcare a bazei de date de știri. Toate știrile vor fi stocate în format XML.

funcția LoadXMLBase (proprietar TComponent). boolean;
începe
Rezultat: = false;
XMLDoc: = TXMLDocument.Create (proprietar);
dacă începe apoi FileExists ('news.xml')
XMLDoc.FileName: = 'news.xml';
Rezultat: = adevărat;
incheia altul MessageDLG ("Fișierul de știri nu a fost găsit", mtError, [mbOK], 0);
se încheie;

Salvați fișierul în dosarul cu programul. Pentru prima dată acest lucru este de ajuns, în procesul de scriere a programului, structura va fi finalizată.

Acum trebuie să învățați cum să descărcați date dintr-un fișier în arborele de știri. În acest scop, scriem următoarea procedură:

procedura LoadTree (arbore TTreeView);
var
i. integer;
Nod. IXMLNode;
începe
xmlDoc.Active:=true;
pentru i: = 0 la XMLDoc.DocumentElement.ChildNodes.Count - 1 începe
Nod: = XMLDoc.DocumentElement.ChildNodes [i]; AddTreeNode (arbore, Node.ChildNodes ['Grup'] .Text, Node.ChildNodes ['Nume'] .Text);
se încheie;
xmldoc.Active:=false;
se încheie;

Procedura acceptă arborele nostru ca parametru și adaugă noduri la acesta. Buclele prin nodurile copil ale unui document, numărul este stocat în comunicare-ve XMLDoc.DocumentElement.ChildNodes.Count După cum se vede AddTreeNode a doua procedură utilizează o procedură care are două Node.ChildNodes parametru string [ „grup“]. Text și Node.ChildNodes [ ' Name]] și le adaugă în mod corespunzător la nodurile copacului. Ce se face acest cod într-o procedură separată - vă spun mai târziu. Între timp, ne uităm la textul acestei proceduri:

procedură AddTreeNode (arbore .TreereeView; sGroup, sName.);
var
j. întreg;
TND. TTreeNode;
găsi. boolean;
începe
dacă sGroup = '' atunci tnd: = zero
altceva începe
găsi: = false;
pentru j: = 0 la tree.Items.Count-1 începe
dacă tree.Items.Item [j] .Text = sGroup apoi începe
tnd: = tree.Items.Item [j];
găsi: = true;
pauză;
se încheie;
se încheie;
dacă nu găsiți apoi tnd: = tree.Items.AddChild (nil, sGroup);
se încheie;
tree.Items.AddChild (tnd, sName);
se încheie;

Procedura AddTreeNode este foarte simplă: aici verificăm valoarea parametrului sGroup. dacă este gol, atunci adăugați nodul la nivelul zero. Dacă acest parametru are o valoare, căutați nodul corespunzător la nivelul zero și adăugați un copil la acesta dacă acesta este găsit. Dacă nu există niciun nod cu o asemenea valoare, îl vom crea. În acest fel, este implementată o grupare de fluxuri de știri.

Acum creați un handler de evenimente OnCreate pentru formularul principal. Se pare ca aceasta:

procedura TRSSReaderV2.FormCreate (expeditor: TObject);
începe
dacă începe LoadXMLBase (auto)
LoadTree (NewsList);
se încheie;
se încheie;

Rulați programul (F9). Asta ar trebui să se întâmple.

Folosim txmldocument

Articole similare