Evo i josh jednog nachina, na koji ja pravim config fajl... Koristim jedan Class module, koji se, vrlo mashtovito, zove clsConfig
U njemu imam procedure LoadConfig i SetConfig... LoadConfig mi uchitava komplet konfiguraciju iz fajla, i chuva je u collection objektu, koji takodje ima vrlo mashtovito ime p_Cfg...
Code:
Public Sub LoadConfig(Optional ByVal Filename As String = "$APATH.config")
Dim p_FF As Integer
Dim S As String
Dim f() As String
p_FF = FreeFile
Open Path(Filename) For Input As #p_FF
While Not EOF(p_FF)
Line Input #p_FF, S
If Left(S, 1) <> "#" And S <> "" Then
f = Split(S, "=")
If InStr(f(1), "#") Then f(1) = Mid(f(1), 1, InStr(f(1), "#") - 1)
f(0) = Trim(f(0))
f(1) = Trim(f(1))
p_Cfg.Add f(1), f(0)
End If
Wend
Close #p_FF
End Sub
Procedura SetConfig tje da ispishe konfiguraciju tamo gde treba:
Code:
Public Sub SetConfig(ByRef Who As Form)
On Local Error Resume Next
Dim C As Control
Dim S As String
For Each C In Who.Controls
If Left(C.Tag, 1) = "!" Then
S = p_Cfg.Item(Mid(C.Tag, 2))
If TypeOf C Is TextBox Then C.Text = S
If TypeOf C Is Label Then C.Caption = S
End If
Next
End Sub
E sad, kako li klasa zna gde shta treba da ide? Evo primera, recimo da imamo jedan parametar, koji se zove OmiljeniForum, koji je zapisan u .config fajlu (mashtovito, zar ne?)... I sad, taj parametar ima vrednost ES... Zapisan je u obliku OmiljeniForum=ES
U TextBox na formi (koji mozhe da se zove kako god zhelite), u Tag property treba da ima !OmiljeniForum... I to je sve... Kada se iz Form_Load pozove Config.SetConfig Me, procedura tje da prodje kroz sve kontrole, i da upishe sve gde treba da stoji... Dobra stvar je shto mozhe da bude vishe kontrola sa istim parametrom, i ispisatje se u svakom od njih...
Ovo je naravno na brzinu sklepan kod, jer ovde na poslu ga bash k'o u inat nemam, ali chini mi se da radi... Mogutje je naravno dodati opciju SaveConfig, pa da onda bude kompletna klasa... Chini mi se da to vetj imam uradjeno kod kutje...
Ona funkcija Path() u LoadConfig() mi sluzhi za pravilno postavljanje putanje fajla, tako da tje $APATH.config biti promenjeno u C:\Program\.config
-
SKRati link -
JaZaKraljevo.rs -
"I have never let my schooling interfere with my education." - Mark Twain