Beiträge von BananaJoe
-
-
Friesel:
So habe ich es auch nicht verstanden - darum die Smileys. War auch nicht ganz ernst gemeint -
Hallo,
das kann ich natürlich nicht auf AutoIt sitzen lassenFolgendes Programm liefert das Ergebnis für die Zahl 2147483647 in 0.05 Sekunden - und das auf meiner langsamen Kiste mit noch gefühlten 10 weiteren Anwendungen die laufen.
Spoiler anzeigen
Code
Alles anzeigen; Errorhandling verlangsamt die Func, für Zeitmessungen ggf. rausnehmen Opt("MustDeclareVars", 1) Exit (_Main() = 0 ? MsgBox(16, '', 'Programm mit Fehler beendet') : MsgBox(64, '', 'Programmende', 1)) Func _Main() Local $hStart ; Start von Timer Local $sZahl ; s denn die Rückgabe von InputBox ist String Local $nKleinsterTeiler ; kleinste Zahl durch die $sZahl teilbar ist Local $nPrimzahl ; Rückgabewert der Func _IsPrime() While True $sZahl = InputBox('Primzahlentest', 'Bitte Zahl eingeben, die grprüft werden soll' & _ @CRLF & 'leere Eingabe beendet das Programm.') If $sZahl = '' Then ExitLoop If StringIsInt($sZahl) Then ; nur wenn eine natürliche Zahl eingegeben wurde, etwas machen $hStart = TimerInit() ; Timer starten $nPrimzahl = _IsPrimeNumber($sZahl) ;Prüfung If @error Then If @error = 1 Then MsgBox(16, '', $sZahl & ' ist keine natürliche Zahl') ElseIf @error = 22 Then MsgBox(64, '', '2 ist die kleinste Primzahl') ElseIf @error = 99 Then MsgBox(16, '', $sZahl & ' ist zu groß') ElseIf @error = 2 Or $nPrimzahl = 2 Then MsgBox(48, 'Keine Primzahl', $sZahl & ' ist eine gerade Zahl,' & @CRLF & 'also keine Primzahl') ElseIf @error = 11 Then MsgBox(16, '', 'Es sind nur natürliche Zahlen >= 2 zulässig') Else MsgBox(16, '_Main', '_IsPrimeNumber @error: ' & @error & @CRLF & '@extended: ' & @extended) ; anderer Fehler EndIf Else If $nPrimzahl = 1 Then MsgBox(64, 'Zeit : ' & Round(TimerDiff($hStart) / 1000, 2) & ' Sekunden', $sZahl & ' ist eine Primzahl') Else $nKleinsterTeiler = @extended ; in Variable, sonst wird das @extended von Round ausgegeben MsgBox(16, 'Zeit : ' & Round(TimerDiff($hStart) / 1000, 2) & ' Sekunden', $sZahl & ' ist keine Primzahl' & _ @CRLF & 'Teilbar durch ' & $nKleinsterTeiler) EndIf EndIf EndIf WEnd Return 1 EndFunc ;==>_Main ; #FUNCTION# ==================================================================================================================== ; Name ..........: _IsPrimeNumber ; Description ...: Check if a number is a prime number ; Syntax ........: _IsPrimeNumber($sNumber) ; Parameters ....: $sNumber - a number (as string). ; Return values .: 1 if it is a prime, 0 if not and @extended with the smallest divisors ; Author ........: by Udo ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: ; Example .......: _IsPrimeNumber(21) -> Returns 0 (is not a prime number) and @extended is 3 (the smallest divisor) ; _IsPrimeNumber(19) -> Return 1 (is a prime number) ; =============================================================================================================================== Func _IsPrimeNumber($sNumber) Local $nNumber = Int($sNumber) ; String in Zahl umwandeln If Not IsInt($nNumber) Then Return SetError(1, 0, 0) ; $nNumber ist kein Int If $nNumber < 2 Then Return SetError(11, 0, 0) ; 2 ist kleinste Primzahl, kleinere Zahlen abweisen If $nNumber = 2 Then Return SetError(22, 0, 0) ; Sonderfall der 2 If $nNumber >= 9223372036854775807 Then Return SetError(99, 0, 0) ; mehr kann AutoIt nicht If _IsEven($nNumber) = 1 Then Return SetError(2, 0, 2) ; jede gerade Zahl ist durch 2 Teilbar, also keine Primzahl ; Beginnend mit 3 wird nur jede 2. Zahl geprüft, denn die geraden Zahlen müssen nicht geprüft werden ; eigentlich kann man auch jede Zahl ausschließen, die auf 5 endet, die Frage ist nur was dauert länger... For $i = 3 To Sqrt($nNumber) Step 2 ; wenn kein Teiler bis zur Quadratwurzel existiert, dann gibt es keinen mehr If Mod($nNumber, $i) = 0 Then Return SetError(0, $i, 0) ; kein Rest, also teilbar und somit keine Primzahl Next Return 1 EndFunc ;==>_IsPrimeNumber ; #FUNCTION# ==================================================================================================================== ; Name ..........: _IsEven ; Description ...: Check if a number is even ; Syntax ........: _IsEven($nNumber) ; Parameters ....: $nNumber - a number. ; Return values .: 1 if it is a even number, 0 if it is an odd number ; Author ........: by Udo ; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: ; Example .......: _IsEven(2) -> Returns 1 ; _IsEven(3) -> Returns 0 ; =============================================================================================================================== Func _IsEven($nNumber) If Not IsInt($nNumber) Then Return SetError(1, 0, 0) ; number is not an int If Mod($nNumber, 2) = 0 Then Return 1 Return 0 EndFunc ;==>_IsEven
-
Es gibt auch das "Du bist völlig Banane", was ein Synonym für "neben sich stehen" ist...
-
Bei mir kommt beim Aufruf folgende Fehlermeldung:
"C:\...\InfoBox\_include\_Info_V08.au3"(99,44) : warning: $STM_SETIMAGE: possibly used before declaration.
GUICtrlSendMsg($iBackground, $STM_SETIMAGE,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\...\InfoBox\_include\_Info_V08.au3"(99,44) : error: $STM_SETIMAGE: undeclared global variable.
GUICtrlSendMsg($iBackground, $STM_SETIMAGE,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\...\InfoBox\_include\_Load_BMP_from_MEM_V02.au3"(41,73) : error: _GDIPlus_BitmapCreateDIBFromBitmap(): undefined function.
Local Const $hHBmp = _GDIPlus_BitmapCreateDIBFromBitmap($hBitmapResize)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\...\InfoBox\Info_BETA.au3 - 2 error(s), 1 warning(s) -
-
Happy birthday
-
UEZ:
Hallo,
ich weiß, daß Du diesen Test speziell mit GDI/GDI+ machst.AutoIt ist ja eigentlich als Automatisierungstool gemacht worden. Kann man mit FB auch Programme automatisieren? Wenn ja, wäre da mal ein Geschwindigkeitstest interessant. Und weil es bereits oben erwähnt wurde, auch mit AHK.
Danke und Gruß
-
-
Nachfolgendes Beispiel funktioniert bei mir einwandfrei:
AutoIt
Alles anzeigen#include <Ie.au3> Opt("MustDeclareVars", 1) Exit (_Start() = 0 ? MsgBox(16, '', 'Programm mit Fehler beendet') : MsgBox(64, '', 'Programmende', 1)) Func _Start() Local $oIE = _IECreate("www.autoitscript.com") If @error Then Return MsgBox(16, '_Start', '_IECreate @error: ' & @error & @CRLF & '@extended: ' & @extended) * 0 Return 1 EndFunc ;==>_Start
Win 10, Internet Explorer 11.494.usw AutoIt 2.2.14.0
-
Hi fairsicherungordner,
ich komme ursprünglich aus der Versicherungsbranche.Wenn ein Kunde monatlich zahlen will, gibt das normalerweise einen Aufschlag. Bist Du sicher, daß es "/1.06" und nicht "*1.06" sein muß?
Anhand Deines Beispieles kann man den Jahresbeitrag nicht nachrechnen, denn Du hast mit 220.19 schon den Jahresbeitrag und nicht den Monatsbeitrag angegeben
Viele Grüße
-
Bin gerade bei einem Kunden mit Win 7 Professional x64 -> bei Rechtsklick ist das Kontextmenü nach ca. 1 Sek da
-
-
Schau Dir mal _MouseTrap() an.
-
-
Ich mache zufällig etwas ähnliches
for $s = UBound($pools) -1 to 0 Step -1
...
nextGehe das Array von hinten nach vorne durch, dann kann man Elemente löschen und $s stimmt immer noch.
Edit: BugFix war schneller
-
Das kann man doch auch mit If WinExists('Title') lösen.
-
Happy Birthday
-
Wer ein Invite für ein OnePlus Two braucht, bitte an mich wenden. Ich kann eins vergeben, daß ab heute 7 Tage gültig ist.
-
-
Ich habe schon für 3 Kunden Strato/ePages eingerichtet und alle sind zufrieden damit.
Da haben ähnliche Argumente wie bei Andy dafür gesprochen - es werden auch rechtliche Vorgaben schnell angepaßt (z.B. der "Kaufen-Button").