Upgrade to AHK v2 #3
@@ -16,26 +16,31 @@ ini_load(location)
|
||||
temp := FileOpen(location, "r")
|
||||
cleaner := temp.Read()
|
||||
temp.Close()
|
||||
cleaner := RegExReplace(cleaner, "`am)^[\s\R]*") ; Remove empty lines
|
||||
cleaner := RegExReplace(cleaner, "m)[ \t]+$") ; Get rid of extra space at the end of values (NEEDS FIXED)
|
||||
cleaner := RegExReplace(cleaner, "`m)[ \t]+$|^[\s\R]*$") ; Remove empty lines, spaces, tabs
|
||||
temp := FileOpen(location, "w")
|
||||
temp.Write(cleaner)
|
||||
temp.Close()
|
||||
temp := FileOpen(location, "r")
|
||||
out := Object()
|
||||
out := Map() ; I tried an object, it was too complicated for what I'm doing. Nested map is good enough
|
||||
curr_section := 0 ; v2 won't evaluate a true/false to false if a variable isn't set to false
|
||||
r := Object() ; bruh why do I have to set up variables now suddenly
|
||||
Loop
|
||||
{
|
||||
Line := temp.ReadLine()
|
||||
RegExMatch(Line, "(?<Section>(?<=\[).*(?=\]))|(?<Key>.*)=(?<Value>.*)", &r) ; Key = r.Key, Value = r.Value, Section = r.Section
|
||||
If (r.Section)
|
||||
{
|
||||
out.%r.Section% := Map()
|
||||
current_Section := r.Section
|
||||
} Else
|
||||
out[r.Section] := Map()
|
||||
curr_section := r.Section
|
||||
} Else
|
||||
{
|
||||
trimKey := Trim(r.Key, " `t`r`n")
|
||||
trimValue := Trim(r.Value, " `t`r`n")
|
||||
out.%current_Section%[trimKey] := trimValue
|
||||
If (curr_section)
|
||||
{
|
||||
out[curr_section].Set(Trim(r.Key, " `t`r`n"), Trim(r.Value, " `t`r`n"))
|
||||
} Else
|
||||
{
|
||||
out.Set(Trim(r.Key, " `t`r`n"), Trim(r.Value, " `t`r`n")) ; this handles things with no section
|
||||
}
|
||||
}
|
||||
} Until (temp.AtEOF)
|
||||
temp.Close()
|
||||
@@ -45,16 +50,13 @@ ini_load(location)
|
||||
|
||||
ini_write(location, inKey, inValue) ; Don't need to specify section because you can only have one hotstring anyway
|
||||
{
|
||||
Critical("On")
|
||||
ini := FileOpen(location, "r")
|
||||
temp := ini.Read()
|
||||
ini.Close()
|
||||
inKeyReg := "(?<=" inKey "=)\S*" ; Regex to make sure we're matching only the value for the requested key
|
||||
temp := RegExReplace(temp, inKeyReg, inValue)
|
||||
temp := RegExReplace(temp, "(?<=" inKey "=).*", inValue)
|
||||
ini := FileOpen(location, "w")
|
||||
ini.Write(temp)
|
||||
ini.Close()
|
||||
Critical("Off")
|
||||
}
|
||||
|
||||
|
||||
@@ -68,18 +70,16 @@ If !FileExist(sett_ini) ; Check if the sett_ini doesn't exist
|
||||
ini := FileOpen(sett_ini, "w")
|
||||
writethis := "
|
||||
( LTrim
|
||||
[USpec]
|
||||
Email=LastnameFirstname@JohnDeere.com
|
||||
DocFile=Select File
|
||||
[Main]
|
||||
MJDPaste=1
|
||||
DocFile=0
|
||||
JDProductNames=1
|
||||
GloVar=0
|
||||
[Language]
|
||||
German=0
|
||||
msmv=always
|
||||
msmv_status=stopped
|
||||
)"
|
||||
ini.Write(writethis)
|
||||
file.Close()
|
||||
ini.Close()
|
||||
Run("Settings.ahk") ; Runs the GUI for changing the settings, accessible with Alt+Shift+\ (also easy way to restart this script)
|
||||
}
|
||||
|
||||
@@ -92,12 +92,8 @@ global settings := ini_load(sett_ini)
|
||||
|
||||
; started as global variables, keeping this commented out in case there's some old script where I need to replace something
|
||||
; User Specific things:
|
||||
;global email := settings.USpec["Email"]
|
||||
;global docfile := settings.USpec["DocFile"]
|
||||
|
||||
; Replacement
|
||||
;global jdpn := settings.Replacement["JDProductNames"]
|
||||
;global glovar := settings.Replacement["GloVar"]
|
||||
|
||||
; Language
|
||||
;global ger := settings.Language["German"]
|
||||
;global email := settings["Email"]
|
||||
;global docfile := settings["DocFile"]
|
||||
;global jdpn := settings["JDProductNames"]
|
||||
;global glovar := settings["GloVar"]
|
||||
;global ger := settings["German"]
|
||||
Reference in New Issue
Block a user