Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 10:45

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



AutoIt Problem: -Ini-

Discussion on AutoIt Problem: -Ini- within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
Lukɑs's Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 244
Received Thanks: 24
AutoIt Problem: -Ini-

Schönen, guten Abend!

Ich wollte hier einmal mein kleines Problem zu AutoIt, genau zu den Ini's posten.

In der SuFu habe ich zwar schon ähnliche Themen dazu gefunden, aber geholfen haben sie alle nix.

Also, ich habe hier z.b. eine Form:

PHP Code:
#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Form1"343199193125)
$Input1 GUICtrlCreateInput(""8813721)
$Checkbox1 GUICtrlCreateCheckbox("Checkbox1"8489717)
$Radio1 GUICtrlCreateRadio("Radio1"88011317)
$Slider1 GUICtrlCreateSlider(011215037)
GUICtrlSetLimit(-110090)
GUICtrlSetData(-190)
$Combo1 GUICtrlCreateCombo("1"816014525)
GUICtrlSetData(-1"2|3")
$Button1 GUICtrlCreateButton("Speichern"176241531450)
GUICtrlSetFont(-1148000"Arial")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

    EndSwitch
WEnd 
In dieser Form befinden sich:

-Input
-Checkbox
-Radio
-Slider
-Combo
-Und ein Speicher-Button

Man soll jetzt auf der Form alles einstellen, wie man will, z.b. Checkbox anklicken, in das Input "hallo" schreiben, den Slider in die Mitte schieben, etc.
Wenn man dann auf Speichern klickt und die Form schließ und ein andermal wieder öffnet, soll alles so sein, wie man es eingestellt hat. Also die Checkbox soll noch gecheckt sein, im Input soll noch "hallo" stehen, etc.

Wie genau müsste der Code dazu jetzt aussehen?

Danke im Vorraus, euer Lukas!
Lukɑs is offline  
Old 04/04/2010, 22:48   #2
 
elite*gold: 1
Join Date: Oct 2008
Posts: 1,078
Received Thanks: 276
Schau dir mal dazu GUICtrlRead, IniWrite und co. an

PHP Code:
IniWrite "test.ini""""Input"GUICtrlRead $Input1 ))
IniWrite "test.ini""""Slider"GUICtrlRead $Slider1))
...
;-----------
GUICtrlSetData $Input1IniRead "test.ini""""Input"""))
... 
Falls du was Fortgeschrittenes probieren möchtest kannst du die einzelnen ControlIDs in nem Array speichern und das alles mit ner For Schleife auslesen/füllen (falls du nicht im Ansatz verstehst was ich hier grade von mir geb machs lieber auf die einfache Tour, auch wenn dir so ne Menge mehr Schreibarbeit blüht^^)
.nAno is offline  
Old 04/05/2010, 00:48   #3
 
Lukɑs's Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 244
Received Thanks: 24
Quote:
Originally Posted by .nAno View Post
Schau dir mal dazu GUICtrlRead, IniWrite und co. an

PHP Code:
IniWrite "test.ini""""Input"GUICtrlRead $Input1 ))
IniWrite "test.ini""""Slider"GUICtrlRead $Slider1))
...
;-----------
GUICtrlSetData $Input1IniRead "test.ini""""Input"""))
... 
Falls du was Fortgeschrittenes probieren möchtest kannst du die einzelnen ControlIDs in nem Array speichern und das alles mit ner For Schleife auslesen/füllen (falls du nicht im Ansatz verstehst was ich hier grade von mir geb machs lieber auf die einfache Tour, auch wenn dir so ne Menge mehr Schreibarbeit blüht^^)

und wie genau muss das in verbindung mit dem speicher-button aussehen?

PHP Code:
#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Form1"343199193125)
$Input1 GUICtrlCreateInput(""8813721)
$Checkbox1 GUICtrlCreateCheckbox("Checkbox1"8489717)
$Radio1 GUICtrlCreateRadio("Radio1"88011317)
$Slider1 GUICtrlCreateSlider(011215037)
GUICtrlSetLimit(-110090)
GUICtrlSetData(-190)
$Combo1 GUICtrlCreateCombo("1"816014525)
GUICtrlSetData(-1"2|3")
$Button1 GUICtrlCreateButton("Speichern"176241531450)
GUICtrlSetFont(-1148000"Arial")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
            
        Case 
$Button1
            IniWrite 
"test.ini""""Input"GUICtrlRead $Input1 )) 
            
IniWrite "test.ini""""Input"GUICtrlRead $Checkbox1 )) 
            
IniWrite "test.ini""""Input"GUICtrlRead $Radio1 )) 
            
IniWrite "test.ini""""Input"GUICtrlRead $Slider1 )) 
            
IniWrite "test.ini""""Input"GUICtrlRead $Combo1 )) 
            ;.................................................................
            
GUICtrlSetData $Input1IniRead "test.ini""""Input"""))
            
GUICtrlSetData $Checkbox1IniRead "test.ini""""Input"""))
            
GUICtrlSetData $Radio1IniRead "test.ini""""Input"""))
            
GUICtrlSetData $Slider1IniRead "test.ini""""Input"""))
            
GUICtrlSetData $Combo1IniRead "test.ini""""Input"""))
    EndSwitch
WEnd 
??
Lukɑs is offline  
Old 04/05/2010, 00:55   #4
 
elite*gold: 1
Join Date: Oct 2008
Posts: 1,078
Received Thanks: 276
nicht ganz, der 2. Teil dient dazu die Daten wieder aufzurufen nachdem das Programm wieder geschlossen wurde
.nAno is offline  
Old 04/05/2010, 01:15   #5
 
Lukɑs's Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 244
Received Thanks: 24
Quote:
Originally Posted by .nAno View Post
nicht ganz, der 2. Teil dient dazu die Daten wieder aufzurufen nachdem das Programm wieder geschlossen wurde
könntest du nicht vllt. mal einfach den ganzen, fertigken code hier posten, oder machste das nicht?

weil wenn ich den 2. teil weiter nach oben schiebe, habe ich das problem, dass sich die texte aller variablen(checkbox, radio...) zur zahl verändernd, die ich bei der combo ausgewählt habe..
Lukɑs is offline  
Old 04/05/2010, 09:37   #6
 
elite*gold: 1
Join Date: Oct 2008
Posts: 1,078
Received Thanks: 276
jetz seh ichs erst: du hast die Key Namen alle auf "Input" gesetzt, das müssen natürlich unterschiedliche sein (so wie's oben in meinem Beispiel steht^^)

Das solltest du auch noch so hinbekommen :P
.nAno is offline  
Old 04/05/2010, 12:46   #7
 
elite*gold: 0
Join Date: Nov 2007
Posts: 81
Received Thanks: 33
Wenn ich .nAno weiter erläutern darf
Code:
IniWrite ( "test.ini", "", "Input", GUICtrlRead ( $Input1 )) 
IniWrite ( "test.ini", "", "Checkbox", GUICtrlRead ( $Checkbox1 )) 
IniWrite ( "test.ini", "", "Radio", GUICtrlRead ( $Radio1 )) 
IniWrite ( "test.ini", "", "Slider", GUICtrlRead ( $Slider1 )) 
IniWrite ( "test.ini", "", "Combo", GUICtrlRead ( $Combo1 ))
Eine Ini ist so aufgebaut.
[section]
[key1] -> [Wert]
[key2] -> [Wert]
[key3] -> [Wert]

Schauen wir uns den Befehl also genauer an
IniWrite ( "test.ini", "", "Input", GUICtrlRead ( $Input1 ))
1ster Parameter : Name der Ini datei , nicht weiter wichtig
2ter PArameter : Section der Ini
Eine ini kann mehrere Sections haben um Daten zu verschiedenen Kategorien voneinander zu trennen.

3ter Parameter : Key , ein Key kann einen Wert speichern aber nicht zweimal in derselben Section vorkommen.

Bei dir hast du immer denselben Key genommen, aber ein Key kann nur einen Wert speichern
In meinem Code haben die Slider Combos usw alle einen eigenen Key in der Ini und so sollte es auch sein

4ter Parameter : Der Wert der in dem Key gespeichert wird.

Und nun zum Abrufen, das machen wir am Anfang, wenn die Gui erstellt wird.
Code:
if fileexists("test.ini") then
$text = iniread("test.ini","","Input","")
$Input1 = GUICtrlCreateInput($text, 8, 8, 137, 21)
else
$Input1 = GUICtrlCreateInput("", 8, 8, 137, 21)
endif
if fileexists("test.ini") then
Die test.ini gibt es nur wenn schonmal auf speichern gedrückt wurde.

$text = iniread("test.ini","","Input","")
Dann können wir auch den gespeicherten Text auslesen
Wichtig ist hierbei der key Input, in den der Text für den Input ja gespeichert wurde.

$Input1 = GUICtrlCreateInput($text, 8, 8, 137, 21)
Nun erstellen wir den Input und als Inhalt den ausgelesen Text

else
$Input1 = GUICtrlCreateInput("", 8, 8, 137, 21)
endif
Wenn die test.ini noch nicht erstellt wurde, also noch nicht gepseichert wurde, dann erstellen wir ein leeres Input.
Pwneres is offline  
Old 04/05/2010, 13:50   #8
 
Lukɑs's Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 244
Received Thanks: 24
Quote:
Originally Posted by .nAno View Post
jetz seh ichs erst: du hast die Key Namen alle auf "Input" gesetzt, das müssen natürlich unterschiedliche sein (so wie's oben in meinem Beispiel steht^^)

Das solltest du auch noch so hinbekommen :P
ok danke, mein script sieht jetzt so aus:


jetzt taucht wieder das prob. auf, dass sich die texte der checkbox/radio/usw. verändern und die combo völlig leer ist???

hier einfachmal ein bild dazu:


außerdem wird auch nur das, was im input steht gespeichert.

ich möchte mich jetzt schonmal für meine "dummheit" entschuldigen, aber mit den ini's hatte ich schon immer probleme
Lukɑs is offline  
Old 04/05/2010, 14:04   #9
 
elite*gold: 1
Join Date: Oct 2008
Posts: 1,078
Received Thanks: 276
dafür kannst du bestimmte befehle benutzen (--> siehe Help Datei )
.nAno is offline  
Old 04/05/2010, 14:25   #10
 
Lukɑs's Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 244
Received Thanks: 24
Quote:
Originally Posted by .nAno View Post
dafür kannst du bestimmte befehle benutzen (--> siehe Help Datei )
hmm, bringt mich jetzt nicht unbedingt viel weiter
Lukɑs is offline  
Old 04/05/2010, 14:47   #11
 
elite*gold: 1
Join Date: Oct 2008
Posts: 1,078
Received Thanks: 276
Help Datei rufst du mit F1 im SciTe Fenster auf, aber wenn du die nicht findest:

Mit der Combo könnte das so aussehn:
PHP Code:
$comboData IniRead "test.ini""""Combo""ComboName")
...
GuiCtrlCreateCombo $comboData, ... )
GuiCtrlSetData ( -1, ...) 
GuiCtrlUpdate sollte bei Radio und Checkbox besser klappen
.nAno is offline  
Old 04/05/2010, 15:05   #12
 
Lukɑs's Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 244
Received Thanks: 24
Quote:
Originally Posted by .nAno View Post
Help Datei rufst du mit F1 im SciTe Fenster auf, aber wenn du die nicht findest:

Mit der Combo könnte das so aussehn:
PHP Code:
$comboData IniRead "test.ini""""Combo""ComboName")
...
GuiCtrlCreateCombo $comboData, ... )
GuiCtrlSetData ( -1, ...) 
GuiCtrlUpdate sollte bei Radio und Checkbox besser klappen
Lukɑs is offline  
Old 04/05/2010, 22:04   #13
 
elite*gold: 1
Join Date: Oct 2008
Posts: 1,078
Received Thanks: 276
sry, aber

wenn du keinen Plan von AutoIT/dem Syntax hast schau dir bitte noch einmal die Grundlagen an

2 Zeilen Code und 2 unnötige Fehler die man mit nen bisschen Denken hätte finden müssen...
.nAno is offline  
Old 04/05/2010, 22:06   #14
 
HardCore.1337's Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
lol

Du hast nicht wirklich die ... mitgeschrieben oder?
HardCore.1337 is offline  
Old 04/06/2010, 14:01   #15
 
Lukɑs's Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 244
Received Thanks: 24
Quote:
Originally Posted by General Desert View Post
lol

Du hast nicht wirklich die ... mitgeschrieben oder?
lol

das is mir klar, aber wenn ich die teile weg mache, kommt ein neuer fehler...
aber egal, lasst es einfach und closen pls

PS: ich sagte jetzt closen, also auch pls nix mehr schreiben
Lukɑs is offline  
Reply




All times are GMT +2. The time now is 10:45.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.