Delphi > Obecné

Delphi 10.4.2 a IniFiles

(1/2) > >>

Jan Fiala:
Od Delphi 10.4 se začala jinak chovat práce s INI soubory.
Týká se to jak TIniFile, tak i TMemIniFile
Používal jsem to, že ReadSectionValues() vracelo obsah sekce bez ohledu na to, zda tam byla nebo nebyla rovnítka
Zjistil jsem, že už tomu tak není a pokud řádky nejsou ve správném formátování (variable=value), tak se nevrátí nic, protože INI při načtení ty řádky ignoruje.
Vím, že jsem INI zneužíval na něco, na co nebyly dělány, ale je informace pro ostatní

Nehledě na to, že EraseSection padá u větších INI souborů v 10.4.2 na výjimky.

Radek Červinka:
Zajimave, mezi 10.4.2 a 10.3.3 je jedina zmena v inifiles podpora ReadInt64 a WriteInt64.
Zmeny ohledne section jsou v drivejsich verzi (konkretne 10.2 byl implementovan hashlist), vsechno je mozne, ale nenasel jsem jediny report ohledne EraseSection , coz bych za 2+ roky ocekaval.

pf1957:

--- Citace: Jan Fiala  13-05-2021, 09:41:03 ---Týká se to jak TIniFile, tak i TMemIniFile

--- Konce citace ---
To je zajimave, protoze TIniFile byvalo jen zapouzdrenim volani Win API funkci Read/WritePrivateProfileString(), zatimco ten TMemIniFile byvala samostatne cela implementace.

Jan Fiala:

--- Citace: Radek Červinka  13-05-2021, 09:54:13 ---Zajimave, mezi 10.4.2 a 10.3.3 je jedina zmena v inifiles podpora ReadInt64 a WriteInt64.
Zmeny ohledne section jsou v drivejsich verzi (konkretne 10.2 byl implementovan hashlist), vsechno je mozne, ale nenasel jsem jediny report ohledne EraseSection , coz bych za 2+ roky ocekaval.

--- Konce citace ---

Je mozné, že to bylo změněno dřív, 10.3 jsem skoro přeskočil. Zaregistroval jsem to až teď.
Co se týká EraseSection(), stává se mi to u větších INI souborů (asi 40kB) a většího množství zápisu najednou, kdy třeba po uložení parametrů přepisuju skoro celý obsah INI souboru (několik sekcí) a chtěl jsem mít nějaké sekce slušně seřazené, takže jsem je při zápisu smáznul a zapisem vytvořil znovu.
TFastIniFile, který je koncipovaný podobně jako TMemIniFile má metodu ClearSection(), která jen vyprázdní sekci bez jejího rušení a zatím to vypadá že tohle problémy nedělá.

Spíš jsem to bral jen jako informaci pro ostatní, pokud by měli nápad ukládat do ini něco jiného než se čeká.

PetrB0:
Ahoj,
já už jsem si toho všimnul dříve. Dělal jsem si ini file, kde jsem ručně dopisoval význam jednotlivých nastavení v podobě komentářů před řádky, kterých se to týkalo. A když jsem do toho souboru přes Delphi něco napsal, tak mi to ty komenty sežralo. Ale bral jsem to jako vlastnost Ini soborů, tak jsem to obešel.

Pb

Navigace

[0] Seznam témat

[#] Další strana

Přejít na plnou verzi