Delphi (2.) - Práce se soubory, *.ini soubory a registry
Zde Vám vysvětlím, jak používat obyčejné soubory, INI soubory a registry systému a taky podrobně popíšu, jak na ně.
INI soubory jsou, sice podle někoho(dříve i podle mně) zastaralé soubory pro ukládání konfiguračních inofmrací. Než Vás zasvětím do tajů používání INI souborů, tak vám názorně vyložím výhody proti jiným typům ukládání konfiguračních informací. Konfiguraci programu můžeme uložit to těchto čtyřech míst:
1) INI soubor
+ Jeden relativně malý soubor pojme přehledně všechny konfigurační informace.
+ Vcelku jednoduchý postup pro odinstalování.
+ Jednoduché programování.
2) Obyčejný soubor
- Programátorsky složité
+ jinak snad bez problémů.
3) Registr WINDOWS
- 95% chyb windows je způsobeno přeplácanými registry. A uvidíte jak si je zasekáte při ladění programu.
- Musíte už při programování myslet na UNINSTAL program, k dobré etice patří odebrat z registru to co jsem tam dal, ale většinou se mi to nepovede.
+ směřování všech informací různých programů do jedné 'centrály'
4) Databáze
- Hodí se pro uchování velmi velkého množství dat stejného typu.
Obyčejný soubor
var seznam: TextFile;
// Možnos deklarovat jako seznam: File of ... (File of integer, File of string, File of boolean ...) // Přiřadí ke jménu souboru cestu k souboru AssignFile(seznam,'data.dat'); // Zakládá a současně otevírá nový soubor Rewrite(seznam); // Otevívá již existující soubor Reset(seznam); // Otevírá soubor pro přidání záznamu na konec; Append(seznam); // Zapíše záznam do souboru Write(seznam,'informace'); // Zapíše do souboru a skočí na další řádek Writeln(seznam,'informace'); // Zapíše na konec souboru Flush(seznam); // Přečte záznam do proměnné Read(seznam,promenna); // Přečte záznam do proměnné a skočí v souboru na další řádek Readln(seznam,promenna); // Zavře dříve otevřený soubor Closefile(seznam);
Dále existují dvě procedury LoadFromFile a SaveToFile, jejichž použití je mnohem jednodušší. Jak vidíte, žádné proměnné, deklarace ani speciální procedury:
Memo.Lines.LoadFromFile('data.txt');
Image.Picture.SaveToFile('obrazek.bmp');
INI soubor
uses IniFiles;
Var
DataFile: TIniFile;
begin
DataFile := TIniFile.Create('data.ini'); // vytvoříme INI soubor
Takto se nám soubor data.dat vytvoří v adresáři windows (pokud již existuje, pouze se otevře). Zřejmě ale nechcete mít v adresáři windows, ale na očích v adresáři programu, a proto řádek trochu pozměníme:
DataFile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'data.ini');
// Zapíšeme string do INI souboru do První sekce k první položce
DataFile.WriteString('Prvni sekce','Prvni polozka','informace');
// Zapíšeme integer
DataFile.WriteInteger('Prvni sekce','Druha polozka',123);
// Zapíšeme hodnotu boolean
DataFile.Writebool('Druha sekce','Prvni polozka',true);
// čteme string
PromnenaString := DataFile.ReadString('Prvni sekce','Prvni polozka','ERROR');
// čteme integer
PromnenaInteger := DataFile.ReadInteger('Prvni sekce','Druha polozka',0);
// čteme boolean
PromnenaBoolean := DataFile.ReadBool('Druha sekce','Prvni polozka',false);
DataFile.Free;
Poslední parametr bude vrácen v případě neúspěchu. (Pokud se nepodaří najít sekci nebo položku). Výsledný soubor data.ini by měl vypadat asi takto:
[Prvni sekce] Prvni polozka='informace' Druha polozka=123 [Druha sekce] Prvni polozka=true
Registr systému
uses
Registry
var
reg: TRegistry;
begin
reg := TRegistry.Create; // vytvori reg
reg.RootKey := HKEY_CURRENT_USER; // korenovy klic
reg.OpenKey('\software\',true); //otevre klic
reg.WriteString('cti','ahoj'); // zapise string
reg.WriteInteger('cti',123); // zapíše integer
reg.WriteBool('cti',true); // zapíše boolean
ShowMessage(reg.ReadString('cti')); // přečte string
ShowMessage(reg.ReadInteger('cti'));// přečte integer
ShowMessage(reg.ReadBool('cti')); // přečte boolean
reg.CloseKey; //zavre klic
reg.Free; // uvolni reg
end;
Další příkazy pro práce se soubory
Další užitečné příkazy pro práci se soubory jsou zde: FileExist, DeleteFile, RenameFile, ChangeFileExt, ExtractFileName, ExtractFileDir, ExtractFileDrive, ExtractFilePath, ExtractRelativePath.
Vyšlo 17.08.2001, v blogu: 0 1 2 3 4 5 6 7 8
Děkuji, že jste se rozhodl(a) přečíst tento článek. Budu rád i za komentář. Pokud Vás tento článek zaujal a rádi byste jej doporučili ostatním, podpořte mně prosím tím, že věnujete minutku svého času a uděláte mi reklamu na linkuj.cz, vybrali.sme.sk či jagg.cz. Přeji příjemné čtení
Poslední články
- Photoshop Tutoriály (2.) - Temná hvězdná obloha
- OpenGL (2.) - Čtverec s texturou
- OpenGL (1.) - Čtverec s interpolací barvy
- 3D Studio MAX (4.) - Jak vytvořit laser
- 3D Studio MAX (3.) - Tvorba 3D krajiny
- Delphi (4.) - Zajímavé zdrojáky
- Delphi (3.) - Detekce typu procesoru, jeho frekvence a využití
- Delphi (2.) - Práce se soubory, *.ini soubory a registry
- Delphi (1.) - Jak zobrazit startovací obrázek
- 3D Studio MAX (2.) - Jak na ohnivé explose
- 3D Studio MAX (1.) - Panel nástrojů ve 3D Studiu MAX