Fișier Ini sau xml

Fișier INI sau XML

Este necesară stocarea datelor. Practic, acestea sunt șiruri de text - sunt grupate în grupuri și subgrupe.
Voiam să folosesc ini. dar nu există cuiburi și nu am găsit o funcție care să-mi permită să afișez toate grupurile pe care le am.






întrebări:
1. Există o astfel de funcție pentru fișiere ini?
2. Este mai usor sa folosesti xml?
3. Cum sa lucrezi cu xml (in specific:
3.1 Aveți nevoie de componente terțe?
3.2 cum se scrie, de exemplu, linia c: \ run.exe, în grupul de aplicații, în subgrupul video cu parametrul -mini
3.3. cum să obțineți o listă de grupuri și apoi pe lista de grupuri de subgrupuri și deja pe ele o listă de rânduri?

Eu nu sunt un fan al complexităților și ar sfătui ini (puteți și să o faceți), dar în acest caz, xml este!
aveți nevoie de un parser xml, citiți despre structura de stocare a datelor în xml.


> 1. Există o astfel de funcție pentru fișiere ini?

Fișierele Ini au funcția ReadString și WriteString. Cum le veți folosi - este chestia voastră. Dacă doriți, puteți crea o structură ierarhică pe fișierul ini. Este necesar să ne gândim doar puțin. )


> 2. Este mai usor sa folosesti xml?

Probabil mai ușor. Dar asta dacă nu ați scrie parserul va, și va folosi unele gata, apoi să aibă în vedere faptul că aceasta nu poate fi pe mașină în cazul în care începe programul.


> 3. Cum sa lucrezi cu xml (in specific:
> 3.1 Aveți nevoie de componente terțe?

Ce reprezintă componentele.


> 3.2 cum se scrie, de exemplu, linia c: \ run.exe, în grupul de aplicații,
> # xA0; în subgrupul video cu parametrul -mini

Evident, adăugarea unui nod cu noduri ca nod de nod video


> 3.3. Cum se obține lista grupurilor și apoi lista de grupuri
> subgrupe, și deja pe ele o listă de rânduri?

În general, recurența. În privat - puteți face fără ea.

1. nr
2. mai ușor
3. o întrebare dificilă
3.1 nu sunt necesare
3.2 este posibil pentru orice
3.3 selectnodes

Poți și cuiburi

Ai nevoie și pentru ce?
Dacă luăm în considerare și faptul că copiii cu același nume pot fi părinți complet diferiți.


> Am nevoie de componente terțe?
Este gata - TXMLDocument

> cum să obțineți lista de grupuri și apoi pe lista de grupuri de subgrupuri,
> # xA0 și deja pe ele lista de linii?
XPath ar trebui să ajute

> Ai nevoie și pentru ce?

starea necesită cuiburi

> Dacă luați în considerare și faptul că copiii cu același nume pot fi complet






> părinți diferiți.

și ce? câți părinți, atât de mulți copii! care este problema atunci?
Am spus că este posibil, dar este puțin mai complicat decât xml)


> dar acest lucru este puțin mai complicat decât xml)

În general, nu mai dificil.

> În general nu este mai dificil.

Aici este necesar să se gândească și în xml toate gata)

și ce? câți părinți, atât de mulți copii! care este problema atunci?
Am spus că poți, # xA0;)

secțiunea "arme" și "puști" și ambii au copii "patroni"
schițați o structură aproximativă

Dar acesta este un pic mai complicat decât xml

Asta se întreabă de ce aici ini.


> Secțiunea "arme" și "puști" și ambii copii "patroni"
> schițați o structură aproximativă
>

Și ce nu e clar? Puștile au numai cartușe, pușcă au și altele. Există vânătoare, există o unitate unitară.

tragi structura. și nu redenumiți secțiunile cartușului

și unde sunt secțiunile "arme" și "vinovat" aici?

va fi necesar, în general, să implementăm o componentă (cu cuibărire în ini)


> Fișierele Ini au funcția ReadString și WriteString. Cum poate
> le veți folosi - este a ta. Dacă doriți, puteți
> și să creați o structură ierarhică pe fișierul ini. Este necesar numai
> un pic de gândit. )

Da, înțeleg - doar numele întregii ierarhii nu va fi stabilit de mine - și îi puteți găsi - prin deschiderea și găsirea tuturor secțiunilor (am crezut că a existat o funcție - # xA0; foarte leneș să vă deranjez :))

> Probabil mai ușor. Doar aici dacă nu scrieți singur parserul
> tu vei, dar vei folosi ceva gata, atunci ai
> având în vedere faptul că este posibil să nu fie pe mașina unde începe
> programul tău.

Nu voi scrie parserul. În măsura în care înțeleg, există un parcelar Microsoft "a. Are totul sau va trebui să fie instalat.

> Ce reprezintă componentele.

Ei bine, nu știu, poate :)

> Este gata - TXMLDocument

Trebuie să puneți ceva pe computerul clientului?

> și unde sunt secțiunile "arme" și "vinovat" aici?

Ești bolnavă?

Și dacă specificați și părintele în fiecare secțiune, nu va fi deloc dificil.

> Și dacă specificați și părintele în fiecare secțiune - deloc
> va fi dificil.

da este tot ca 2 octeți pentru a transfera;)

Da pofik ce este.
Cuiburile și ierarhia sunt realizate, deci ar trebui să fie ușor.
Sau este dificil?

mai ales deoarece
da este tot ca 2 octeți pentru a transfera;)

1. citiți toate sect
2. citiți index1 din toate sect.

Și pentru al treilea nivel al ierarhiei?

> Și pentru al treilea nivel al ierarhiei?

în acest caz doar 2 nivele.

Procedura [Delphi] ReadSections (Strings: TStrings); suprasarcină; suprascrie;

descriere
Apelați ReadSections pentru a obține numele tuturor secțiunilor dintr-un fișier INI într-un obiect listă de șir.

Șirurile specifică obiectul șir pentru a ține numele preluate. Șirurile pot indica un obiect TStrings sau o proprietate a componentei, cum ar fi Elementele pentru o componentă TListBox.

în acest caz doar 2 nivele.

Este o ordine? Sau vrei să mă oferi hack?
Dacă este foarte necesar să primim toate atributele unui nivel (deși nu am văzut niciodată o astfel de problemă) - introducem conceptul de Nivel. Și vom încărca fișierul în structura ierarhică cu care lucrăm.


> în loc să utilizați xml care este destinat sarcinilor similare

XML este prea greu, supraîncărcat și redundant. Aș sfătui în direcția unor limbi de marcare mai ușoare, cum ar fi JSON sau YAML. Sunt mulți, de fapt.

Este o ordine? Sau vrei să mă oferi hack?

Totuși, se poate face fără inițializare. Pe un fișier text simplu.
Are nevoie de cineva?

XML este prea greu, supraîncărcat și redundant.







Articole similare

Trimiteți-le prietenilor: