Ini Tutorial

10/21/2010 20:52 amnesi#1
Hallo in diesem Tutorial werdet ihr lernen wie man mit Ini´s Daten verwaltet/ausliest.

So als erstes, was brauchen wir?

-[Only registered and activated users can see links. Click Here To Register...]
-[Only registered and activated users can see links. Click Here To Register...]
-[Only registered and activated users can see links. Click Here To Register...]

Gut nachdem das geklährt ist, kann es ja los gehen ;)

Iniwrite

So als erstes die Parameter:

PHP Code:
iniwrite("filename""section""key""value" 
Filename :

Das erste Parameter bestimmt wie die Ini heist in der geschrieben wird
außerdem kann man damit den Pfad der Ini angeben(wenn keiner angegeben ist sondern nur der Name der ini wird in die Ini aus dem Ordner des Scripten geschrieben.)
Wenn die Ini nicht existiert, wird sie erstellt.

Das könnte dann so aussehen:
PHP Code:
iniwrite("Config.ini""section""key""value" 
oder so:
PHP Code:
iniwrite("C:\Users\ich\Desktop\Config.ini""section""key""value"

Section :

Das zweite Parameter bestimmt in welche Sektion geschrieben wird
also sozusagen in welche Obergruppe.

Das könnte so aussehen:
PHP Code:
iniwrite("Config.ini""Passwörter""key""value" 

Key :

Das dritte Parameter bestimmt welcher "Key" verwendet wird also sozusagen
WAS diesen Wert bekommt.

Das könnte so aussehen:
PHP Code:
iniwrite("Config.ini""Passwörter""amnesis Passwort""value" 

Value :

Das vierte Parameter bestimmt welcher Wert dem Key zugeordnet wird.

Das könnte so aussehen:
PHP Code:
iniwrite("Config.ini""Passwörter""amnesis Passwort""blub852" 

Was Passiert wenn ich das starte?:
Wenn man das jetzt in den Scite editor einfügt und startet wird eine Ini erstellt, die wenn man sie öffnet so aussehen müsste:

[Only registered and activated users can see links. Click Here To Register...]


Iniread

So als erstes die Parameter:

PHP Code:
iniread("filename""section""key""default" 
Filename :

Das erste Parameter bestimmt wie die Ini heist, die man ausliest
außerdem kann man damit den Pfad der Ini angeben(wenn keiner angegeben ist sondern nur der Name der ini wird die Ini aus dem Ordner des Scripten ausgelesen.)

Das könnte dann so aussehen:
PHP Code:
iniread("Config.ini""section""key""default" 
oder so:
PHP Code:
iniread("C:\Users\ich\Desktop\Config.ini""section""key""default"

Section :

Das zweite Parameter bestimmt welche Sektion ausgelesen wird
also sozusagen welche Obergruppe.

Das könnte so aussehen:
PHP Code:
iniread("Config.ini""Passwörter""key""default" 

Key :

Das dritte Parameter bestimmt welcher "Key" verwendet wird also welcher "Schlüssel" ausgelesen wird.

Das könnte so aussehen:
PHP Code:
iniread("Config.ini""Passwörter""amnesis Passwort""default" 

Default :

Das vierte Parameter bestimmt was zurückgegeben wird wenn der schlüssel/die *.ini datei nicht existiert.

Das könnte so aussehen:
PHP Code:
iniwrite("Config.ini""Passwörter""amnesis Passwort""Fehler, die Datei/der Schlüssel existiert nicht" 

Was Passiert wenn ich das starte?:

Dann passiert, wie ihr sicher merken werdet, ......NIX!!!
Das liegt daran das der Rückgabewert, also der Inhalt des Schlüssels,
Nirgendwo gespeichert, oder ausgegeben wird.
um ihn den Rückgabewert auszugeben, speichern wir ihn erstmal in einer Variable danach geben wir den Inhalt der Variable in einer msgbox aus:

PHP Code:
$Rueckgabewert iniread("Config.ini""Passwörter""amnesis Passwort""Fehler, die Datei/der Schlüssel existiert nicht" )
msgbox(0,"Rückgabewert von iniread",$Rueckgabewert
So jetzt müsste das kommen:
[Only registered and activated users can see links. Click Here To Register...]

Es sei denn, wir haben unsere
.Ini datei von vorhin noch immer ;D
dann kommt das :
[Only registered and activated users can see links. Click Here To Register...]


Nun werden wir mithilfe von Koda Formdesigner ein Script
scripten mit dem wir ganz einfach Daten speichern/auslesen können

als erstes öffnen wir Koda:
[Only registered and activated users can see links. Click Here To Register...]


jetzt fügen wir ein paar Label,Inputboxen und Buttons hinzu das könnte dann so aussehen:


[Only registered and activated users can see links. Click Here To Register...]

Nun gehts ans coden ;D

Mein Code sieht so aus:

PHP Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Iniwriter/reader"245413192124)
$Group1 GUICtrlCreateGroup("Iniwrite"88225169)
$Label1 GUICtrlCreateLabel("Name/Pfad der Ini :"16329717)
$Input1 GUICtrlCreateInput(""1123211321)
$Label2 GUICtrlCreateLabel("Sektion                  :"16569717)
$Input2 GUICtrlCreateInput(""1125611321)
$Label3 GUICtrlCreateLabel("Schlüssel               :"16809717)
$Input3 GUICtrlCreateInput(""1128011321)
$Label4 GUICtrlCreateLabel("Wert                      :"161049617)
$Input4 GUICtrlCreateInput(""11210411321)
$Button1 GUICtrlCreateButton("Speichern"16136203250)
GUICtrlCreateGroup("", -99, -9911)
$Group2 GUICtrlCreateGroup("Iniread"8192225217)
$Label5 GUICtrlCreateLabel("Name/Pfad der Ini :"162169717)
$Label6 GUICtrlCreateLabel("Sektion                  :"162409717)
$Label7 GUICtrlCreateLabel("Schlüssel               :"162649717)
$Label8 GUICtrlCreateLabel("Fehlerwert              :"162889817)
$Button2 GUICtrlCreateButton("Auslesen"16320203250)
$Input5 GUICtrlCreateInput(""11221611321)
$Input6 GUICtrlCreateInput(""11224011321)
$Input7 GUICtrlCreateInput(""11226411321)
$Input8 GUICtrlCreateInput(""11228811321)
$Label9 GUICtrlCreateLabel("Ausgelesener Wert:"643529717)
$Input9 GUICtrlCreateInput(""1637620921)
GUICtrlCreateGroup("", -99, -9911)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit

    EndSwitch
WEnd 
ALso als erstes schreiben wir die Speichern Funktion
die ist eigentlich ganz einfach ;)
wir wollen ja eigentlich nur das er eine Ini erstellt
und zwar mit den Werten aus den Inputboxen.

wir wollen die Inputboxen auslesen das geht mit

PHP Code:
guictrlreadCONTROL ID 
Statt Control ID müssen wir nur z.b.

PHP Code:
$Input1 
einfügen um die Inputbox auszulesen.

das sieht dann so aus:

PHP Code:
guictrlread($Input1
und das machen wir jetzt mit der iniwrite funktion:

PHP Code:
iniwrite(guictrlread($Input1),guictrlread($Input2),guictrlread($Input3),guictrlread($Input4
das fügen wir dann noch zur _Speichern Funktion hinzu:
PHP Code:
Func _Speichern()
        
iniwrite(guictrlread($Input1),guictrlread($Input2),guictrlread($Input3),guictrlread($Input4))
endfunc 
so das jetzt die _Auslesen Funktion
das ist eigentlich genau das selbe nur das ein paar andere Parameter verwendet werden
und wir andere Inputboxen auslesen
deshalb werde ich das hier nicht weiter erläutern:

PHP Code:
Func _Auslesen()
iniread(guictrlread($Input5),guictrlread($Input6),guictrlread($Input7),guictrlread($Input8))
endfunc 
jetzt wollen wir ja das er das ausgelesene in einer Variable speichert und
dann in der untersten inputbox anzeigt($Input9) das geht mit guictrlsetdata:

PHP Code:
Func _Auslesen()
$Auslesen iniread(guictrlread($Input5),guictrlread($Input6),guictrlread($Input7),guictrlread($Input8))
guictrlsetdata($Input9,$Auslesen)
endfunc 
Jetzt weisen wir unseren Buttons die Funktionen zu
und fügen das zu unserem Gesammtscript hinzu:
PHP Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Iniwriter/reader"245413192124)
$Group1 GUICtrlCreateGroup("Iniwrite"88225169)
$Label1 GUICtrlCreateLabel("Name/Pfad der Ini :"16329717)
$Input1 GUICtrlCreateInput(""1123211321)
$Label2 GUICtrlCreateLabel("Sektion                  :"16569717)
$Input2 GUICtrlCreateInput(""1125611321)
$Label3 GUICtrlCreateLabel("Schlüssel               :"16809717)
$Input3 GUICtrlCreateInput(""1128011321)
$Label4 GUICtrlCreateLabel("Wert                      :"161049617)
$Input4 GUICtrlCreateInput(""11210411321)
$Button1 GUICtrlCreateButton("Speichern"16136203250)
GUICtrlCreateGroup("", -99, -9911)
$Group2 GUICtrlCreateGroup("Iniread"8192225217)
$Label5 GUICtrlCreateLabel("Name/Pfad der Ini :"162169717)
$Label6 GUICtrlCreateLabel("Sektion                  :"162409717)
$Label7 GUICtrlCreateLabel("Schlüssel               :"162649717)
$Label8 GUICtrlCreateLabel("Fehlerwert              :"162889817)
$Button2 GUICtrlCreateButton("Auslesen"16320203250)
$Input5 GUICtrlCreateInput(""11221611321)
$Input6 GUICtrlCreateInput(""11224011321)
$Input7 GUICtrlCreateInput(""11226411321)
$Input8 GUICtrlCreateInput(""11228811321)
$Label9 GUICtrlCreateLabel("Ausgelesener Wert:"643529717)
$Input9 GUICtrlCreateInput(""1637620921)
GUICtrlCreateGroup("", -99, -9911)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        case 
$Button1
            _Speichern
()
        case 
$Button2
            _Auslesen
()
    EndSwitch
WEnd

Func _Speichern
()
    
iniwrite(guictrlread($Input1),guictrlread($Input2),guictrlread($Input3),guictrlread($Input4))
endfunc

Func _Auslesen
()
$Auslesen iniread(guictrlread($Input5),guictrlread($Input6),guictrlread($Input7),guictrlread($Input8))
guictrlsetdata($Input9,$Auslesen)
endfunc 
So, das wars ich hoffe es hat euch geholfen ;)
bei Fragen oder Anregungen einfach PN an mich
10/21/2010 21:09 Memphiisto#2
Ist schon ganz nice ich werds sicher einmal gut brauchen können. :)
1. Haste n thx
2. Vote 4 Sticky

lg Magic
03/10/2011 16:09 amnesi#3
Thx :)
03/10/2011 16:37 xEr0r#4
für die mühe gibsn THX
03/10/2011 16:44 iXDe#5
Ich wär dafür, die Cmds in richtiger Groß bzw. Kleinschreibung abzubilden. Ich find, dass es schlampig aussieht wenn man immer
Code:
msgbox()
iniread()
& co
anstatt von
Code:
MsgBox ()
IniRead ()
benutzt. Es dient, finde ich, der Übersicht und Sauberkeit.
03/10/2011 21:19 SCORNI#6
Quote:
Originally Posted by iXDe View Post
Ich wär dafür, die Cmds in richtiger Groß bzw. Kleinschreibung abzubilden. Ich find, dass es schlampig aussieht wenn man immer
Code:
msgbox()
iniread()
& co
anstatt von
Code:
MsgBox ()
IniRead ()
benutzt. Es dient, finde ich, der Übersicht und Sauberkeit.
Wenn du die Zeit dazu hast.

@Topic

optisch siehts gut aus. Inhaltlich keine Zeit um reinzugucken
03/10/2011 21:35 V8II#7
Es gibt zwar schon ein Tutorial in dem IniWrite und Co. erklärt werden (Shadows???) aber das hier ist echt total einfach, schön und ausführlich erklärt. Für blutige Anfänger sicherlich perfekt.
Weiter so, LG V8II
03/11/2011 08:25 SwarN#8
hast auch ein thx von mir werte das bestimmt auch mal demnächst brauchen können. Danke fürs tut
03/17/2011 14:22 amnesi#9
Danke für die ganzen netten Kommentare :)

@iXDe

Jeder hat seinen eigene Style wie er scriptet/programmiert
ich mache es halt so :)
außerdem wieso soll man auf die Schreibweise achten oO
is doch genau das selbe ^^
03/17/2011 17:36 | Moep |#10
Quote:
Jeder hat seinen eigene Style wie er scriptet/programmiert
ich mache es halt so
außerdem wieso soll man auf die Schreibweise achten oO
is doch genau das selbe ^
Ohne Beachtung der Case sensitivity ist das erlernen richtiger Programmiersprachen unmöglich.