Ein Script soll ein script schreiben

  • Hallo,
    Ich will ein Builder schreiben....
    Blos ich bekomm es nicht hin das der Builder ein "unterprogramm" mit den vorher angegebenen daten schreibt...
    Könnte mir einer Helfen :)

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $Form1_1 = GUICreate("Bo-Uploader by ~brokolie~", 514, 194, 192, 124)
    $Pic = GUICtrlCreatePic(@ScriptDir & "\bg.jpg", 0, 0, 514, 194)
    GUICtrlSetState(-1,$GUI_DISABLE)
    $FTP = GUICtrlCreateInput("ftp-Server", 160, 88, 185, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
    $User = GUICtrlCreateInput("User", 64, 112, 177, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
    $Password = GUICtrlCreateInput("Password", 264, 112, 177, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
    $Build = GUICtrlCreateButton("Build", 96, 144, 145, 33, 0)
    $Exit = GUICtrlCreateButton("Exit", 264, 144, 145, 33, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Exit
    Exit
    Case $Build
    _build()
    EndSwitch
    WEnd

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

    Func _build()

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


    MfG brokolie

  • find ich ja nett...

    Zitat

    Blos ich bekomm es nicht hin

    Dein gesamter Ansatz lautet

    [autoit]

    Func _build()

    [/autoit]


    Mal so grob als Anhalt zum experimentieren...
    Du öffnest/erstellst eine Datei (FileOpen() ...)
    Deine Angaben schreibst Du in diese Datei (FileWrite() ...) als Befehle, so wie Du sie auch in SciTe schreiben würdest
    Deine Datei schickst Du von mir aus auch noch an den Compiler
    und schon hast Du eine .exe, die das macht, was Du willst.

    Ach ja, vergiss nicht an den Anfang Deiner Datei die nötigen 'includes zu setzen.
    Ist ja wie ein Script von Dir.

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • ^^das weiß ich schon blos gibt es eine möglichkeit ohne das man vorher eine datei erstellen muss?
    weil die leute die kein autoit auf dem pc haben können ja keine .au3 datei bearbeiten und comp.

  • dann packste die Aut2exe.exe halt in Dein Script mit rein und compilierst damit ...

    Edit: ersetzt: Aut2exe.exe !!!

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

    Einmal editiert, zuletzt von Schnuffel (3. Dezember 2009 um 18:24)

  • Edit: @Brokolie Schnuffel war schneller
    Ich glaub nicht das das geht AutoIt ist AutoIt und .au3 Dateien sind AutoIt Dateien.

  • Wie du deine Dateien nennst is dem Computer eig. wurst. Auch wenn du z.b. Autoit nicht auf deinem Computer installiert ast kannst du .au3 dateien erstellen. Und diese kann man sogar ohne Probleme im windows editor bearbeiten, ohne Syntax Highlighting halt. Wenn du dann noch den compiler ins Script packs kannst du die .au3 ganz einfach compilieren.

    Mfg

    Computers are like Airconditioning. They don´t work with open Windows.

  • ...komm nicht klar :(
    in der zeile 4 des scriptes "server" soll die zeile so aussehe

    [autoit]

    $serv = "ftp.site.de"

    [/autoit]


    ;( aber das klappt nicht mit dem code

    [autoit]

    Func _build()
    FileOpen("server.au3", 2)
    FileWrite("server.au3",& @CRLF)
    FileWrite("server.au3",& @CRLF)
    FileWrite("server.au3",& @CRLF)
    FileWrite("server.au3",& @CRLF)
    FileWrite("server.au3","$serv = GUICtrlRead($FTP)")
    EndFunc

    [/autoit]
  • dafür gint es diese zeichen Hier: ' (bei der Raute taste)

    also dann so:

    [autoit]

    filewrite("server.au3", '$serv= "ftp.site.de"')

    [/autoit]

    Computers are like Airconditioning. They don´t work with open Windows.

  • ^^missverstanden

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    #Region ### START Koda GUI section ###
    $Form1_1 = GUICreate("Bo-Uploader by ~brokolie~", 514, 194, 192, 124)
    $Pic = GUICtrlCreatePic(@ScriptDir & "\bg.jpg", 0, 0, 514, 194)
    GUICtrlSetState(-1,$GUI_DISABLE)
    $FTP = GUICtrlCreateInput("ftp-Server", 160, 88, 185, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
    $User = GUICtrlCreateInput("User", 64, 112, 177, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
    $Password = GUICtrlCreateInput("Password", 264, 112, 177, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
    $Build = GUICtrlCreateButton("Build", 96, 144, 145, 33, 0)
    $Exit = GUICtrlCreateButton("Exit", 264, 144, 145, 33, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Exit
    Exit
    Case $Build
    _build()
    EndSwitch
    WEnd

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

    $P = GUICtrlRead($FTP)

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

    Func _build()
    FileOpen("server.au3", 0)
    FileWrite("server.au3",& @CRLF&& @CRLF&& @CRLF& )
    Filewrite("server.au3", '"$serv= $P "'))
    EndFunc

    [/autoit]


    der sol in zeile 4 von der server.au3 runtschen und dort die variable $P eintragen ;)

  • Das müsste jetzt doch ech schon funktionieren od????

    Ah ja, bei den @CRLF´s brauchst du nciht immer 2 &`s hin macen, eins reicht absolut^^

    Mfg

    Computers are like Airconditioning. They don´t work with open Windows.

  • error:(

    Code
    Line 34 (file "C.\User\Brokolie\test.au3):
    
    
    FileWrite("server.au3", &@CRLF&@CRLF&@CRLF&)
    FileWite("server.au3",^ ERROR
    
    
    Error: error in expression
  • ok :D kein error
    blos in der server.au3 fügt er jz nur unten $serv= $P an
    anstat in zeile 4 $serv= $P (variable p durch eingegebenes ersätzen)

  • wenn du die variable drin haben willst:

    [autoit]

    Filewrite("server.au3", '$serv=' & $P)

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


    für das ganze projekt würde ich dir dringenst empfehlen die _File-Funktionen zu nützen

    sehr praktisch wäre für dich wahrscheinlich:

    [autoit]

    _FileWriteToLine()

    [/autoit]
  • ok^^ danke schonmla an alle
    klappt schonma fast^^
    blos es kommt immer fehler wenn ich die $P nicht in die "" oder '' setze

    [autoit]

    Func _build()
    _FileWriteToLine(@ScriptDir & "\server.au3", 4, "$serv =" $P ,1)
    EndFunc

    [/autoit]


    und wenn ich dies tuhe kommt dan stat der varible $P immer die zeichen $P raus

  • Zitat

    Filewrite("server.au3", '$serv=' & $P)

    immer wenn du einen Stringteil und eine Variable und dann nochmal etwas reinschreiben lassen willst brauchst du ein UND ;)

    [autoit]


    "Ich und " & $freund1 & " gehen heute noch ins kino. " & $freund2 & " ist bestimmt eifersüchtig"

    [/autoit]
  • super danke ;) mega danke
    und die letzte frage^^

    [autoit]

    _FileWriteToLine(@ScriptDir & "\server.au3", 4, "$serv =" & GUICtrlRead($FTP),1)

    [/autoit]


    das soll dann bei der server.au3 in "" stehen

    [autoit]

    GUICtrlRead($FTP)

    [/autoit]
  • Meinst du so?:

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

    _FileWriteToLine(@ScriptDir & "\server.au3", 4, "$serv =" & "GUICtrlRead($FTP)",1)

    [/autoit]

    Computers are like Airconditioning. They don´t work with open Windows.