Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

[Include] Bini - tekstinių failų krovimas saugojimas


bebras

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2824 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

### Įvadas

 

Sveiki, ši biblioteka leis jums lengvai saugoti bei krauti duomenis iš/į tekstinius failus. Žinoma kyla klausimas, kam to reikia, jau yra dini, y_ini bei milijonas SQL duomenų saugojimo būdų? 

 

 - Dini - senas ir lėtas

 - Y_Ini - Lietuvos bendruomenei atrodo sudėtingas

 - SQL - Reikalauja papildomų programų, gali atrodyti sudėtingas

 

 

Paminėjau kad dini yra lėtas, galite atlikti savo testus, bet štai mano rezultatai vykdant elementarų krovimą ir saugojimą 5 kartus: 

 

    Bini užtruko 49 MS

    Dini užtruko 1786 MS

 

### Kaip naudoti bini

 

#### Krovimas

 

Pirmiausia reikia atidaryti pasirinktą failą: 

 



    bini_Load("duomenys.ini");


 

Ir viskas, galite krauti duomenis naudodami ini_*Get funkcijas:

 



    new vardas[ MAX_PLAYER_NAME ];
    bini_Get("duomenys.ini", "vardas", vardas, sizeof(vardas));
    new skaicius = bini_IntGet("duomenys.ini", "skaicius");
    new Float:gyvybes = bini_FloatGet("duomenys.ini", "gyvybes");
    new bool:admin = bini_BoolGet("duomenys.ini", "adminas");


Svarbu! Nepamirškite uždaryti failo:

 



    bini_Save("duomenys.ini");


 

#### Saugojimas

 

Kaip ir kraunant pirmiausia reikia atidaryti failą: 

 



    bini_Load("duomenys.ini");


 

Galime pradėti saugoti duomenis:

 



    bini_Set("duomenys.ini", "vardas", "Bebras");
    bini_IntSet("duomenys.ini", "skaicius", 65468);
    bini_FloatSet("duomenys.ini", "gyvybes", 100.5);
    bini_BoolSet("duomenys.ini", "adminas", false);


 

Svarbu! Nepamirškite uždaryti failo:

 



    bini_Save("duomenys.ini");


 

#### Trynimas

 

Atidarom failą: 

 



    bini_Load("duomenys.ini");


 

Ištriname kažką: 

 



bini_Remove("duomenys.ini", "vardas");


 

Ir vėl uždarom failą: 

 



    bini_Save("duomenys.ini");


 

### Sakai kad bini greitesnis 36 kartus nei dini... kodėl? (teorija)

 

Labai skiriasi bini ir dini veikimo principai. 

 

Ką daro dini? Kas kartą panaudojus vieną iš dini funkcijų skaitomas failas. T.y. kas kartą jis atidaromas, perskaitomas/kažkas įrašoma ir vėl uždaroma. Apskritai skaitymas iš nuolatinės atminties(HDD/SDD) yra lėtas. Jeigu norite gauti 100 reikšmių, failas bus perskaitytas 100 kartų! Ar nebūtų paprasčiau tai daryti vieną kartą?

 

Tuo tarpu bini panaudojus bini_Open paima visą failą ir pasideda jį į RAM(į kintamuosius). Tai reiškia kad kai pavyzdžiui panaudojate bini_IntSet, jūs įrašote ne į failą, o į atmintį... Į failą įrašo bini_Save. Ji paima visas pateiktas reikšmes ir įrašo į failą. Tai reiškia kad nesvarbu kiek tarp atidarymo ir uždarymo kartų keisite duomenis, failas vistiek bus perskaitytas tik `vieną` kartą.

 

 

### Parsisiuntimas

 



Redaguota , nario Bebras
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 9 mėnesių...
  • Parašė po 3 mėnesių...
  • Parašė po 1 mėnesio...

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 2824 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...