Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Delphi - *.ini - Ako zistím počet kľúčov v sekcii?

Ťažko hľadať v helpe v Delphi, keď presne neviem, čo hľadať. Je nejaká funkcie v Delphi pre načítanie všetkých kľúčov z *.ini súboru z určitej sekcie? Tiež potrebujem aj ich počet. Ide o to, aby som nemusel mať v súbore ešte aj informáciou o počte takýchto kľúčov v sekcii. Takže znovu. Mám v *.ini sekciu a v nej mám kľúč oznamujúci počet klúčov v tej sekcii. Kľúče sú s rovnakým názvom, len na konci názvu obsahujú ešte poradové číslo. No a tieto kľúče načítam. Je možnosť zostiť počet týchto kľúčov v sekccii aj bez toho, aby som musel mať kľúč oznamujúci ich počet? Určite sa to dá cez TValueListEditor, ale to je vizuálna komponenta a je to zbytočné mrhanie prostriedkami. Moja predstava je takáto:

pocetklucov := Ini.KeyCount('Sekcia');
Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Použij objekt TIniFile, speciálně TIniFile.ReadSectionValues (...(parametry najdeš v helpu)...). Vše…
Rce 28.06.2006 23:33
Rce
Ee, register oblúkom vynechám. Okrem toho do tohto INI budem pristupovať často aj ručne. BTW, že vis…
msx. 29.06.2006 14:41
msx.
BTW TIniFile a TStrings zrovna nejsou visuální komponenty... :-);-) A klidně bych je použil. Jsou do…
Rce 29.06.2006 22:23
Rce
Pozor nie TStrings. TStrings je abstratná trieda. Zrejme sa myslí TStringList. Už som mal dosť trápe…
msx. 29.06.2006 23:10
msx.
Ano, TStrings je abstraktní třída a můžeš z toho TIniFile to narvat do všeho, co je na této třídě po…
Rce 29.06.2006 23:40
Rce
Ja som to myslel ako na hotovo, čiže načítať priamo do použiteľného objektu, ale vlastne to je pravd…
msx. 30.06.2006 00:22
msx.
Speciálně u TMemo je vlastnost Lines: TStrings implementována jako TMemoStrings, která všechny abstr… poslední
Rce 30.06.2006 00:59
Rce

Použij objekt TIniFile, speciálně TIniFile.ReadSectionValues (...(parametry najdeš v helpu)...). Všechny klíče nacpe do TStrings kde TStrings.Count ti dá přímo jejich počet.
PS: Visuální komponenty jdou používat též "nevisuálně", když si je vyrobíš za běhu na vlastní triko - někdy to ani jinak nejde :-).
//Edit: Nebylo by to lepší nacpat do registru, než do INI?

Pozor nie TStrings. TStrings je abstratná trieda. Zrejme sa myslí TStringList. Už som mal dosť trápenia s TStrings až mi Jan Fiala vysvetlil, že ako samostatná trieda je to použiteľné len ako "predok". Preto v úzodzovkách, lebo sa to dá použiť aj ako člen triedy, ak sa nadefinujú niektoré abstrakné virtuálne metódy v TStrings.

Ja som to myslel ako na hotovo, čiže načítať priamo do použiteľného objektu, ale vlastne to je pravda, že TStrings je podstata. Mne skôr išlo o to, aby sa nestalo, že o týždeň niekto napíše, že s tými textami nievie v TStrings pracovať. Ozaj, V TStrings nefunguje Count, pretože je to abstraktná metóda, ako je to upravené v Memo, kde je vlastnosť Lines postavená na základe TStrings a teda Count musí byť naprogramovaný? Ide mi o to, že ako sa dá naprogramovať metóda, ak nie je objekt zdedený v potomkovi, ale priamo je v triede (TMemo) definovaný objekt (TStrings) a metóda Count tu už funguje.

Speciálně u TMemo je vlastnost Lines: TStrings implementována jako TMemoStrings, která všechny abstraktní třídy definuje.
//Edit: Prostě přistupuje se k tomu jako k TStrings a jak je to konkrétně implementováno, je před uživatelem (programátorem) skryto páč je to nepodstatné. :-)

Zpět do poradny Odpovědět na původní otázku Nahoru