Externes Abspeichern von Variablen - INI-Datei

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

User avatar
Meister Lampe
Posts: 229
Joined: 06 Apr 2014, 13:28

Externes Abspeichern von Variablen - INI-Datei

26 Aug 2015, 16:47

Hallo Zusammen!

Ich möchte eine Variable, die der Benutzer über eine Input-Box eingegeben hat, abspeichern, sodaß sie auch nach dem Schließen des Skripts, also z.B. nach einem Neustart des Computers, wieder zur Verfügung steht. Solange eben, bis der Benutzer sie abermals eingibt.
Ich bin dabei in der Anleitung auf die Befehle IniWrite und IniRead gestoßen, ganz blicke ich da aber nicht durch. Insbesondere deshalb, weil dieses Tool für jemand anderes ist, dem ich es als compilierte Anwendung zur Verfügung stelle und keinen Pfad zur Speicherung der Ini-Datei festlegen kann.

Code: Select all

F12::
InputBox, AktSign, Bestandssignatur, Bitte geben Sie hier die zum Nummerieren zu verwendende Bestandssignatur ein!
IniWrite, %AktSign%, ...
Aber wie gehts dann weiter?
Oder gäbe es da eine andere, praktikablere Lösung?

Viele Grüße von Meister Lampe

PS.: Hier nochmals die Frage, auch wenn sie bei diesem Post nicht so wichtig ist:
Wie kann bei längeren Codes hier eine Zeilennummerierung einfügen?
garry
Posts: 3770
Joined: 22 Dec 2013, 12:50

Re: Externes Abspeichern von Variablen - INI-Datei

27 Aug 2015, 02:31

Beispiel mit iniwrite / iniread

Code: Select all

;RSSinix iniwritex inireadx ---------------------
filename1=IniTest
SetWorkingDir %A_ScriptDir%

RSSINI=%A_scriptdir%\%filename1%.ini
ifnotexist,%rssini%
    {
    IniWrite,test1   , %rssini% ,A1   , KEY1
    IniWrite,test2   , %rssini% ,A2   , KEY1
    IniWrite,test3   , %rssini% ,A3   , KEY1
    }
IniRead, A1, %rssini% , A1 , Key1
IniRead, A2, %rssini% , A2 , Key1
IniRead, A3, %rssini% , A3 , Key1

Gui,2: Add, text, x10  y10 , A
Gui,2: Add, text, x10  y35 , B
Gui,2: Add, text, x10  y60 , C
Gui,2: Add, Edit, x100 y10 w100 vC1,%A1%
Gui,2: Add, Edit, x100 y35 w100 vC2,%A2%
Gui,2: Add, Edit, x100 y60 w100 vC3,%A3%
Gui,2: Add, Button, x100 y90 w100 h25 gSave1,Save  ; -maybe not needed , guiclose saves
Gui,2: Show,x100 y10 w250 h120,%filename1%
return

save1:
IniWrite, %C1%  , %rssini% ,A1   , KEY1
IniWrite, %C2%  , %rssini% ,A2   , KEY1
IniWrite, %C3%  , %rssini% ,A3   , KEY1
return

2Guiclose:
Gui,2:submit,nohide
gosub,save1
exitapp
User avatar
Meister Lampe
Posts: 229
Joined: 06 Apr 2014, 13:28

Re: Externes Abspeichern von Variablen - INI-Datei

27 Aug 2015, 17:23

Hallo garry!

Da steige ich nicht durch. Ich dachte, es handle sich um einen Befehl (IniWrite bzw. IniRead) und dazu - oder besser als Parameter darin - die Abspeicheradresse. Und jetzt lieferst Du mir ein solch großes Script! Und darin alles gleich in dreifacher Ausführung. Keine Ahnung, was das bewirken soll. Und eine Gui wollte ich ja auch nicht, da ich ja bereits eine InputBox erstellt habe. Oder kann man eine Variable gar nicht mit den Ini-Befehlen abspeichern, sondern nur einen Text. Das kann ich mir kaum vorstellen.

Wie muß ich Deinen Code also jetzt verändern, wenn ich ihn, wie oben beschrieben, unter meinen InputBox-Befehl setzten möchte?
Hätten wir jetzt dioe Möglichkeit zur Zeilennummerierung, dann könnten wir Ihn auch gemeinsam durchgehen.

Viele Grüße von Meister Lampe
Peter2
Posts: 325
Joined: 21 Sep 2014, 14:38
Location: CH

Re: Externes Abspeichern von Variablen - INI-Datei

28 Aug 2015, 01:15

Ein paar Fragen kann ich dir beantworten.

a) GUI:
Hier im Forum werden Codehilfen oft nicht als fragmentiertes Codeschnippsel, sondern als nutz- und testbares (Teil)Paket geliefert. Das ist erweiterter Dienst am Kunden - freue dich ;)

b) INI:
Du hast die Variable %AktSign%, und die bekommt z.B. den Wert "28". Die kannst beides in der INI abspeichern, z.B. AktSign=28
Über das wie siehe Hilfe und Beispielcode oben. Beachte die Unterschiede zwischen "Section", "Key" und "Value"

c) Werte:
In der INI werden an sich nur Texte abgespeichert, also z.B. "28". Je nach Programm wird beim Lesen der INI der gelesene Werte automatisch in eine Zahl umgewandelt, AHK ist das recht schlau und auch hier kann die Hilfe weiterhelfen.
Peter (AHK Beginner) / Win 10 x64, AHK Version v1.1.33
garry
Posts: 3770
Joined: 22 Dec 2013, 12:50

Re: Externes Abspeichern von Variablen - INI-Datei

28 Aug 2015, 01:19

danke Peter2
habe ein bestehendes Beispiel gezeigt

Code: Select all

filename1=IniTest
SetWorkingDir %A_ScriptDir%
RSSINI=%A_scriptdir%\%filename1%.ini
ifnotexist,%rssini%
    IniWrite,test1   , %rssini% ,A1   , Bestandssignatur
return

F12::
IniRead, A1, %rssini% , A1 ,Bestandssignatur
InputBox, AktSign, Bestandssignatur, Bitte geben Sie hier die zum Nummerieren zu verwendende Bestandssignatur ein! ,,,,,,,,%a1%
IniWrite,%AktSign% , %rssini% ,A1   , Bestandssignatur
return
esc::exitapp

/*
-InputBox
-Displays an input box to ask the user to enter a string.
-InputBox, OutputVar [, Title, Prompt, HIDE, Width, Height, X, Y, Font, Timeout, Default]
Ich möchte eine Variable, die der Benutzer über eine Input-Box eingegeben hat, abspeichern, sodaß sie auch nach dem Schließen des Skripts,
 also z.B. nach einem Neustart des Computers, wieder zur Verfügung steht. Solange eben, bis der Benutzer sie abermals eingibt.
*/

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 63 guests