1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. alpines

Beiträge von alpines

  • ObjT

    • alpines
    • 17. Juli 2013 um 23:46

    Ein Tipp für den Interpreter,

    sofern du die Variablen $switch_e und den Rest nicht abrufst kannst du die StringReplaces auch für die gleiche Variable nutzen, bsp:

    [autoit]


    Global $sString = "Hallo1234"
    $sString = StringReplace($sString, "H","h")
    $sString = StringReplace($sString, "a","A")
    ;...

    [/autoit]


    Das spart Platz im RAM.

    Und ein weiterer Tipp für die Zukunft, bitte gewöhn dir an, die neuen Versionen im ersten Thread einzubinden bzw. hotzulinken, sonst findet man die neuen Versionen in den ganzen Seiten nicht!

  • ObjT

    • alpines
    • 17. Juli 2013 um 18:01

    Ich finde es schön das du versuchst eine eigene Scriptsprache zu entwickeln aber da fallen mir einige Dinge dabei auf:

    1. Wozu Zeilenangabe ganz oben? Bei deinem Interpreter kannst du doch die Anzahlen der @CRLFs zählen und dann sieht der Code besser aus.
    2. Wenn du mit der neuen Sprache Sachen einfacher gestalten kannst, dann halte ich das für eine sehr gute Idee, aber

    wenn bei einem komplizierteren Syntax nichts besseres/neues dazukommt dann ist das nicht viel wert. Da ist die Zeit in AutoIt besser investiert.

  • _IEGetObjByName Hilfe

    • alpines
    • 17. Juli 2013 um 12:31

    Ich bin mir nicht ganz sicher ob es dir hilft aber wenn im Source-Code im Link unter name= nichts vermerkt ist kannst du es ja mal mit _IEFormSubmit versuchen?
    Wird wahrscheinlich nicht funktionieren aber kannst du ja mal testen.

  • Eigenes Macro Tool

    • alpines
    • 17. Juli 2013 um 12:27

    Wenn welche vorhanden sind dann steht da für Benutzername 1 was in der Ini in Id1 steht.
    Wenn nichts steht steht da glaub ich gar nichts oder 0.

    Schreib erstmal die Ini per GUI + Speichern und ruf die dann nochmal auf!
    Dann sollte es dort angezeigt werden.

  • Eigenes Macro Tool

    • alpines
    • 16. Juli 2013 um 23:48

    Da haben es wir ja mit einem ganz neuen Frischling zu tun :D
    Auch das ist leicht getan!

    Du musst aufpassen bei dem SendOne und SendTwo, dann es kann ja sein das du nicht beides hintereinander haben möchtest.
    Wenn die ID hallo wäre und das PW toaster dann wäre das bei dieser Variante wenn du den HotKey dafür drückst: hallotoaster
    Wenn du aber ein Enter dazwischen haben möchtest wäre dazwischen noch ein Send("{ENTER}"), die Tastenbefehle dafür kannst du in der Hilfe hier nachschlagen.

    [autoit]


    HotKeySet("{F7}", "SendOne")
    HotKeySet("{F8}", "SendTwo")
    HotKeySet("{F9}","Edit")

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

    While 1
    Sleep(2000)
    WEnd

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

    Func SendOne()
    Send(IniRead(".\\settings.ini", "Login", "Id1", ""))
    Send(IniRead(".\\settings.ini", "Login", "Pw1", ""))
    Endfunc

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

    Func SendTwo()
    Send(IniRead(".\\settings.ini", "Login", "Id2", ""))
    Send(IniRead(".\\settings.ini", "Login", "Pw2", ""))
    Endfunc

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

    Func Edit ()
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $Form1_1 = GUICreate("Form1", 135, 182, 436, 141)
    $Benutzername1 = GUICtrlCreateInput(IniRead(".\\settings.ini", "Login", "Id1", ""), 8, 24, 121, 21)
    $Passwort1 = GUICtrlCreateInput(IniRead(".\\settings.ini", "Login", "Pw1", ""), 8, 48, 121, 21)
    $Benutzername2 = GUICtrlCreateInput(IniRead(".\\settings.ini", "Login", "Id2", ""), 8, 80, 121, 21)
    $Passwort2 = GUICtrlCreateInput(IniRead(".\\settings.ini", "Login", "Pw2", ""), 8, 104, 121, 21)
    $Speichern = GUICtrlCreateButton("Speichern", 8, 136, 113, 33)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Speichern
    IniWrite(".\\settings.ini", "Login", "Id1", GUICtrlRead($Benutzername1))
    IniWrite(".\\settings.ini", "Login", "Id2", GUICtrlRead($Benutzername2))
    IniWrite(".\\settings.ini", "Login", "Pw1", GUICtrlRead($Passwort1))
    IniWrite(".\\settings.ini", "Login", "Pw2", GUICtrlRead($Passwort2))

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

    EndSwitch
    WEnd
    EndFunc

    [/autoit]
  • Integralrechner

    • alpines
    • 16. Juli 2013 um 23:21

    Hey danke chessy :D

    Ich wusste nicht das es die Funktion gibt aber danke das du es erwähnt hast!

  • Integralrechner

    • alpines
    • 16. Juli 2013 um 23:11

    Freut mich das es jemandem gefällt :)

    Zu der Sache mit der ganzen Funktion zu integrieren.
    Ich weiß nicht wie man einen String solven lassen kann.
    Wenn man in AutoIt einen String hat z.B.

    [autoit]


    $sFunction = "12*(x-2)+4"

    [/autoit]


    Dann kann man den String ja nicht solven lassen, es gibt keine Funktion dafür, deshalb muss man das leider so machen.
    Man braucht diese Funktion wenn man das in eine GUI einbauen möchte die für die Gleichung eine statt viele InputControls hat.

    Wenn man eine Solve-Funktion hat dann kann man ich die ganze Funktion integrieren und dann die Werte von 1-3 auslesen.
    Das gleiche ist bei Punktsteigung und Ableitung von Funktionen so.

  • Eigenes Macro Tool

    • alpines
    • 16. Juli 2013 um 21:40

    Du kannst auch Send("lala" & "lala" & "{ENTER}")
    statt Send("lala")
    Send("lala")
    Send("{ENTER}")

    [autoit]


    HotKeySet("{F7}", "SendOne")
    HotKeySet("{F8}", "SendTwo")
    HotKeySet("{F9}","Edit")

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

    While 1
    Sleep(2000)
    WEnd

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

    Func SendOne()
    Send(IniRead(".\\settings.ini", "Login", "Id1", ""))
    Send(IniRead(".\\settings.ini", "Login", "Pw1", ""))
    Endfunc

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

    Func SendTwo()
    Send(IniRead(".\\settings.ini", "Login", "Id2", ""))
    Send(IniRead(".\\settings.ini", "Login", "Pw2", ""))
    Endfunc

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

    Func Edit ()
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $Form1_1 = GUICreate("Form1", 135, 182, 436, 141)
    $Benutzername1 = GUICtrlCreateInput("Benutzername", 8, 24, 121, 21)
    $Passwort1 = GUICtrlCreateInput("Passwort", 8, 48, 121, 21)
    $Benutzername2 = GUICtrlCreateInput("Benutzername", 8, 80, 121, 21)
    $Passwort2 = GUICtrlCreateInput("Passwort", 8, 104, 121, 21)
    $Speichern = GUICtrlCreateButton("Speichern", 8, 136, 113, 33)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Speichern
    IniWrite(".\\settings.ini", "Login", "Id1", GUICtrlRead($Benutzername1))
    IniWrite(".\\settings.ini", "Login", "Id2", GUICtrlRead($Benutzername2))
    IniWrite(".\\settings.ini", "Login", "Pw1", GUICtrlRead($Passwort1))
    IniWrite(".\\settings.ini", "Login", "Pw2", GUICtrlRead($Passwort2))

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

    EndSwitch
    WEnd
    EndFunc

    [/autoit]
  • Integralrechner

    • alpines
    • 16. Juli 2013 um 20:10

    Hi,

    ich hab mir letztens mal das Thema Integralrechnung angeschaut und dachte mir das wäre doch in AutoIt machbar.
    Falls jemand nicht weiß, was ein Integral ist hier eine kurze Erklärung + Rechnung:

    Integralrechnung - Erklärung und Beispielsrechnung

    Ein Integral einer Funktion ist die Fläche die sich über oder unterhalb der X-Achse im Koordinatensystem befindet.
    Die Fläche unterhalb der Funktion und über der X-Achse ist positiv und die Fläche über der Funktion und unter der X-Achse ist negativ.
    Das wird verrechnet (positive und negative Fläche) und dann hat man das Integral einer Funktion.

    Da ich am Anfang nicht wusste wie man das ausrechnen könnte,
    da ja fest jede Funktion eine andere Form hat und man es nicht genau ermitteln kann hab ich es so gelöst:

    Ich habe einen Wert X. Ich verrechne den Wert, der ist bsp.-weise 2. In f(x) = x wäre das f(2) = 2.
    Dann addiere ich zu X einen kleinen Wert, der ist konstant 0.001. Daraus folgt: f(2 + 0.001) = 2.001
    Anschließend errechne ich die Fläche des Trapezes mittels einfacher Mathematik.

    Die lange Strecke (je nach dem welcher Wert bei f(x) höher ist) - die kurze Strecke.
    Da es ja ein Trapez ist, kann man das Trapez durch folgende 2 Formen definieren:

    Quadrat und Dreieck.

    Das Quadrat wäre die kleine Strecke * 2.
    Das Dreieck wäre (die lange Strecke - die kurze) * 0.001 / 2.
    Beides zusammenaddiert ergibt es das Integral der Funktion an der Stelle X und X + 0.001.

    So rechnet man in kleinen Schritten immer weiter bis man an dem Ende - 0.001 angekommen ist.

    Das hört sich für einige Leute an als ob jemand an der Matratze kratzen würde aber hoffentlich war es ohne zeigen verständlich.
    Falls Unklarheiten sind hier ist eine Beispielrechnung:

    Wir wollen das Integral der Funktion f(x) = x an der Stelle 1 bis 3.
    Wir benutzen hier nicht mehr 0.001 als Schritt sondern 2, weil es ein Trapez ist, und wir nicht unnötig kleine Schritte machen müssen.

    Wenn wir in die Funktion f(x) = x für x 1 einsetzen kommt folgendes raus f(1) = 1.
    Wenn wir für die Funktion f(x) = x für x 1 + 2 einsetzen kommt folgendes raus f(1+2) = 3.

    Berechnung des Quadrats:
    Da 1 der kleinere Wert von 1 und 3 ist rechnen wir:
    1 * 2 = 2.

    Die Fläche des Quadrats ist 2 LE² (Längeneinheiten).

    Berechnung des Dreiecks:
    Da 3 der höhere Wert von 1 und 3 ist rechnen wir:
    (3 - 1) * 2 / 2 = 2.

    Die Fläche des Dreiecks ist 2 LE².

    Somit wäre das Integral der Funktion f(x) = x an der Stelle 1 bis 3:
    2 LE² + 2 LE² = 4 LE².


    Das wars auch eigentlich schon, die Rechnung könnt ihr euch im Script anschauen, es gibt noch Besonderheiten bei negativen Werten deshalb ist das If da.

    Wichtig für beide Versionen!!!
    Ihr müsst die Werte unterschiedlich bei unterschiedlichen Funktionen runden da es nur Näherungswerte sind.
    So wäre bei f(x) = x an der Stelle 1 bis 3 3.99970000500089 bei einem Step von 0.0001 4!

    Wichtig für die Version ohne Solver!!!

    Spoiler anzeigen
    [autoit]


    ;...
    $fX = $fValue
    $fX_ = $fValue + $fStep
    ;...

    [/autoit]


    Wenn ihr andere Funktionen ausprobieren möchtet setzt $fValue + $fStep in Klammern!!!
    Die Funktion ist hier f(x) = x. Wenn ihr z.B. f(x) = x² oder x³ möchtet dann macht ihr bsp.-weise folgendes:
    $fX = $fValue^3
    $fX_ = ($fValue + $fStep)^3


    Script hier oder im Anhang

    Integralrechner ohne Funktionsgleichung
    [autoit]


    Global Const $fBegin = 1, _
    $fEnd = 3, _
    $fStep = 0.0001

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

    Global $fX, $fX_, $fArea

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

    For $fValue = $fBegin To $fEnd - $fStep Step $fStep
    $fX = $fValue
    $fX_ = $fValue + $fStep

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

    If ($fX_ < $fX and $fX_ > 0) or ($fX_ > $fX and $fX_ < 0) Then
    $fArea += $fStep * $fX_ + ($fX - $fX_) * $fStep / 2
    Else
    $fArea += $fStep * $fX + ($fX_ - $fX) * $fStep / 2
    EndIf
    Next

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

    MsgBox(64, "Integral", "Die Fläche des Integrals der Funktion f(x) = x an der Stelle: " & $fBegin & " bis " & $fEnd & " beträgt: " & $fArea)

    [/autoit]
    Integralrechner mit Funktionsgleichung
    [autoit]

    Global Const $fBegin = 1, _
    $fEnd = 3, _
    $fStep = 0.0001, _
    $sFunction = "x"

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

    Global $fX, $fX_, $fArea

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

    For $fValue = $fBegin To $fEnd - $fStep Step $fStep
    $fX = Execute(StringReplace($sFunction, "x", $fValue))
    $fX_ = Execute(StringReplace($sFunction, "x", $fValue + $fStep))

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

    If ($fX_ < $fX and $fX_ > 0) or ($fX_ > $fX and $fX_ < 0) Then
    $fArea += $fStep * $fX_ + ($fX - $fX_) * $fStep / 2
    Else
    $fArea += $fStep * $fX + ($fX_ - $fX) * $fStep / 2
    EndIf
    Next

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

    MsgBox(64, "Integral", "Die Fläche des Integrals der Funktion f(x) = " & $sFunction & " an der Stelle: " & $fBegin & " bis " & $fEnd & " beträgt: " & $fArea)

    [/autoit]
    Integralrechner mit Funktionsgleichung als AutoIt-Funktion
    [autoit]


    MsgBox(64, "Integral", "Die Fläche des Integrals der Funktion f(x) = " & "x^2" & " an der Stelle: " & "1" & " bis " & "3" & " beträgt: " & _Integral("x^2", 1, 3))

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

    Func _Integral($sFunction, $fBegin, $fEnd, $fStep = 0.0001)
    Local $fX, $fX_, $fArea

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

    For $fValue = $fBegin To $fEnd - $fStep Step $fStep
    $fX = Execute(StringReplace($sFunction, "x", $fValue))
    $fX_ = Execute(StringReplace($sFunction, "x", $fValue + $fStep))

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

    If ($fX_ < $fX and $fX_ > 0) or ($fX_ > $fX and $fX_ < 0) Then
    $fArea += $fStep * $fX_ + ($fX - $fX_) * $fStep / 2
    Else
    $fArea += $fStep * $fX + ($fX_ - $fX) * $fStep / 2
    EndIf
    Next

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

    Return $fArea
    EndFunc

    [/autoit]


    Da die Performanz in AutoIt in einigen Bereichen oder generell zu wünschen lässt, kann es bei kleineren Schritten länger dauern.

    Wenn jemand eine andere Methode kennt das Integral rauszufinden oder einen anderen Lösungsweg weiß bitte her damit!
    Ich weiß das man die ganze Funktion integrieren kann aber allein um die Funktion "12*(x-2)+4" zu trennen bzw. den String zu solven dauert das ein bisschen.
    Mit Execute und StringReplace geht das ganze viel besser von der Hand.

    Hoffentlich gefällts euch, Kritik und Lob erwünscht!

    Dateien

    Integral.au3 411 Byte – 764 Downloads Integralrechner mit Solver.au3 657 Byte – 799 Downloads Integralrechner mit Solver als Funktion.au3 663 Byte – 778 Downloads
  • Fail mit inetRead O.o

    • alpines
    • 16. Juli 2013 um 18:34

    Meine Messmethode war folgende:

    TimerInit vor dem $sUpdatePacket und TimerDiff hinter TCPCloseSocket.
    So hab ich es bei meiner Methode gemessen.

    Bei der InetRead-Methode kommt die Zeit zum konvertieren dazu:
    TimerInit vor dem BinaryToString(InetRead(... und das TimerDiff dahinter.

    Ich hab das ein paar mal durchlaufen lassen und bei meiner Methode waren es rund ~100-105ms und bei InetRead + BinaryToString waren es ~120-190ms.
    Da sich der 190ms Wert aber nicht häufig wiederholte und sich bei etwa 120-150 einpendelte ist somit meine Methode (wenn man meine Messmethode beachtet) schneller.

    So wie du das hast hab ich das in etwa auch gemessen, und bei mir war meine Methode schneller.
    An der Internetleitung kann es nicht liegen, weil du ja beide Messungen an der gleichen Leitung durchgeführt hast, ich hab auch dieselbe Leitung benutzt.

    Woran es aber liegen könnte wäre folgendes:

    Da man nicht weiß was InetRead genau macht, kann man nur spekulieren. So könnte InetRead bei wiederholtem benutzen die Verbindung zum Server aufrechterhalten haben bzw. kein TCPShutdown benutzt haben.
    Wenn wenn ich InetRead 1x oder 2x benutze ist es langsamer als meine Variante.

    Und da man die Versionsnummer ja nur einmal braucht und nicht 50x wäre meins im einmaligen Gebrauch schneller :)

  • RegEx unbekannte Anzahl an wiederholungen

    • alpines
    • 16. Juli 2013 um 18:07

    Die Funktion macht wahrscheinlich das in etwa so wie ich das beschrieben hab :D
    Wenns mit 3 geht dann kann man das mit dem wegschneiden weglassen, spart Code.

  • RegEx unbekannte Anzahl an wiederholungen

    • alpines
    • 16. Juli 2013 um 17:38

    Wenn du den ersten Eintrag hast schneidest du alles was links von dem was noch nicht angeschaut wurde weg und wiederholst das bis RegEx einen Fehler bzw. keinen Eintrag returnt.
    Der Return-Code für Error/keine Einträger sollte in der Hilfe stehen.

  • Prozess vor dem Beenden schützen.

    • alpines
    • 16. Juli 2013 um 17:30

    Wenn es möglich ist, dann kannst du die Control im TaskMgr auslesen und bearbeitet reinschreiben.
    Dann würde dein Prozess wegfallen, aber es wäre möglich ihn per AutoIt Commands zu beenden, sofern man den Prozessnamen weiß.

  • Fail mit inetRead O.o

    • alpines
    • 16. Juli 2013 um 17:20

    Du kannst aber auch statt InetRead auch einfach per TCPSend / TCPRecv und einem Paket die Website abfragen.
    Dann fällt StringToBinary weg aber du hast ein paar Zeilen an Code mehr aber der Code ist schneller als InetRead.
    Meine Methode braucht (auf meinem System) nur ~100ms während InetRead knapp ~120-190ms braucht.

    [autoit]


    $sUpdatePacket = "GET /test/update.txt HTTP/1.1" & @CRLF & _
    "Host: http://www.v1dr333s.nl" & @CRLF & _
    @CRLF
    TCPStartup()

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

    Do
    $hServer = TCPConnect(TCPNameToIP("v1dr333s.nl"), 80)
    Until $hServer <> -1

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

    TCPSend($hServer, $sUpdatePacket)

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

    Do
    $sUpdateHTML = TCPRecv($hServer, 512)
    Until $sUpdateHTML <> ""

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

    $sUpdateVersion = StringTrimLeft($sUpdateHTML, StringInStr($sUpdateHTML, @CRLF, 1, -1) + 1)

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

    TCPCloseSocket($hServer)
    TCPShutdown()

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

    MsgBox(64, "Update-Version", "Die aktuelle Version ist: " & $sUpdateVersion)

    [/autoit]

    Hoffentlich blickt ihr da durch :D

    Dateien

    Update Checker.au3 539 Byte – 290 Downloads
  • Programm mit anderem Programm starten

    • alpines
    • 2. Juli 2013 um 15:34

    Bin mir nicht ganz sicher ob die If-Verzweigung so funktioniert.
    ProcessExists returnt die PID, wenn es aber den Prozess nicht findet dann returnt es (lt. Hilfe) 0.

    Ich würde es so vorschlagen:

    [autoit]


    If ProcessExists("Programm1.exe") > 0 Then
    Run("Programm2.exe")
    Else
    Run("C:\Skript.exe")
    Sleep(550)
    EndIf

    [/autoit]

    Hab es nur theoretisch durchdacht, hab es nicht ausprobiert.

  • Error 411 (Length Request)

    • alpines
    • 30. Juni 2013 um 23:08

    Nur so als Tipp am Rande, fürs saubere coden.

    [autoit]


    $header = $header & ;...
    ;ist das gleiche wie
    $header &= ;...

    [/autoit]

    Desweiteren musst du folgendes beachten, wenn du nicht _WinHTTP benutzt.

    Wenn der Server die Einstellung "Transfer-Encoding" auf "chunked" stellt. So musst du solange TCPReceiven bis du keine neuen Daten mehr dazu bekommst!

  • Programm mit anderem Programm starten

    • alpines
    • 30. Juni 2013 um 23:04

    Das brennt ja in der Seele :D
    Achtung, "Programm2.exe" muss sich im selben Ordner wie das Skript (was ich unten gepostet hab) befinden, ansonsten geht die Pfadangabe!!

    So sollte es vermutlich richtig sein:

    [autoit]


    ProcessWait("Programm1.exe")
    If ProcessExists("Programm1.exe") Then
    Run("Programm2.exe")
    Else
    Run("C:\Skript.exe")
    Sleep(550)
    EndIf

    [/autoit]
  • Gui texte aus dem label in zwischen ablage

    • alpines
    • 29. Juni 2013 um 13:00

    Du könntest die Mausposition abfragen und dazu noch abfragen ob das Fenster aktiv ist.
    Anschließend _isPressed (#include <Misc.au3> nicht vergessen) abfragen ob ein rechtsklick getan wurde.

    Wenn du die Anzahl aller Labels weißt dann einfach

    [autoit]

    ClipPut(GUICtrlRead($Label1)&GUICtrlRead($Label2));...

    [/autoit]

    Wenn es ein fremdes Fenster sein soll kann ich dir nur raten AutoIt Window Info zu nehmen und zu prüfen ob neue Label da sind.

  • Heyho

    • alpines
    • 23. Juni 2013 um 20:30

    Auf gute Zusammenarbeit!

    Orion lass den Leuten doch ihre Kreativität ausleben :D

  • mNotice 1.0

    • alpines
    • 20. Juni 2013 um 13:42

    m-obis Vorschlag kann ich nur zustimmen.

    Source-Code Optimierung zahlt sich immer aus.
    Du kannst auch das

    [autoit]


    _FileCreate

    [/autoit]


    weglassen, da FileWrite automatisch die Datei erstellt wenn sie nicht existent ist.
    Dann sparst du an einem include, wenn du es nicht andersweitig verwendest.

    Eventuell solltest du auch prüfen ob die Dateien gelöscht wurden (funktioniert immer wenn man die Rechte dazu hat, einige haben sie aber vielleicht nicht).
    Aber das ist eigentlich überflüssig, wollt ich nur mal am rande gesagt haben!

    Desweiteren machen mich dein Variablennamen ein bisschen nervös :)

    [autoit]


    $File = FileRead

    [/autoit]


    man weiß nicht wenn man die Variable $File irgendwo anders verwenden möchte, welcher Typ sie ist.
    Ein Fehler befindet sich aber in der Zeile. (Ich hab nur den Snippet angeguckt.) Wenn du die Datei die du FileReaden möchtest nicht geöffnet hast dann ist das nicht gut.
    Gewöhn es dir an

    [autoit]


    $hFile = FileOpen ;h steht für Handle. Die einzelnen Buchstaben bzw. Variablenamen kannst du unter "ungarische Notation" googlen.
    $sFile= FileRead($hFile) ;s steht für String.
    FileClose($hFile)

    [/autoit]

    Aber das sind nur Schönheitsfehler, bzw. Code-Optimierungsfehler aber das kommt sicherlich noch!

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™