Achsoo ich dachte schon ihr hättet einen echten Compiler in so einer kurzen Zeit programmiert. Irgendwie ist es doch ironisch einen Interpreter, der mit dem Code zusammen 'komplimiert' wird in einer Sprache zu schreiben die selbst nur mit ihrem Interpreter zusammen gepackt wird...
Quasi
Beiträge von BinDannMalWeg
-
-
Du musst dir nur eine zweite Bitmap erstellen. Auf diese zeichnest du dann zu Beginn alle Hintergrund Linien/Bilder und dann wird sie nicht mehr verändert. Jedes mal bevor du dann das nächste Frame Kurven auf den Backbuffer zeichnest zeichnest du vorher einfach noch das Hintergrund-Bitmap auf den Backbuffer... So ist es dann nicht nötig den Hintergrund für jedes Frame neu zu rendern...
-
Den hab ich jetzt auch hinbekommen
Du hast einen Compiler programmiert? :O -
Videoschnitt?
*hust* Botter *hust* -
Wo liegt denn da das Problem?
[autoit]$Text = 'Test_Text'
[/autoit]
$Lang = 'en'
ConsoleWrite("http://test.test.de/abc_tts?ie=UTF-8&q="&$Text&"&tl="&$Lang&"&total=1&idx=0&textlen=3"&@CRLF)
$Lang = 'de'
ConsoleWrite("http://test.test.de/abc_tts?ie=UTF-8&q="&$Text&"&tl="&$Lang&"&total=1&idx=0&textlen=3"&@CRLF)
$Lang = 'fr'
ConsoleWrite("http://test.test.de/abc_tts?ie=UTF-8&q="&$Text&"&tl="&$Lang&"&total=1&idx=0&textlen=3"&@CRLF)
Edit: $var war schneller... -
Ich schätze du hast da etwas an der Grund-Logik die bei den meisten Programmen mit Auto-Vervollständigung 'dahinter steckt' nicht verstanden... In deinem Programm brauchst du irgend eine Stelle, an der die Auto-Vervollständigung ausgelöst/aktiviert werden soll. Das heißt, das Script wartet bis, um bei deinem Beispiel zu bleiben, die Enter-Taste gedrückt wird und dann wird eine Funktion aufgerufen, die dann die Inhalte von Feldern vergleicht/anpasst/ergänzt usw... Das Script kann ja schließlich nicht von alleine wissen wann beziehungsweise was in welche Felder geschrieben werden soll usw. Deshalb muss diesen Teil, fast immer Programm spezifisch durchdacht und einprogrammiert werden.
-
chesstiger : Und was ist wenn im Betreff eine Zahl ist?
-
Warum bringen dich unsere Vorschläge denn nicht weiter? Hast du sie denn getestet? Wenn man davon absieht, dass zuerst von Multiplizieren die Rede war, tut mein Beispiel doch genau das was deine ursprüngliche Funktion tun sollte? Da du nun die Beträge addierern möchtest muss man nur 2 Zeichen im Script ändern und sie werden addiert und zurück gegeben:
Spoiler anzeigen
[autoit]#include <File.au3>
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite('Gehalt: ' & _Gehalt(@ScriptDir & '\test.txt')&@CRLF)Func _Gehalt($File)
[/autoit]
Local $Lines = _FileCountLines($File), $Handle = FileOpen($File, 0), $Return = 0
If $Handle = -1 Then
MsgBox(16, "Error", "Unable to open file.")
Exit
EndIf
If $Lines > 0 Then
For $i = 1 To $Lines
$CurrentLine = FileReadLine($Handle, $i)
If $CurrentLine <> '' Then
$Array = StringSplit($CurrentLine, " ")
If IsArray($Array) And $Array[0] >= 2 Then $Return += $Array[2]
EndIf
Next
EndIf
FileClose($Handle)
Return $Return
EndFunc ;==>_Gehalt -
Zum Beispiel so:
Spoiler anzeigen
Nicht erschrecken ich hab dein Script nur noch etwas aufgeräumt...
[autoit]#include <File.au3>
[/autoit] [autoit][/autoit] [autoit]
ConsoleWrite('Gehalt: ' & _Gehalt(@ScriptDir & '\test.txt')&@CRLF)Func _Gehalt($File)
[/autoit]
Local $Lines = _FileCountLines($File), $Handle = FileOpen($File, 0), $Return = 1
If $Handle = -1 Then
MsgBox(16, "Error", "Unable to open file.")
Exit
EndIf
If $Lines > 0 Then
For $i = 1 To $Lines
$CurrentLine = FileReadLine($Handle, $i)
If $CurrentLine <> '' Then
$Array = StringSplit($CurrentLine, " ")
If IsArray($Array) And $Array[0] >= 2 Then $Return *= $Array[2]
EndIf
Next
EndIf
FileClose($Handle)
Return $Return
EndFunc ;==>_Gehalt -
Für 2 Wochen Autoit ist dein Script schon bombig!
Naja vielleicht sehen das manche anders aber zumindest ich habe nach 2 Wochen noch keine 89-Zeiler, die auch funktionieren geschrieben...
Was mir aber trotzdem gleich aufgefallen ist ist folgendes: Da du in deinem Script 4 Buttons hast, die eigentlich genau die gleiche Funktion haben kannst du mit Hilfe von Arrays und eigenen Funktionen dein Script noch eleganter lösen... Hier mal ein alternativer Aufbau mit Funktionen und Arrays:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
Global $Button[4], $Filme[4] = ['./Extra/Film/Test1.flv', './Extra/Film/Test2.mov', './Extra/Film/Test3.wmv', './Extra/Film/Test4.wmv'], $VLC = './Extra/VLC/vlc.exe'
$Form1 = GUICreate("Winkler Imagefilm", 339, 261, 253, 128)
$Label1 = GUICtrlCreateLabel(" Welche Version soll abgespielt werden?", 0, 8, 327, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Imagefilme in HD und Ton", 8, 48, 158, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Button[0] = GUICtrlCreateButton("Abspielen", 208, 48, 107, 25, 0)
$Label3 = GUICtrlCreateLabel("Imagefilm in HD ohne Ton", 8, 80, 158, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Button[1] = GUICtrlCreateButton("Abspielen", 208, 80, 107, 25, 0)
$Label4 = GUICtrlCreateLabel("Imagefilm in XY mit Ton", 8, 112, 142, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Button[2] = GUICtrlCreateButton("Abspielen", 208, 112, 107, 25, 0)
$Label5 = GUICtrlCreateLabel("Imagefilm in XY ohne Ton", 8, 144, 155, 20)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Button[3] = GUICtrlCreateButton("Abspielen", 208, 144, 107, 25, 0)
$ButtonBeenden = GUICtrlCreateButton("Beenden", 104, 216, 123, 33, 0)
$Label6 = GUICtrlCreateLabel("Das Fenster 'Privatsphären- und Netzwerkzugriff-Regel'", 8, 176, 264, 17)
GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
$Label7 = GUICtrlCreateLabel("kann bedenkenlos mit 'Sichern und fortsetzen' bestätigt werden.", 8, 192, 305, 17)
GUICtrlSetFont(-1, 9, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)While 1
[/autoit] [autoit][/autoit] [autoit]
$GuiMsg = GUIGetMsg()
For $i = 0 To 3
If $GuiMsg = $Button[$i] Then _Play($i)
Next
If $GuiMsg = $GUI_EVENT_CLOSE Or $GuiMsg = $ButtonBeenden Then Exit
WEndFunc _Play($Number)
[/autoit]
$Execute = ShellExecute($VLC, $Filme[$Number], '', 'open', @SW_MAXIMIZE)
If $Execute <> 1 Then
MsgBox(16, 'Fehler', 'Fehler beim abspielen!', 5)
Else
WinSetOnTop($Filme[$Number], "", 1)
WinWait("VLC media player")
ProcessClose("vlc.exe")
EndIf
EndFunc ;==>_PlayDa ich nicht die gleichen Verzeichnisse wie du habe, ist es noch ungetestet... Wie oben schon erwähnt, könntest du dich als nächstes mal mit Arrays und eigenen Funktionen auseinander setzten.
-
An dieser Stelle verweise ich lieber noch mal auf die Forenregeln:
Spoiler anzeigen
Zitat- Bots für Spiele jeglicher Art, insbesondere Onlinespiele und ganz besonders Silkroad Online sowie World of Warcraft
- Tools, um Nachrichten unerwünscht oft zu versenden (Spamming-Tools)
- Programme, die anderen, auch Freunden, einen Schreck einjagen sollen oder sich sonst über andere Nutzer lustig machen ("Spaßviren")
- Automatisierung von Webseiten oder Tools, die das in ihren AGBs verbietenAußerdem ist zumindest mir nicht ganz klar was genau diese 'Hotkey-UDF' dann anders machen soll, als die Befehle HotkeySet und _IsPressed
Richtig angewandt lassen sich die von dir genannten Beispiele nämlich alle umsetzen...
-
Genau des halb nimmt man sich dann ein ich nenn es jetzt mal '3D-Array' und stellt einfach die erste Dimension um...
[autoit]Dim $Array[3][25][10]
[/autoit] -
Normalerweise startet man immer ein Programm welchem mann dann die Datei als Parameter übergibt! ShellExecute() ist da die Ausnahme, weil sie sich den Pfad zum Standard Programm für eine gewisse Dateiendung aus der Registry holt, wenn eben nur eine Datei angegeben wird... Das ganze lässt sich deshalb manuell einfach so lösen
[autoit]ShellExecute('Pfad zur VLC.exe','Film-Datei')
[/autoit] -
Ersetze das $CmdLine[0] bzw. [1] mal durch $CmdLineRaw. Wahrscheinlich wird einfach der Parameter falsch/nicht übergeben. Aber wenn man sowieso nur einen Parameter hat, ist es generell besser $CmdLineRaw zu benutzen, da $CmdLine[1] gar nicht deklariert wird, wenn kein Parameter angegeben wird...
-
Danke für die schnelle Hilfe.
Ich stand gestern Abend einfach irgendwie auf dem Schlauch... -
Hey
,
ich hab mal eine etwas mathematischere Frage... In einem Koordinatensystem liegen zwei Punkte, A und B. Ihre Koordinaten sowie auch die Strecke zwischen ihnen sind bekannt. Die Koordinaten eines Punkt N, der auf der Strecke AB liegt, sind gesucht. Außerdem sind die Strecken AN und BN bekannt. Nun bin ich auf die Idee gekommen, dass man um A und B jeweils einen Kreis mit dem Radius AN beziehungsweise BN annehmen könnte. Wenn man nun den Schnittpunkt der beiden Kreise berechnen würde, hätte man die Koordinaten des Punktes N. Also habe ich mir gedacht: "Jetzt setze ich einfach die beiden Formeln gleich und..." aber genau da liegt mein Problem! Mir und meiner Formelsammlung ist keine Kreis-Formel bekannt, die Mittelpunkt und Radius/Durchmesser beinhaltet...
Also noch einmal zusammengefasst:
Gegeben: Punkt A, Punkt B, Strecke AB, Strecke AN, Strecke BN
Gesucht: Punkt N
Das ganze habe ich schnell auch noch aufgemalt... -
Vielleicht könnte man sich hier auch ein paar Anregungen holen...
-
Mal was Anderes: Wie wird in diesem System denn dafür gesorgt, dass irgendwelche Menschen einfach Maleware in so eine Ini packen?
-
Das ist jetzt nicht dein Erst oder? Du postest deine Zugangsdaten im Klartext frei zugänglich für die ganze Welt und wunderst dich warum jemand deine Daten löscht? Zumal du ja sogar durch Andere auf eben genau diese Gefahr hingewiesen wurdest! Jetzt hier auf die User von Autoit.de los zugehen, nur weil du nicht glauben wolltest, was Andere die es offensichtlich besser wussten, dir geraten haben?
-
Kleiner Tipp: Lass dir mal per _ArrayDisplay() dein Array zwischen den Lösch-Vorgängen anzeigen...
Da du ja NACHEINANDER die Elemente 1, 2, 3 und 4 löschst werden Einträge 'mitten' im Array gelöscht, da sich alle 'Zeilen' hinter der gelöschten Zeile im Array ja um 1 nach unten verschieben. Daher musst du einfach nur 4mal das erste Element löschen...