Beiträge von Lanealine
-
-
Hey,
ich habe mir ein Programm geschrieben, dass super funktioniert, solange ich es einzeln laufen lasse.
Ziel ist es jedoch, dass Programm mehrmals zu starten (ca. 5-10x). Das läuft allerdings nicht so richtig, nach einiger Zeit stürzen vereinzelt die Programme ab.
Ich habe schon versucht, einmal das Programm in AutoIT zu starten und den rest als .exe, dass funktioniert aber leider nicht so richtig, weil der Fehler nicht oft genug auftaucht.
Deshalb wollte ich fragen, ob es eine Möglichkeit gibt, dass mir die Line in der die .exe abstürzt angezeigt wird. Bei nem Kumpel von mir wurde immer die Line angezeigt in der der Error aufgetreten ist.
Habe schon als .exe und als .a3x probiert.
Ich hoffe ihr könnt mir weiterhelfen
-
Achsoo, gut zu wissen
Besten dank !
-
Hey,
ich habe ein Problem, wenn ich mit AutoIT rechnen möchte.
Wenn die Zahl mit der ich Rechne = 0 ist, erkennt AutoIT darin auch jedes andere zeichen, wodurch ich keine If Abfragen einbauen kann.
Zum Beispiel:
Bei der ersten MsgBox ist der $test Wert = 0. Trotzdem sagt AutoIT, dass $test = "-" ist.
sobald ich den $test Wert += 1 rechne, läufts und AutoIT erkennt, dass $test <> "-" ist und geht nicht weiter.
Dann rechne ich $test wieder -= 1 und komme wieder auf 0. Ab jetzt wird wieder die $test = "-" Abfrage als erfolglich erkannt, obwohl $test = 0 ist.
Das ganze passiert auch, wenn ich statt "-" jedes andere Zeichen abfrage, z.b. $test = "#" oder = "a". Sobald $test = 0 ist, wird dies erkannt...
Ich kann Global $test = "0" deklarieren, dadurch wird erkannt, bei Msgbox1 erkannt, dass $test <> "-" ist. Wenn ich jetzt allerdings +1 und dann -1 rechne, somit also wieder bei 0 bin, wird wieder $test = "-" erkannt, obwohl $test = 0 ist.
Warum ist das so und wie kann ich das umgehen, damit erkannt wird, dass "-" <> "0" ist ?
Beispiel:
Code
Alles anzeigenGlobal $test = 0 If $test = "-" Then MsgBox(0, "1", "-" & $test) EndIf $test += 1 If $test = "-" Then MsgBox(0, "2", "-" & $test) EndIf $test -= 1 If $test = "-" Then MsgBox(0, "3", "-" & $test) EndIf
Danke
-
wow, das ging ja mal schnell
Vielen Dank für den Tipp
-
Hey,
ich habe ein Array, in dem ich in einer For To Schleife Einträge mit _Arraydelete löschen möchte.
Wenn ich das so mache, wie in dem Beispiel, stürzt das Programm ab, weil das Array nichtmehr seine Ausgangsgröße hat.
Was muss ich machen, damit ich mehrere Einträge in einem Array löschen kann, ohne dass das Programm abstürzt ? bzw. Wie mache ich Autoit klar, dass mein Array in der Schleife verkleinert wurde ?
Code
Alles anzeigenGlobal $test[4] $test[0] = "A" $test[1] = "B" $test[2] = "B" $test[3] = "C" For $i = 0 To UBound($test) - 1 If $test[$i] = "B" Then _ArrayDelete($test, $i) EndIf Next
Wie genau sieht das bei einem 2D Array aus, bei dem in der ersten Spalte einige Einträge den gleichen Wert haben? Gibt es auch die Möglichkeit, dass man auf einmal alle die kompletten Reihen, in der der Wert der ersten Spalte >5 ist auf einmal komplett aus dem Array entfernt?
In dem Beispiel soll jetzt Reihe 0 und 2 komplett entfernt werden(mit _Arraydelete?)
CodeGlobal $test[3][2] $test[0][0] = "10" $test[0][1] = "" $test[1][0] = "2" $test[1][1] = "" $test[2][0] = "8" $test[2][1] = ""
mfg
-
Danke für die Info
-
Hey, ich wollte mir eine For To Schleife bauen, die die Zahlen von 1-10 in Step 0.1 untereinander schreibt.
Merkwürdiger Weise ist das Ergebnis davon anders als erwartet
Ist das bei euch auch so ?!
Warum ist das so ?
Spoiler anzeigen
1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
4
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
6
6.1
6.19999999999999
6.29999999999999
6.39999999999999
6.49999999999999
6.59999999999999
6.69999999999999
6.79999999999999
6.89999999999999
6.99999999999999
7.09999999999999
7.19999999999999
7.29999999999999
7.39999999999999
7.49999999999999
7.59999999999999
7.69999999999999
7.79999999999999
7.89999999999999
7.99999999999999
8.09999999999999
8.19999999999999
8.29999999999999
8.39999999999999
8.49999999999999
8.59999999999999
8.69999999999999
8.79999999999999
8.89999999999999
8.99999999999999
9.09999999999999
9.19999999999999
9.29999999999998
9.39999999999998
9.49999999999998
9.59999999999998
9.69999999999998
9.79999999999998
9.89999999999998
9.99999999999998
Spoiler anzeigen
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
4
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.99999999999999
6.09999999999999
6.19999999999999
6.29999999999999
6.39999999999999
6.49999999999999
6.59999999999999
6.69999999999999
6.79999999999999
6.89999999999999
6.99999999999999
7.09999999999999
7.19999999999999
7.29999999999999
7.39999999999999
7.49999999999999
7.59999999999999
7.69999999999999
7.79999999999999
7.89999999999999
7.99999999999999
8.09999999999999
8.19999999999999
8.29999999999999
8.39999999999999
8.49999999999999
8.59999999999999
8.69999999999999
8.79999999999998
8.89999999999998
8.99999999999998
9.09999999999998
9.19999999999998
9.29999999999998
9.39999999999998
9.49999999999998
9.59999999999998
9.69999999999998
9.79999999999998
9.89999999999998
9.99999999999998
-
Hey,
ich habe 2 Programme, die ein 2D Array[500+][10+] benutzen sollen.
Was ich genau machen möchte:
Das erste Programm erstellt/aktualisiert ein Array und gibt es dann an das 2te Programm weiter, welches es lesen/importieren soll und die daten verarbeitet.
Würdet ihr dies über eine .ini Datei übergeben oder gibts "schnellere" Varianten, ohne dauernt die Datei zu löschen und neu zu schreiben ?
mfg
-
-
Hey,
gibts einen Befehl, der NUR zahlen oder NUR Buchstaben herausfiltert ?
CodeLocal $Array[5] = ["55","ab","2","aa55","11aa"] Local $Zahlen[0] Local $Buchstaben[0] For $i = 0 To UBound($Array) - 1 _ArrayAdd($Zahlen, $Array[$i]) ; NUR Zahlen hier ein Next For $i = 0 To UBound($Array) - 1 _ArrayAdd($Buchstaben, $Array[$i]) ; NUR Buchstaben hier rein Next
In $Zahlen sollen jetzt der Reihe nach alle Zahlen eingesetzt werden, bei $Buchstaben die Buchstaben.
Ich habs mit StringRegExp( \d oder \d\d ) probiert, aber das ist bei mir dann auf eine bestimmte Anzahl von Nummern/Buchstaben eingestellt. Suche nach einer Lösung, bei der es egal ist, wie viele Zeichen der String hat.
-
Cool, besten Dank !
-
Hey,
ich würde gerne bestimmte Daten aus einem String ausgezeigt bekommen.
Das ganze funktioniert auch schon, aber etwas kompliziert
Geht das ganze auch einfacher ?
Code#include <Array.au3> $Suche = "Himmel" $sTest = '"Auto1":"20000km","Auto2":"30000km","Haus1":"5Jahre", "Haus2":"100Jahre", "Himmel":"Blau", "Gras:Grün"' $aHelp1 = StringSplit($sTest, '"' & $Suche & '":"', 1) $aHelp2 = StringSplit($aHelp1[2], '"', 1) $Ergebnis = $aHelp2[1] MsgBox(0, "", $Ergebnis)
Das Beispiel ist noch einfach gehalten, hatte auch schon öfter, dass ich vorher 5 Funktinen benutzen musste, bevor das erwartete Ergebnis herauskam
mfg
-
Top, läuft. Besten Dank !
-
Hey, wie kann ich mir von AutoIT ausgeben lassen, welcher von meinen Buttons gedrückt wurde ?
Bei Case $Button_Ctrl[0] To $Button_Ctrl[2] soll mir AutoIT sagen, welcher von den 3 Buttons gedrückt wurde und mir als Msgbox den Text des Buttons ausgeben.
C
Alles anzeigen#include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $Button_Ctrl[3] Global $Button_Name[3] $Button_Name[0] = "Test1" $Button_Name[1] = "Test2" $Button_Name[2] = "Test3" #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 623, 449, 192, 114) For $i = 0 To 2 $Button_Ctrl[$i] = GUICtrlCreateButton($Button_Name[$i], 104, 40+40*$i, 75, 25) Next GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button_Ctrl[0] To $Button_Ctrl[2] EndSwitch WEnd
-
Komisch... Als Standardprogramm was schon das richtige ausgewählt, nachdem ich einfach das gleiche nochmal ausgewählt habe läufts jetzt
Allerbesten Dank für eure Mühe !!!
-
Habe es nochmal Neuinstalliert, Fehler ist aber immernoch da.
So sieht das ganze bei mir aus:
[Blockierte Grafik: https://picload.org/view/daraggiw/error.jpg.html]
-
Danke erstmal für eure Hilfe
ich habe die Version installiert. Sollte die richtige sein, oder ?
Eine "repair" Option gibts nicht dirket von AutoIT ?
Gibts vielleicht irgendwelche Einstellungen in Windows, die solche Optionen von externen Programmen ausblendet ? (7-Zip wird allerdings angezeigt)
-
achso, okay dann wirds mit Sicherheit daran liegen. Danke
Er startet das Script mit Rechtsklick und dann Run Script. Komischerweise gibts bei mir diese Auswahlmöglichkeiten garnicht. Ich kann mich dran erinnern, dass ich einige Auswahlmöglichkeiten hatte bei au3 Dateien, Edit, Run, Compile oder so ähnlich...
Weißt du Zufällig auch noch wo dran das liegen kann, dass bei mir diese Auswahlmöglichkeiten weg sind ? Habe AutoIT und SciTE schon neuinstalliert, aber bekomme das Menü noch nicht angezeigt.
Wenn ich Rechtsklick auf eine au3 Datei mache, bekomme ich die Standardauswahlmöglichkeiten "Öffnen", "Bearbeiten", "7-Zip..." und meine au3 Icons sehen genau so aus wie die von .txt Dateien...
Mit Doppelklick startet er die au3 im Edit Modus
Merkwürdig ist, wenn ich unter Tools > SciTE Config > "Choose default action for au3 files:" von EDIT auf RUN umstelle, startet er mir die Dateien trotzdem im EDIT Modus...
hoffe das Problem ist bekannt
-
Hey,
wenn ein kompiliertes Autoit Programm als exe abstürzt bekomme ich eine Errormeldung die in etwa so aussieht:
Line 1578 (File "C:\XXX\autoit.exe"):
Error: XXXXX
Vor einigen Tagen habe ich bei nem Kumpel gesehen, dass der in seiner Errornachricht die exakte Zeile + Befehl angezeigt bekommt, wie es auch die Console ausspuckt:
Line 58
==> Subscript used on non-accessible variable.:
If $test[1] = 1 Then
If $test^ ERROR
wir wissen beide nicht, warum er die Nachricht so genau angezeigt bekommt und ich nicht. Habe bis jetzt noch keine Option gefunden, mit der man dies einstellen könnte.
Habt ihr Ideen/Lösungen ?
Danke