FileOpen in Funktion

  • Guten Tag zusammen


    Habe ein Problem das vielleicht auch schon behandelt wurde nur habe ich das Thema leider nirgends gefunden.

    Ich habe eine Funktion geschrieben (WriteSettings($text)), die ganz einfach einen Text aus einer anderen Funktion in eine Datei schreiben soll.

    Mein Code sieht also etwa folgendermassen aus:



    Leider funktioniert das aus einem bestimmten Grund nicht. Was mache ich falsch?

    Wenn ich die Funktion WriteSettings anstatt aus einer anderen Funktion direkt aufrufe dann wird der Text geschrieben, die Funktion WriteSettings scheint also korrekt zu sein.


    Wäre für eure Hilfe sehr dankbar.


    Liebe Grüsse von einem neuen Mitglied,

    SORUS

    Einmal editiert, zuletzt von SORUS (4. Januar 2010 um 18:26)

  • IniWrite mag gut sein aber es sollte doch auch anders funktionieren, oder?


    Ich seh einfach das Problem nicht. Aber danke für Deinen Tip!

  • Sehe auch keinen logischen Grund warum es nicht funktionieren sollte... Werde die Funktion nochmals genau analysieren. Wenn Ihr mir sagt dass es bei euch funktioniert dann muss der Fehler bei mir liegen. Das hilft mir schon gewaltig.


    Thx für eure Hilfe!

  • Nach eingehender Prüfung musste ich feststellen dass es noch immer nicht funktioniert. Ich habe mich deshalb entschlossen, hier den Original-Quelltext zu veröffentlichen. Wenn einer von euch den Grund findet warum ich nicht in die Datei settings.txt schreiben kann dann soll er sich bitte melden.


    Liebe Grüsse aus der Schweiz,

    SORUS


    Spoiler anzeigen
    [autoit]


    $pname = "Google"
    $pver = "Version 1.00"
    $pnamever = $pname & " " & $pver

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

    $browserpath = ""
    $startpage = ""

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

    Func Hello()
    If FileExists("settings.txt") Then
    MsgBox(0, $pnamever, "Die Datei settings.txt existiert!")
    Else
    $hello01 = "Ich kann die Datei settings.txt nicht finden!" & chr(13) & chr(13)
    $hello02 = "Wollen Sie mich neu konfigurieren?"
    $string = $hello01 & $hello02
    $ask = MsgBox(4, $pnamever, $string)
    If $ask = 6 Then ; Neu konfigurieren
    Configure()
    Else
    Exit
    EndIf
    EndIf
    EndFunc
    Func Configure()
    ConfigureBrowser()
    WriteSettings($browserpath)
    WriteSettings($startpage)
    EndFunc

    Func ProgressBar($text, $a, $b, $c, $sleep)
    ProgressOn($pnamever, $text, "0 Prozent")
    For $i = $a to $b step $c
    Sleep($sleep)
    ProgressSet($i, $i & " Prozent")
    Next
    ProgressSet(100 , "Fertig")
    sleep(500)
    ProgressOff()
    EndFunc

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

    Func ConfigureBrowser()
    While $browserpath = "" ; Schleife bis die Variable $browserpath einen Wert grösser "" hat
    $text01 = "Bitte zeigen Sie mir den Pfad zu Ihrem Browser..."
    MsgBox(0, $pnamever, $text01)
    $var = FileOpenDialog($text01, "C:\", "(*.exe)") ; Dialogfenster zum Suchen des Browsers öffnen
    $browserpath = $var
    if $browserpath <> "" Then
    $text01 = "Ich werde nun versuchen Ihren Browser zu laden, bitte warten Sie und drücken Sie keine Taste bis ich mich in 10 Sekunden wieder melde." & chr(13) & chr(13)
    $text02 = "Klicken Sie auf OK um zu beginnen..."
    $string = $text01 & $text02
    MsgBox(0, $pnamever, $string)
    ShellExecute($browserpath, "http://www.google.ch") ; Browser mit GOOGLE laden
    ProgressBar("Ich warte auf den Browser", 0, 100, 10, 1000)
    If StringInStr(WinGetTitle("[active]"), "Google") = 0 Then
    $text01 = "Da stimmt wohl etwas nicht... Bitte geben Sie den Browserpfad erneut ein oder versuchen Sie es mit einem anderen Browser!"
    MsgBox(0, $pnamever, $text01)
    $browserpath= ""
    EndIf
    EndIf
    WEnd
    $startpage = WinGetTitle("[active]") ; Startseite festlegen
    WinSetState($startpage, "", @SW_Maximize)
    $text01 = "Der Browserpfad ist nun gesetzt und GOOGLE wurde erfolgreich geladen." & chr(13) & chr(13)
    $text02 = "Der Seitentitel von GOOGLE lautet zur Zeit:" & chr(13) & chr(13)
    $text03 = $startpage & chr(13) & chr(13)
    $text04 = "Vielen Dank!"
    $string = $text01 & $text02 & $text03 & $text04
    MsgBox(0, $pnamever, $string)
    EndFunc

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

    Func WriteSettings($writesettings)
    $file = FileOpen("settings.txt", 1)
    If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf
    FileWriteLine($file, $writesettings)
    FileClose($file)
    EndFunc

    Hello()

    [/autoit]

    Edit Oscar: Spoiler und AutoIt-Tags eingefügt!

    Einmal editiert, zuletzt von Oscar (3. Januar 2010 um 14:54)

  • Dank DeepRed92 habe ich es nun geschafft. Scheinbar muss @ScriptDir mit angegeben werden. Das ist auch schon des Rätsels Lösung. Ich bedanke mich bei allen die sich für mein Problemchen Zeit genommen haben. :D


    Seid ne echt tolle Truppe hier und ziemlich schnell. Macht Spass sich von euch helfen zu lassen!

    • Offizieller Beitrag

    Hallo,

    wenn du @ScriptDir nicht angibst wird die Datei in das Verzeichnis geschrieben in dem du den Browser wählst!