Login Register
Frontpage Code library Pastebin

Read & Write Settings

Author: MaGetzUb
Added: 4. toukokuuta 2011 kello 21.20
Edited: 28. toukokuuta 2011 kello 17.48
Category: Tiedostot

Description

Näillä funktiolla voit tallentaa tiedostoon asetuksia muuttujatyylisesti. Samanlaiset funktiot olivat wanhassa cbkk:a. :) WriteSetting(tiedosto$, tallennettavan muuttujan otsikko$, itse muuttujan arvo$, [välilyönnin korvaaja merkki]) ReadSetting(tiedosto$, haettavan muuttujan otsikko$, [välilyönnin korvaaja merkki]) Asetukset tallennetaan tiedostoon selkokielisinä. Tyyliin: NäytönVäriSyvyys = 32 NäytönMoodi = 1 MasterVolyymi = 100 MusiikinVolyymi = 65 ÄäntenVolyymi = 85

Code

Select all
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//Kirjoitetaan...
WriteSetting("Imahtebeast.ini", "txtline", "I am the best!")
//Luetaan...
Print ReadSetting("Imahtebeast.ini", "txtline")
WaitKey 

//Funktiot:
Function ReadSetting(file$, header$, spce$ = "_")
    f = OpenToRead(file$) 
        While Not EOF(f)
        _line$ = Replace(Lower(ReadLine(f)), " ", "")
        If GetWord(_line$, 1, "=") = Lower(header$) Then 
            dta$ = Replace(GetWord(_line$, 2, "="), spce$, " ")
        EndIf 
        Wend 
    CloseFile f
    Return Trim(dta$)
EndFunction 


Function WriteSetting(file$, header$, dta$, spce$ = "_")
    dta$ = Replace(dta$, " ", spce$)
    inpt$ = header$+" = "+dta$
    f = OpenToEdit(file$) 
        While Not EOF(f)
            pointer = pointer + 1
            _line$ = Replace(Lower(ReadLine(f)), " ", "")
            If GetWord(_line$, 1, "=") = Lower(header$) Then 
                WriteLine f, inpt$
                Return 1
            EndIf 
        Wend 
    CloseFile f
    f = OpenToEdit(file$) 
        For i = 0 To pointer
            empty = ReadLine(f)
        Next i 
        WriteLine f, inpt$
    CloseFile f    
EndFunction  

Comments

#7 Sent by: VesQ, 17. toukokuuta 2011 kello 16.20

Näissä funktioissa on vaan se jännä puoli, että ne poistavat kaikki välilyönnit. Tällöin esimerkiksi merkkijonoja tallennettaessa tulokset voivatkin olla odottamattomia - asetuksiin tallennettu käyttäjätunnus "I am the best" onkin yhtäkkiä muodossa "Iamthebest"

#8 Sent by: MaGetzUb, 28. toukokuuta 2011 kello 17.49

Noh, nyt tein niin, että voi asettaa välilyönnin korvaajamerkin. (Perusmerkkinä alaviiva _ ) Sitten kun teksti luetaan, korvaajamerkki muutetaan välilyönniksi. :)

#18 Sent by: VesQ, 25. elokuuta 2011 kello 14.07

Sitten vielä lisää siihen se että kun asetus tallennetaan, niin tallennettavassa arvossa olevat alaviiva-merkit muutetaan joksikin muuksi. Ettei tämä bugaisi silloin, kun joku haluaa tallentaa vaikkapa arvon "I am the Best_one"

Leave a comment

You must be logged in to comment.