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.