Miten C++:lla voi käsitellä INI-tiedostoja (lukea/kirjoittaa)?
Windowsissa on valmiit funktiot INI-tiedoston käsittelyyn, tässä pieni esimerkki (C-kielellä):
#include <windows.h> int main(void) { long x; char tieto[50]; /* parametrit: osio - avain - tieto - tiedosto */ x = WritePrivateProfileString("Tiedot", "Nimi", "Kake", "c:\\omat\\testi.ini"); /* nyt tiedoston sisältö on: [Tiedot] Nimi=Kake */ if (x == 0) MessageBox(0, "Kirjoitus ei onnistunut!", "INI-esimerkki", 0); /* parametrit: osio - avain - oletus - merkkijono - mjonon pituus - tiedosto */ x = GetPrivateProfileString("Tiedot", "Nimi", "(nimetön)", tieto, 50, "c:\\omat\\testi.ini"); if (x == 0) MessageBox(0, "Kirjoitus ei onnistunut!", "INI-esimerkki", 0); else MessageBox(0, tieto, "INI-esimerkki", 0); }
Katso myös:
http://msdn.microsoft.com/library/default.asp?
Muuten funktiot täytynee tehdä itse, mikä on vähän vaikeampi juttu.
x = WritePrivateProfileString("Tiedot", "Nimi", "Kake", "c:\\omat\\testi.ini");
tämä siis kirjoittaa filuun ja
x = GetPrivateProfileString("Tiedot", "Nimi", "(nimetön)", tieto, 50, "c:\\omat\\testi.ini");
tämä lukee filusta?
näinkö on?
Niin. Windows koodauksessa kannattaa muuten selkeyden vuoksi (ja muutenkin) käyttää noita windows.h:n typedeffejä paluuarvon saavan muuttujan tyyppeinä esim. tässä tapauksessa 'long':n sijaan. Eli WritePrivateProfileString palauttaa BOOL tyypin ja GetPrivateProfileString DWORD:n.
oukkidoukki
Aihe on jo aika vanha, joten et voi enää vastata siihen.