IniRead und Variablen

  • Hallo Zusammen,
    ist es möglich per IniRead AutoIT Variablen auszulesen und zu verwenden?
    Sprich ich schreibe in eine .ini Datei z.B. folgendes:

    Code
    [Q_Verzeichnis]
    Pfad="C:\Users\@UserName\Downloads"

    und möchte dann in AutoIT, dass im Code daraus dann C:\Users\Markus\Downloads wird.
    Da das wohl nicht direkt geht habe ich mir überlegt erst einen anderen Wert aus der .ini Datei auszulesen (über welchen ich dann festlege: Wenn User=1 Dann @UserName) und dann in per IniWrite oder ähnlich den Grundpfad mit der Variable in AutoIT zusammen baue, um ihn dann im Anschluss verwenden kann.

    Grüße

    Einmal editiert, zuletzt von bugmenot1 (10. Mai 2012 um 07:04)

  • Genauso kannste es machen. Anders wüsste ich es auch nicht.

    Edit: Ah ok. Wieder was neues gelernt.

  • Wenn man die Makros im String nun nicht durch @XYZMacro@ ersetzen möchte, dann kann man einfach die folgende Funktion verwenden!

    [autoit]

    $Test = "Hallo! Mein Benutzername ist @UserName! Die Aktuelle Zeit ist: @Hour:@Min:@Sec.@MSec!"
    MsgBox(64, "Info", _MacroToString($Test))

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

    Func _MacroToString($sString)
    ;Checks the string for any AutoIt Macros. If found, convert it.
    ;(c) 10.05.2012 / Veronesi

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

    If Not StringInStr($sString, "@") Then Return $sString ;No Macro found
    Local $as_Macros = StringRegExp($sString, "(?s)(?<=.)@(.*?)(?=[\.\,\;\?\!\: ])", 3) ;Create Array with all macros
    If @error Then Return $sString
    Local $i_M2S, $sMacro
    For $i_M2S = 0 To UBound($as_Macros) - 1 ;For every macro: Replace it's string with the interpreted macro
    $sMacro = Execute("@" & $as_Macros[$i_M2S])
    If Not @error Then $sString = StringReplace($sString, "@" & $as_Macros[$i_M2S], $sMacro)
    Next
    Return $sString
    EndFunc ;==>_MacroToString

    [/autoit]

    Veronesi

    Einmal editiert, zuletzt von veronesi (10. Mai 2012 um 14:20)