Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: INI-tiedostojen käsittely

Monkkats [21.02.2004 16:10:57]

#

Miten C++:lla voi käsitellä INI-tiedostoja (lukea/kirjoittaa)?

Antti Laaksonen [21.02.2004 23:14:45]

#

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?url=/library/en-us/sysinfo/base/registry_functions.asp

Muuten funktiot täytynee tehdä itse, mikä on vähän vaikeampi juttu.

Meitsi [22.02.2004 14:58:51]

#

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?

thefox [23.02.2004 11:17:43]

#

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.

Meitsi [23.02.2004 19:30:34]

#

oukkidoukki

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta