Diese Variante scheint leider bei dem verwendeten Kalender nicht zu funktionieren oder ich hab es vergeigt :-/
Ja, da war ich etwas zu schnell - geht nur bei GuiMonthCal
Diese Variante scheint leider bei dem verwendeten Kalender nicht zu funktionieren oder ich hab es vergeigt :-/
Ja, da war ich etwas zu schnell - geht nur bei GuiMonthCal
Wenn man selbst TCP-Verkehr programmiert, sollte man sich vielleicht selbst um ein ordentliches Protokoll kümmern, unabhängig vom TC-Protokoll selbst.
Ich mach sowas eher selten, aber wenn dann so (sinngemäßer Ablauf):
- Verbindungsaufbau
- Sender an Empf.: [Anzahl-Bytes] zu senden
- Empf. an Sender: warte auf [Anzahl-Bytes]
- Sender:
--- wenn Wert-gesendet=Wert-zu-empfangen -- starte Übertragung Daten
--- wenn Werte nicht gleich -- beginne von vorn
- Sender an Empf.: nach Ende Datenübertragung, "fertig"
- Empf. an Sender:
--- wenn "fertig" empfangen:
--- --- Anzahl empfangen = Anzahl angekündigt --> OK
--- --- Differenz vorhanden --> FAIL
hat ein Button-Click nicht Vorrang vor einer Schleife?
Nein, wie kommst du da drauf?
Wenn du deine Schleife gestartet hast, wird doch die äußere Schleife, die GuiGetMessage abfragt niemals wieder durchlaufen. Somit kann kein Button-Klick wahrgenommen werden.
Du kannst alternativ im OnEvent-Mode arbeiten. Schau dir mal AutoItSetOption an. Baue dein Skript um zum OnEvent-Mode und schaue was passiert.
Und das mit FileFindFirstFile habe ich getestet: Du hast recht es dauert manchmal bis zu 4 mal so lange wie mit FileMove("*.*")
Und dann sollte man noch beachten: Soll auf eine andere physikalische Partition oder ins Netz verschoben werden, ist FileMove nicht zu empfehlen. Dann geht deutlich schneller: FileCopy & FileDelete.
für "ALT+M" musst du dein erstelltes Script erst speichern, vorher wird das nix.
Ist ja wohl auch sinnfrei, zu skripten ohne dass der Dateiname - respektive die Endung festgelegt ist. Soll der Syntaxhighlighter Gedanken lesen? ![]()
den kostenlosen Regex Coach
Im Gegensatz zum RegexBuddy erkennt der Coach nicht alles, was in AutoIt-RegEx gematcht wird.
Bsp.:
Erkennung ob in einem String ein 4-buchstabiges Palindrom enthalten ist. Wird erkannt vom RegexBuddy und AutoIt, nicht vom Coach.
$s1 = 'anna'
$s2 = 'marianna'
ConsoleWrite(StringRegExp($s1, '(.)(.)\2\1') & @CRLF)
ConsoleWrite(StringRegExp($s2, '(.)(.)\2\1') & @CRLF)
Edit: Ich sehe gerade, der Grund ist ein anderer. Der Coach bearbeitet nicht automatisch mehrzeilige Eingaben. Den Modus muss man erst setzen, da bin ich vom Buddy etwas verwöhnt. ![]()
Hab nicht gewusst, dass _ArrayDisplay() auch auf ein Event wartet.
Das hast du falsch verstanden. _ArrayDisplay pausiert den Code. Somit entsteht in der registrierten Funktion ein nicht definierter Zustand.
Daher der Hinweis, innerhalb dieser Msg-auswertenden Funktion niemals User-Interaktionen durchführen. Neben Input- und Messagebox zählt auch _ArrayDisplay zu den User-Interaktionen.
Bei mir bewirkt die Tastenkombination nichts - habe eine deutsche SciTE-Editor-Oberfläche. Was soll sie genau bewirken?
Dann hast du nur die "Lite-Version" von SciTE. Installiere dir "SciTE4AutoIt" - Link findest du im Portal in der Softwarebox.
Unabhängig von der Sinnhaftigkeit Koda zu nutzen: Wozu ein Menüeintrag? Einfacher als "Alt+M" geht doch nun wirklich nicht. Ansonsten schaue mal in meine Threads zum Thema SciTE - da habe ich mehrfach beschrieben, wie man Menüpunkte erstellt.
Ich benutze dazu SciTE, da ist die Konsole eh offen:
In die SciTE-Konsole eingeben:
AutoIt3.exe /ErrorStdOut /AutoIt3ExecuteLine "ConsoleWrite(@AppDataDir & @LF)" und ENTER.
Das kannst du dir alles auf einen HotKey packen um es einzufügen und um den gewünschten Parameter dann zu ergänzen.
Ich habe die Hilfe bestimmt 10-mal gelesen -- den Part habe ich nicht entdeckt. ![]()
Wobei das aber am "Warum" nichts ändert. Ob man nun ausser nach "\1 und $1" auch nach den anderen Varianten scant sollte m.E. den Kohl nicht fett machen.
Hi,
da ich bisher für Backreferenzen der Einfachheit halber '\1' oder '$1' verwendet habe, ist mir das Problem nie aufgefallen.
Backreferenzen lassen sich ja auch absolut und relativ (\g1 \g-1) oder mit Namen (\k<name>) referenzieren.
Aber - das ist nur möglich mit StringRegExp. Bei der Replace-Funktion werden diese Schreibweisen der Backreferenz ignoriert. In der Hilfe habe ich aber keinen Hinweis darauf gefunden.
Hat jemand eine Erklärung dafür?
; <named groups>
; funktioniert mit StringRegExp
; ist Datum in TT, MM, JJ gleich? (z.B. "2011/11/11"):
$patt = "\d{2}(?<double>\d{2})/\k<double>/\k<double>"
ConsoleWrite(StringRegExp('2011/11/11', $patt) & @CRLF)
; schlägt fehl bei StringRegExpReplace
; engl. Datum in deutsche Form bringen:
$patt = "(?<year>\d{4})/(?<month>\d{2})/(?<day>\d{2})"
ConsoleWrite(StringRegExpReplace('2015/06/08', $patt, '\k<day>.\k<month>.\k<year>') & @CRLF)
Alles anzeigen
Dieser Thread ist völlig zu Unrecht in der Versenkung verschwunden. Ich werde ihn mal wieder nach oben befördern.
Also wenn ihr mal wieder ein allgemeingültiges Pattern mühsam zusammengepfriemelt habt, her damit, damit die Sammlung wächst.
was ist bitte die schnellste Art es mit '0' zu füllen?
Für numerisch '0' kannst du es imho nur in der Schleife sinnvoll lösen.
Falls du mit einem Stringausdruck vorbelegen möchtest, kannst du auch mit StringSplit arbeiten. Aber denk dran: wie der Name sagt ist es eine Stringoperation, d.h. selbst wenn du einen String mit Nullen splittest, enthält das Array keine numerischen Werte, sondern nur den String '0'.
; Array mit 60 Elementen erstellen, vorbefüllen mit '0'
$s0 = '000000000000000000000000000000000000000000000000000000000000' ; 60*'0'
Global $aNull = StringSplit($s0, '', 2)
ConsoleWrite('Ist Inhalt numerisch? - ' & (IsNumber($aNull[0]) = 1) & @CRLF)
Zuweisungsoperationen für ein Array in einer Schleife sind aber auch nichts zeitkritisches. Das arbeitet AutoIt in ms ab. Insofern braucht man sich da nicht noch verrenken um eine Alternative zu finden. ![]()
Alternativ kannst du ja dafür sorgen, dass Variablen niemals undefinierte Inhalte haben. Erstelle sie einfach mit Inhalt Null, dann kannst du mit einer eigenen Funktion auf _IsNull prüfen.
Ich habe mir mal die Telegram-API angeschaut. Adhoc wüßte ich nicht, wie diese auf AutoIt übertragen werden kann. Falls sich da jemand mit beschäftigen möchte, wäre noch der Quelltext für die Telegram-Desktop Anwendung interessant.
Deine Frage wirft bei uns mehr Fragen auf als dass sie zu Antworten anregt.
Erkläre konkret was du vorhast - und zwar mit Skriptbeispiel. Dann können wir dir auch entsprechende Ratschläge geben.
Im Moment verstehe ich nur Bahnhof.
@Andy, vermutlich müssen wir für 3.3.12 die nativen Stringfunktionen per FASM einbinden um den Speed von 3.3.8 wieder zu erreichen.
Oder wir nutzen Stringoperationen über LuaEmbedded
. Lua-Skripte im Textbereich sind etwa >10 mal schneller als in AutoIt. Rechnen wird den Portierungszeitaufwand raus, könnte etwa die Hälfte stehen bleiben -- immer noch schneller als mit der aktuellen Version. ![]()
Ergänzend zu Oscars Tipps:
Das sind Dinge, die alle Facetten der Dateiarbeit abdecken und dir somit ein gutes Lernpolster geben. Das kann man dann später auch noch ausweiten mit Notizversand im Netzwerk - aber da sollten vorher erst mal die Grundlagen stehen.