[ steewsc @ 26.07.2003. 01:01 ] @
Nasao sam nacin (ovo je iz jednog Help-a) kako da se :
-kreira nov *.ini fajl
-pise u njemu
-cita iz njega
----------------------------------------------------------------------------
Pre nego sto se bilo sta uradi kreira se modul (i snimi pod imenom 'UseIni.BAS',
ne znam da li je ovo bitno ali vi ga tako snimite) i u njega se upise sledeci kod:

UseIni.bas
Code:

 Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, _
ByVal lpFileName As String) As Long
Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" _
(ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, _
ByVal lpFileName As String) As Long

Function GetProfile(lpAppName$, lpKeyName$, lpDefault, lpFileName$)
    Dim lpReturnString$, nSize%, Valid%
    lpReturnString$ = Space$(128)
    nSize% = Len(lpReturnString$)
    Valid% = GetPrivateProfileString(ByVal lpAppName$, ByVal lpKeyName$, _
ByVal lpDefault, ByVal lpReturnString$, ByVal nSize%, ByVal lpFileName$)
    GetProfile = Left$(lpReturnString$, Valid%)
End Function

Sub WriteProfile(lpAppName$, lpKeyName$, lpString$, lpFileName$)
    Dim Valid%
    Valid% = WritePrivateProfileString(lpAppName$, lpKeyName$, lpString$, lpFileName$)
End Sub

Function GetProfileSection(lpAppName As String, lpFileName As String) As String
    Dim strReturnString As String
    Dim lSize As Long, lValid As Long
    
    strReturnString = Space$(256)
    lSize = Len(strReturnString)
    lValid = GetPrivateProfileSection(ByVal lpAppName, ByVal strReturnString, _
ByVal lSize, ByVal lpFileName)
    GetProfileSection = Left$(strReturnString, lValid)
End Function


------------------ ------------------ ------------------ ------------------ ------------------ ------------------ ------------------
E sad se u kod forme (General) upise sledeci kod:


------------------ ------------------ ------------------ ------------------ ------------------ ------------------ ------------------
------------------ ------------------ ------------------ ------------------ ------------------ ------------------ ------------------
-Ako hocemo da kreiramo (i ujedno upisemo informacije u Ini fajl) Ini fajl koristimo sledeci kod:
------------------ ------------------ ------------------ ------------------ ------------------ ------------------ ------------------
POCETAK
WriteProfile "Informations", "Registrovana verzija", "False", "Regcheck.INI"
KRAJ
Ovako ovo izgleda u opstem obliku : Komanda "[Section]", "Key=","Value","INI-File"
------------------ ------------------ ------------------ ------------------ ------------------ ------------------ ------------------
WriteProfile => Komanda za pisanje po Ini fajlu
"[Section]" => Odeljak u Ini fajlu (Moze da ih ima vise)
"Key=" => Naziv promenljive
"Value" => Vrednost promenljive
"INI-FILE" => Ini fajl (Ako se stavi samo ime Ini fajla (MojINI.INI na primer)
onda se Ini fajl nalazi u 'C:\Windows\' direktorijumu, a moze i da se uz ime doda i
path Ini fajla (C:\MojIni\MojIni.INI))


------------------ ------------------ ------------------ ------------------ ------------------ ------------------ ------------------
------------------ ------------------ ------------------ ------------------ ------------------ ------------------ ------------------
-Ako hocemo da citamo informacije iz Ini fajla koristimo sledeci kod:
------------------ ------------------ ------------------ ------------------ ------------------ ------------------ ------------------
POCETAK
Text1.Text = GetProfile("Informations", "Registrovana verzija", "0", "Regcheck.INI")
KRAJ
Ovako ovo izgleda u opstem obliku : Text1.Text= GetProfile ("[Section]", "Key=","Value","INI-File")
------------------ ------------------ ------------------ ------------------ ------------------ ------------------ ------------------
"[Section]" , "Key=" , "Value" i "INI-FILE" imaju istu funkciju kao i pri kreiranju Ini fajla.


------------------ ------------------ ------------------ ------------------ ------------------ ------------------ ------------------
------------------ ------------------ ------------------ ------------------ ------------------ ------------------ ------------------





TOLIKO OD MENE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ©Î@
[ X-Cite @ 04.02.2005. 08:39 ] @
Jedna mi stvar nije bash jasna ovdje...

ako upisem ovaj kod za citanje iz INI-ja (prije toga sam upisivao gornjim kodom i dodao i modul UseINI.bas) on mi ne vraca to sto pise u INI-ju nego mi vraca to sto sam napisao ovdje (obojio sam crveno), i nije bitno dali je to broj ili text on ustvari na neki način onda i ne gleda u INI nego izpiše to što mu stavimo u ""

POCETAK
Text1.Text = GetProfile("Informations", "Registrovana verzija", "0", "Regcheck.INI")
KRAJ

Kako da dobijem tu vrijednost, znamo da je vrijednost sve što nam treba iz INI-ja

Hvala
[ mladenovicz @ 04.02.2005. 09:36 ] @
"0" je default vrednost koja ce biti vracena ukoliko nema entryja u INIju
[ X-Cite @ 04.02.2005. 10:40 ] @
Hvala na brzom odgovoru... ali...

u INI-ju imaju vrednosti i koliko vidim ništa mi ne vrati (vrati mi taj default 0 koji je upisan ako nema entrya)...

u čemu bi mogo biti problem?

evo još i tačan kod da se zna o čemu se radi...

Code:

'upis

If Check1 Then
    WriteProfile "Informations", "Registered", "True", "C:\Labels\Regcheck.INI"
Else
    WriteProfile "Informations", "Registered", "False", "C:\Labels\Regcheck.INI"
End If


i

Code:

'čitanje

txt(1) = GetProfile("Informations", "Registered", "0", "Regcheck.INI")


Regcheck.INI fajl mi izgleda ovako:

Code:

[Informations]
Registered=False
[ mladenovicz @ 04.02.2005. 11:17 ] @
Write
Code:

"C:\Labels\Regcheck.INI"


Read
Code:

"Regcheck.INI"
[ X-Cite @ 04.02.2005. 11:35 ] @
Hm... da samo mogu objasniti koliko sam proveo vremena za tako veliku glupost!

mnogo ti hvala mladenovicz!
[ mladenovicz @ 04.02.2005. 13:05 ] @
U principu ovaj problem se resava tako sto imas promenljivu ili konstantu na nivou aplikacije koja cuva putanju do ini fajla.
[ X-Cite @ 04.02.2005. 15:03 ] @
Da li misliš na ovo?

npr

Code:

Dim FilePath$
FilePath$ = "C:\Labels\Regcheck.INI"

'Write

    WriteProfile "Informations", "Registered", "1", FilePath$

'Read

    Data = GetProfile("Informations", "Registered", "No Data", FilePath$)



Ovako mi ne radi...

Ali ideja je super
[ doti @ 27.01.2008. 02:30 ] @
Pozz Svima!!

Malo je kasno ali...
Da sve ide kako treba nebi bilo dobro :-)
imam jedan form na kome imam 5 option dugmadi i zelim kad kliknem na dugme save da on ta stanja snimi u jedan ini fajl, i sledeci put kad pokrenem program da mi ti option dugmad budu u onom polozaju u kome sam ih snimio. Evo dodao sam dole form i ini fajl pa ako nekom nije problem da ubaci sors u form i namesti.

Zahvaljujem unapred
[ Aleksandar Ružičić @ 27.01.2008. 04:42 ] @
koliko vidim, nisi nista ni pokusao. pokusaj sam da odradis to, imas u ovoj temi kod kako da citas i kako da upises podatak iz ini fajla, kad zapnes onda pitaj.
[ doti @ 27.01.2008. 11:54 ] @
Probao sam ali nije mi jasno, Nebih postavio pitanje a da nisam probao.
[ doti @ 27.01.2008. 13:41 ] @
Napravio sam da snimim u ini i sve radi kako treba, ali imam problema kod citanja
[ Aleksandar Ružičić @ 27.01.2008. 22:13 ] @
evo ti source, ako ne mozes da se snadjes ili ti nesto nije jasno pitaj.
[ doti @ 27.01.2008. 22:29 ] @
Hvala na pomoci uspeo sam :-)
pozz
[ dava @ 28.01.2008. 07:23 ] @
Svojedobno sam uradio jedan modul sa kojim lako mogu da editujem init fajl, pa evo probajte: