Confix

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Blackside

Betreff: Confix

BeitragSa, Feb 28, 2009 16:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
Ich habe einen Code geschrieben um Variablen aus einer Config zu laden, Variablen daraus zu ändern und neue Variablen hineinzuschreiben. (Ich hoffe das ist für das Codearchiv würdig Razz)
Vielleicht braucht es ja irgendwer Wink

einmal die Lib:
Code: [AUSKLAPPEN]
Type CfgCommand
   Field cmd$
   Field var$
End Type


Function InitCfg(cfgfile$)
   Local stream = ReadFile(cfgfile)
   Local rl$,name$,var$,curl
   Repeat
      rl = Lower$(Trim$(ReadLine(stream)))
      If rl <> "" Then
         Repeat
            curl=curl+1
            If Mid(rl,curl,1) = "=" Then
               name = Trim(Mid(rl,1,curl-1))
               var = Trim(Mid(rl,curl+1,(Len(rl)-curl)))
               CreateCfgCommand(name,var)
               curl = 0
               Exit
            End If
            If curl > Len(rl) Then Exit
         Forever
      End If
   Until Eof(stream)
   CloseFile stream
End Function

Function CreateCfgCommand(cmd$,var$)
   Local cfg.CfgCommand = New CfgCommand
   cfg\cmd = cmd
   cfg\var = var
End Function

Function ReadCfgCommand$(cmd$)
   Local cfg.CfgCommand
   For cfg = Each CfgCommand
      If cfg\cmd = cmd Then
         Return cfg\var
      End If
   Next
   Return 0
End Function

Function WriteCfg(cfgfile$)
   Local stream = WriteFile(cfgfile$)
   Local cfg.CfgCommand
   For cfg = Each CfgCommand
      WriteLine stream,cfg\cmd+" = "+cfg\var
   Next
   CloseFile stream
End Function

Function WriteCfgCommand(cmd$,var$)
   Local cfg.CfgCommand
   For cfg = Each CfgCommand
      If cfg\cmd = cmd Then
         cfg\var = var
      End If
   Next
End Function


Hier ein Beispiel:
Code: [AUSKLAPPEN]
Include "confix.bb"
Local milli# = MilliSecs()

InitCfg("config.cfg") ;<--- Lädt die Config

Local scrw = ReadCfgCommand("scrw") ;<--- Liest die angegebene Variable aus der Config
Local scrh = ReadCfgCommand("scrh")
Local scrt = ReadCfgCommand("scrt")
Local scrm = ReadCfgCommand("scrm")
Local hallo$ = ReadCfgCommand("hallo")
CreateCfgCommand("test",35) ;<--- Erstellt einen neue Variable

Graphics scrw,scrh,scrt,scrm
Print "Reading Done..."

scrw = 800
scrh = 600

Print "Changing Vars..."
WriteCfgCommand("scrw",scrw) ;<-- Ändert die Angegebene Variable
WriteCfgCommand("scrh",scrh)

Print "Writing Config..."
WriteCfg("config.cfg") ;<--- Speichert alle Änderrungen in Die Config
Print "Succes..."
Print "In Var: hallo -> "+hallo
Print "Milliseconds: "+(MilliSecs()-milli)
WaitKey


und noch die zugehörige "config.cfg" zum Beispiel:
Code: [AUSKLAPPEN]
scrw = 640
scrh = 480
scrt = 32
scrm = 2
hallo = hallo welt!

Einfach alles in einen Ordner speichern, und das Beispiel ausführen Wink

MFG Blackside
Hier sollte eigentlich eine Signatur stehen!

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group