Programowanie Główna arrow c++ arrow Pliki INI


Pliki INI
Pliki INI.

Pliki INI są plikami konfiguracyjnymi, i do tego celu są głownie stosowane, przechowują najczęściej właściwości różnych obiektów, choć nie zawsze, ponieważ, są bardzo wygodne w korzystaniu, przez co łatwo i wygodnie używa się ich do innych zadań związanych z zapisem danych do pliku.
Jeśli czytelnik miał już wcześniej do czynienia z zapisem/odczytem do rejestru, zauważy podobieństwo, jednak tutaj nie zapisujemy do klucza a do piku.
Aby moc zacząć korzystać z plików INI w kodzie źródłowym w środowisku BCB należy dołączyć plik inifiles.hpp.

1
2
3

#include <inifiles.hpp>


Teraz możemy już utworzyć obiekt klasy TiniFiles.

1
2
3

TIniFile *PlikIni=new TIniFile("C:\plik.ini");


Utworzyliśmy właśnie plik ini gotowy już do wykorzystania.

Do pliku ini możemy zapisać w następujący sposób (przedstawię to na różnych typach).

1
2
3
4
5
6
7
8
9
10
11
12

TIniFile *PlikIni=new TIniFile("C:\plik.ini");

bool ZmiennaLogiczna=true;
AnsiString Tekst="Jakiś tam tekst";
int liczba=123;

PlikIni->WriteBool("Sekcja","ZmiennaLogiczna",ZmiennaLogiczna);
PlikIni->WriteString("Sekcja","tekst",Tekst);
PlikIni->WriteInteger("Sekcja","liczba",liczba);
delete PlikIni;


Wykonanie powyższego kodu spowoduje utworzenie pliku "plik.ini" na dysku c oraz zapisanie do niego poniższego tekstu:

1
2
3
4
5
6

[Sekcja]
ZmiennaLogiczna=0
tekst=Jakiś tam tekst
liczba=123


czyli jako parametry funkcji podajemy kolejno :
-nazwa sekcji
-nazwa wartości
-wartość

Teraz przedstawię sposób odczytu tych wartości.

1
2
3
4
5
6
7
8
9
10
11
12

TIniFile *PlikIni=new TIniFile("C:\plik.ini");

bool ZmiennaLogiczna;
AnsiString Tekst
int liczba;

ZmiennaLogiczna=PlikIni->ReadBool("Sekcja","ZmiennaLogiczna",false);
Tekst=PlikIni->ReadString("Sekcja","tekst","domyślny tekst");
Liczba=PlikIni->ReadInteger("Sekcja","liczba",0);
delete PlikIni;


W tym przypadku zmienia się tylko nazwa funkcji z Write na Read, a jako parametry podajemy kolejno:
-Nazwa sekcji
-Nazwa wartości
-Domyślna wartość, (jeśli w pliku ini nie ma przypisanej wartości)

Jeśli chcemy odczytać wszystkie sekcje w pliku INI, musimy mieć jakiś obiekt z "Items" np. ListBoxa, wtedy wpisanie Sekcji wygląda następująco.

1
2
3

PlikIni->ReadSections(ListBox->Items);


Jeśli chcemy odczytac liste nazw wartości postępujemy tak:

1
2
3

PlikIni->ReadSectionsValue("Sekcja",ListBox->Items);


Usuwanie całej sekcji

1
2
3

PlikIni->EraseSection("Sekcja");


Usuwanie podanej wartości z sekcji

1
2
3

PlikIni->DeleteKey("Sekcja","NazwaWartości");


Sprawdzenie czy istnieje sekcja/wartość
1
2
3
4
5
6
7

if(PlikIni->SectionExists("Sekcja"))
ShowMessage("sekcja istnieje");

if(PlikIni->ValueExists("Secka","Nazwa wartości"))
ShowMessage("Wartość istnieje);




Dodatkowo można zapisać następujące typy wartości:
-WriteDate
-WriteTime
-WriteDateTime

site copyright © http://www.e-kursy.com
na przeprosiny | przepraszam | odzyskiwanie zdjęć | odzyskiwanie danych Łódź | tworzenie stron warszawa
fontanny | Projekty Domów | GRY ONLINE | płyta msi | Builders London | Efect Doradztwo Finansowe | Opony | program partnerski | logistyka | MTA GTA