Mehrere Infos aus einer Ini datei rauslesen

  • Hallo ;)

    ich habe gemerkt das es anscheinend möglich ist mehrere inhalte aus einer ini datei rauszulesen bei meinen programmen habe ich teils 3-5 ini dateien nur damit meine user dort inhalte eintragen können ;) nun ist meine frage ob ich das ganze nicht auch in eine ini datei legen kann =)

    MfG

    Kaso

    • Offizieller Beitrag

    Natürlich kannst du das.

    Wichtig bei Inis:
    Abschnittsnamen eindeutig und alle Schlüssel innerhalb des Abschnittes. Dann klappt es auch mit den Nachbarn ;).

    peethebee

    Edit: LOL, wortwörtlich gleiche Antwort :D Edit: zeitgleich. Und das um 0:39 :D Jungs, ihr seid klasse!

  • Spoiler anzeigen

    $PName = FileRead ('Name.INI')
    $PNews = FileRead ('News.INI')
    $PStatus = FileRead ('Status.INI')
    $PRegister = FileRead ('Register.INI')

    so wäre des ma im mom ;) un ich würde diese 4x gerne in eine packn xD

    Einmal editiert, zuletzt von Kasoki (30. November 2008 um 00:57)

  • Also alles in eine .ini-datei schreiben kannste so machen:

    Spoiler anzeigen
    [autoit]

    IniWriteSection ("Daten","Name","Die Daten die du schreiben möchtest")
    IniWriteSection ("Daten","News","Die Daten die du schreiben möchtest")
    IniWriteSection ("Daten","Status","Die Daten die du schreiben möchtest")
    IniWriteSection ("Daten","Register","Die Daten die du schreiben möchtest")

    [/autoit]


    Und lesen kannste das dann mit:

    Spoiler anzeigen
    [autoit]

    IniReadSection ("Daten","Name")
    IniReadSection ("Daten","News")
    IniReadSection ("Daten","Status")
    IniReadSection ("Daten","Register")

    [/autoit]


    Hoffe es hilft dir ;)

    MfG
    Conan (Nur Mitlesend)
    Schon lange dabei

  • den thread hat ich ganz vergessn ^^ also, mein programm soll halt je nach angabe in der ini datei datei ein anderes spiel starten^^

    [autoit]

    ;--------------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $Game = "" ;Name des Spiels
    $Path = "";Pfad des Spiels
    $Accountname = ""; Dein Account Name
    $Pass = ""; Dein Passwort

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    ;---------------------------------------------------------------------------------

    [/autoit][autoit][/autoit][autoit]

    IniWriteSection ("SGame.ini","GameName",$Game)
    IniWriteSection ("SGame.ini","Pfad des Games",$Path)
    IniWriteSection ("SGame.ini","AccName",$Accountname)
    IniWriteSection ("SGame.ini","Passwort",$Pass)

    [/autoit][autoit][/autoit][autoit]

    IniReadSection ("SGame.ini","GameName")
    IniReadSection ("SGame.ini","Pfad des Games")
    IniReadSection ("SGame.ini","AccName")
    IniReadSection ("SGame.ini","Passwort")

    [/autoit][autoit][/autoit][autoit]

    ;---------------------------------------------------------------------------------

    [/autoit]

    so siehts bis jetzt aus (bzw. der ausschnitt^^ leider leider klappt es nochnicht ganz ;)


    Hier der inhalt der Ini ;)

    Spoiler anzeigen

    [GameName]World of Warcraft
    [Pfad des Games]C:/Programme/World of Warcraft
    [AccName]Test
    [Passwort]123456

    • Offizieller Beitrag

    1.
    Ich empfehle dir mal, den Pfad der INI anzugeben:

    [autoit]

    $INI = @ScriptDir & '\meine.ini'
    IniWrite($INI, 'section', 'key', 'value')

    [/autoit]


    2.
    Schau dir mal an, wie eine INI aufgebaut ist!

    Code
    [section]
    key1=value
    key2=value


    Und nun überdenke nochmal dein Konzept.

  • "mein" konzept kommt ja von dem thread über meinem letzen :d ich habs nichso mit diesen config.inis in textdateien schreiben is iwie einfacher xd

    nya das was du mir gegeben hast will ja auch nich Oo

    • Offizieller Beitrag

    OK, ich hab dir mal ein Bsp. erstellt.

    Deine INI sollte dann so aussehen:

    Spoiler anzeigen


    Und so in etwa könntest du es verwenden:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $user = InputBox('User', 'Bitte deinen Usernamen eingeben')
    If $user = '' Then Exit MsgBox(0, 'Fehler', 'Kein User angegeben!')

    [/autoit] [autoit][/autoit] [autoit]

    Global $INI = @ScriptDir & '\meine.ini'
    Global $aSection = IniReadSection($INI, $user), $val

    [/autoit] [autoit][/autoit] [autoit]

    Global $aUserGames[$aSection[0][0]][4]
    For $i = 1 To UBound($aSection) -1
    $aUserGames[$i-1][0] = $aSection[$i][0]
    $val = StringSplit($aSection[$i][1], ';')
    For $j = 1 To UBound($val) -1
    $aUserGames[$i-1][$j] = $val[$j]
    Next
    Next

    [/autoit] [autoit][/autoit] [autoit]

    _ArrayDisplay($aUserGames)

    [/autoit]
  • Hi,
    in der Hilfe ist auch ein super Beispiel.
    Aber Bugfix ist natürlich nen ganzes Stück besser wie die Hilfe. ;)

    Ne aber im Ernst da steht das super beschrieben drin, wenn das Verständnis dann da ist, ist das gar kein Problem mehr.
    Als Tipp einfach mal das Beispiel nachbauen.
    Ist übriegends fast genauso wie schreiben in eine Textdatei.

    Nur ist das auslesen von Ini-Dateien einfacher.

    MfG
    Der_Doc

  • HEy KAsoki bist ja auch hier ;)..

    Also ist denke mal du meinst das so :

    Spoiler anzeigen

    Dazu wäre das am besten :

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    $News = INIRead("data.ini","DATA","NewsPage")
    $Register = INIRead("data.ini","DATA","RegisterPage")
    $Name = INIRead("data.ini","DATA","PatcherName")
    $Download = INIRead("data.ini","DATA","DownloadPage")

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    Am besten wäre das noch wenn du es mit _stringencrypt() encryptest so das es die user die es dann erhalten net umstellen können :D
    Und halt denne die damit was machen wollen ein tool mitgibst womit sie es verschlüsseln können

    Halt für dich nomma umformen..
    (das passt zu deinem ersten...)
    das mit dem usern hab ich net gecheckt was du meinst... :S

    Einmal editiert, zuletzt von jiyan006 (5. Januar 2009 um 22:46)

  • öhm
    also bei miiir ist das so dass IniReadSection so ausschaut:

    [autoit]


    IniReadSection ( "filename", "section" )

    [/autoit]


    und nicht

    [autoit]


    IniReadSection ( "filename", "section", "key" )

    [/autoit]


    ich machs bei mir mit IniRead^^

    Padmak