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. BugFix

Beiträge von BugFix

  • Arrays einzeln ausgeben

    • BugFix
    • 14. Dezember 2018 um 10:55

    Verwende statt $name0...n ebenfalls ein Array ($aNames), das dieselbe Anzahl Elemente hat, wie das IP-Array. Und dann in einer Schleife abarbeiten.

  • Zu : Funktion _Number() von BugFix

    • BugFix
    • 14. Dezember 2018 um 10:14

    Ich habe mal die Anregungen aus der Diskussion aufgenommen und die Funktion angepasst. Im Startpost findet ihr die v0.2.

  • Bytemuster zum testen der Laufwerksgeschwindigkeit

    • BugFix
    • 5. Dezember 2018 um 11:08
    Zitat

    Und hoffentlich nicht bei wish gekauft.. ?

    Nee, bei "Ich bin doch nicht blöd" und "Pluto" :rofl:

  • Bytemuster zum testen der Laufwerksgeschwindigkeit

    • BugFix
    • 5. Dezember 2018 um 10:39

    Mal am Rande:

    Ich habe die Erfahrung gemacht, dass USB 3.0 eher selten funktioniert.

    Trotz installierter 3.0 Treiber und sichtbarem 3.0 Hub im Gerätemanager werden die Laufwerke / Sticks nicht als 3.0 erkannt und laufen auf dem 3.0 Port langsamer als am 2.0 Port. Den Effekt habe ich auf verschiedenen PC mit Windows 7 / 10.

    Die verwendeten Laufwerke / Sticks sind allesamt hochwertige Produkte (SanDisk, WD, Samsung).

  • Webseite aufzubauen

    • BugFix
    • 1. Dezember 2018 um 22:02

    Man kann mit Baukästen arbeiten. Aber wo bleibt da der Spaß? 8o

    Außerdem ist eine damit erstellte Seite voll mit unnützen Dingen. Schreibe es selbst, ist so schwer nicht.

  • INI Datei Benutzerabhängig verändern

    • BugFix
    • 30. November 2018 um 17:36
    Zitat von Manuel.P

    Wenn ich nun jeden Nutzer rein schreibe, dann würde das Programm vermutlich den erste nehmen

    Zitat von Manuel.P

    Ja das Programm wird an 2 PC genutzt aber mehrer Nutzer melden sich an dem gleichen PC an.

    Das ist jetzt unklar. - Also ganz konkret: Arbeiten zeitgleich mehrere Benutzer mit dem Programm? - Wenn nicht, funktioniert es doch mit dem oben beschriebenen Weg: Bei Anmeldung eines Users in die INI den aktuellen Usernamen reinschreiben, den dann das Programm beim Start nutzt um die zu überwachende Nummer aus der INI für diesen User zu wählen..

  • INI Datei Benutzerabhängig verändern

    • BugFix
    • 30. November 2018 um 09:50
    Zitat von Manuel.P

    Problem ist, dass jeder auch eine eigene Telefonnummer hat und wir einen Computer nutzen.

    Also ihr nutzt das Programm nur an einem einzigen PC. An diesem ist dann User-A ODER User-B ODER User-XYZ angemeldet?

    Dann gehe doch so vor:

    - Username des angemeldeten Users ist: @UserName

    - In die INI für deine Telefonsoftware kommt eine Sektion für jeden User (wie schon in Posts vorab empfohlen)

    Ich weiß nicht ob die Telefonsoftware automatisch startet oder manuell aufgerufen wird. Daraus ergeben sich dann folgende Varianten.

    - manuell: Covere den Programmaufruf in einem Skript, dass zuerst denn aktuellen User in die INI schreibt und danach das Programm öffnet (das weiß nun: "aktueller User = A" - schaue unter "User-A" nach der zu überwachenden Rufnummer)

    - automatisch: Ein ebensolches Skript wie bei manuell, muss im Autostart vor dem Telefonprogramm aufgerufen werden.

  • Reguläre Ausdrücke Sammlung

    • BugFix
    • 29. November 2018 um 11:03

    Wenn man längere Pattern schreibt, sind Kommentare sehr sinnvoll (gerade, um auch einem anderen die Möglichkeit zu geben, das Pattern nachzuvollziehen).

    Hier mal ein Pattern zum Splitten eines Windows/UNC-Datei-Pfades in: Lw | Ordner[optional] | Datei-mit-Erweiterung | Dateiname | Erweiterung.

    Die jeweilige Capturegroup beginnt immer mit einem Kommentar, der auf den Inhalt der Group verweist:

    '^(?i)((?#drive)[a-z]:|\\\\[a-z0-9]+)\\((?#folder)[^/:*?"<>|\r\n]*\\)?((?#file)((?#filename)[^\\/:*?"<>|\r\n]+)\.((?#extension)\w+))$'

    Wir erhalten ein Ergebnisarray mit 5 Elementen (bei z.B. "Lw:\Datei.ext" bleibt Ordner leer):

    C
    $sFile = "C:\CODE\AutoIt\Das.ist.eine.Test.au3"
    $sPatt = '^(?i)((?#drive)[a-z]:|\\\\[a-z0-9]+)\\((?#folder)[^/:*?"<>|\r\n]*\\)?((?#file)((?#filename)[^\\/:*?"<>|\r\n]+)\.((?#extension)\w+))$'
    $aSplit = StringRegExp($sFile, $sPatt, 3)
    ConsoleWrite( _
    'Laufwerk:      ' & $aSplit[0] & @LF & _
    'Ordner:        ' & $aSplit[1] & @LF & _
    'Datei m. Erw.: ' & $aSplit[2] & @LF & _
    'Dateiname:     ' & $aSplit[3] & @LF & _
    'Erweiterung:   ' & $aSplit[4] & @LF)
    
    #cs Ergebnis:
    Laufwerk:      C:
    Ordner:        CODE\AutoIt\
    Datei m. Erw.: Das.ist.eine.Test.au3
    Dateiname:     Das.ist.eine.Test
    Erweiterung:   au3
    #ce
    Alles anzeigen
  • Forenupdate - November 2018 - Probleme / Anregungen / Feedback - Sammelthread

    • BugFix
    • 28. November 2018 um 11:13

    - von Oscar schon aufgeführt, noch offen: Syntax-Highlight AutoIt fehlt

    - Stringlänge für SB-Posts sind deutlich kürzer als bisher

    Ansonsten sieht es schon wieder ganz "normal" aus. :thumbup:

  • Regex Testfunktion

    • BugFix
    • 28. November 2018 um 11:05

    Ich verwende häufiger Reguläre Ausdrücke. Um nicht jedes mal zum Testen auf ein externes Tool zugreifen zu müssen, habe ich diese Funktion erstellt, die die Ergebnisse (meist Arrays) gleich fertig zur Konsolenausgabe aufbereitet und mir im Fehlerfall den Fehlerwert auch gleich als Text ausgibt. Für den einfachen Check erscheint dann "MATCH!" oder "NO MATCHES" statt "1" oder "0". Ich bin da eher der "Text-Mensch" ;)

    Von den Parametern und erweiterten Rückgabewerten (@error, @extended) verhält sich die Funktion identisch zu StringRegExp.

    Vielleicht ja auch für euch nützlich.

    Code
    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _RegexTest
    ; Description ...: A covered StringRegExp function. In case of match check (flag 0) it returns '>> MATCH!' or '!> NO MATCHES'.
    ;                  Otherwise it returns the matches from the result array as string. One value in each line.
    ; Syntax ........: _RegexTest($_sTest, $_sPattern[, $_iFlag = 0])
    ; Parameters ....: $_sTest              - The string to check.
    ;                  $_sPattern           - The regular expression.
    ;                  $_iFlag              - [optional] The flag to use with StringRegExp. Default is 0.
    ;                  $_iOffset            - [optional] The string position to start the match. Default is 1.
    ; Return values .: Succes               With flag 0: 'MATCH' or 'NO MATCHES', otherwise a string with all matches, one value in each line.
    ;                  Failure              The occured error as text. Also the macros @error & @extended like filled from StringRegExp
    ; Author ........: BugFix
    ; ===============================================================================================================================
    Func _RegexTest(ByRef $_sTest, $_sPattern, $_iFlag=0, $_iOffset=1)
        Local $aResult = StringRegExp($_sTest, $_sPattern, $_iFlag, $_iOffset)
        Local $iErr = @error, $iExt = @extended, $sErr = '!> REGEX-ERROR [Flag=' & $_iFlag & ']: '
        If $iErr Then
            Switch $_iFlag
                Case 0
                    $sErr &= 'Bad Pattern'
                Case Else
                    If $iErr = 1 Then
                        $sErr &= 'Array is invalid. No matches.'
                    Else
                        $sErr &= 'Bad pattern, array is invalid. Offset of error in pattern: ' & $iExt
                    EndIf
            EndSwitch
            Return SetError($iErr, $iExt, $sErr)
        EndIf
        Local $sReturn = ''
        Switch $_iFlag
            Case 0
                $sReturn = $aResult  ; 0 if no match
            Case 1, 2, 3
                For $i = 0 To UBound($aResult) -1
                    $sReturn &= $aResult[$i] & @LF
                Next
            Case 4
                For $i = 0 To UBound($aResult) -1
                    For $j = 0 To UBound($aResult[$i]) -1
                        $sReturn &= ($aResult[$i])[$j] & @LF
                    Next
                Next
        EndSwitch
        If $sReturn == 0 Then $sReturn = ''
        Return SetError(0, $iExt, ($sReturn = '' ? '!> NO MATCHES' : ($sReturn = 1 ? '>> MATCH!' : $sReturn)))
    EndFunc  ;==>_RegexTest
    Alles anzeigen
  • Farbspielereien bei der Konsolenausgabe

    • BugFix
    • 28. November 2018 um 10:48
    Zitat von Musashi

    Dazu findet man zwar Beiträge, aber da geht es dann um alternative LEXER usw.

    Falls jemand dbzgl. einen einfachen Weg kennt, kann sie/er ihn hier gerne posten.

    Ich hatte mal angefangen einen au3-LEXXER in Lua zu schreiben. Bin dann aber gescheitert, weil die verwendete Scintilla-Version von SciTE4AutoIt dermaßen alt ist, dass wesentliche Funktionen im integrierten Lua (z.B. zum Ein-/Ausrücken; Erfassen der Einrücktiefe etc.) gar nicht enthalten sind. Und eine Hochsprache zu lernen, um einen Lexxer zu schreiben ist mir dann doch too-much.

  • Farbspielereien bei der Konsolenausgabe

    • BugFix
    • 28. November 2018 um 09:53
    Zitat von Musashi

    danach MÜSSEN 2 @TABs folgen

    Nicht ganz. In der Zeile müssen vor der Ziffer zwei TAB enthalten sind, nicht zwingend direkt aufeinander folgend. Es geht z.B. auch: "Bla" & @TAB & "Blub" & @TAB & @ScriptLineNumber

    Damit man mit den TAB für die pinke Ausgabe nicht so rumeiern muss, hier der Einfachheit halber ein Funktion um pink in die Konsole zu schreiben:

    Code
    _ConsolePink('In diesem Text werden alle Leerzeichen durch Unterstrich ersetzt.', '_')
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _ConsolePink
    ; Description ...: Ausgabe in die SciTE-Konsole in pinker Farbe
    ; Syntax ........: _ConsolePink($_sText[, $_sSpaceRepl = @TAB[, $_vJumpNum = @ScriptLineNumber]])
    ; Parameters ....: $_sText              - Der auszugebende Text. Enthaltene Leerzeichen werden mit $_sSpaceRepl ersetzt.
    ;                                         Kein abschließender Zeilenumbruch erforderlich.
    ;                  $_sSpaceRepl         - [optional] Ersetzungszeichen für Leerzeichen. Standard ist @TAB (identisch: -1 oder Default).
    ;                  $_vJumpNum           - [optional] Eine erforderliche Ziffer/Zahl, optional im Wert. Standard ist @ScriptLineNumber.
    ;                                         Mit Doppelklick auf die Zeile in der Konsole wird die Skriptzeile mit dieser Nummer angesprungen.
    ; Return values .: None
    ; Author ........: BugFix
    ; ===============================================================================================================================
    Func _ConsolePink($_sText, $_sSpaceRepl=@TAB, $_vJumpNum=@ScriptLineNumber)
        If $_sSpaceRepl = -1 Or $_sSpaceRepl = Default Then $_sSpaceRepl = @TAB
        $_sText = StringRegExpReplace($_sText, '(\s+)', $_sSpaceRepl) & @TAB
        If $_sSpaceRepl = @TAB Then
            If @extended = 0 Then ; erst ein TAB in der Zeile
                $_sText &= @TAB
            EndIf
        Else
            $_sText &= @TAB
        EndIf
        ConsoleWrite($_sText & $_vJumpNum & @CRLF)
    EndFunc
    Alles anzeigen

    EDIT:

    Der Vollständigkeit halber: style.errorlist.12 gilt bei erstem Zeichen - und auch bei < .

  • [Anfrage] Möchte Stoppuhr mit USB Button und Eingabeformular programmieren

    • BugFix
    • 27. November 2018 um 14:51
    Zitat von Muecke

    kann ich mehre GUI erstellen und mir die dann immer dann anzeigen lassen wenn ich die Benötige

    Das ist die sinnvollste Variante. Alle vorbereiten und mit @SW_SHOW / @SW_HIDE zeigen oder verstecken

  • Parameter in Date.au3 nicht wie in der Norm

    • BugFix
    • 27. November 2018 um 10:18
    Zitat von alpines

    If StringInStr("d,m,y,w,h,n,s", $sType) = 0 Or $sType = "" Then

    Zumal die case-sensitive Prüfung auf fehlerhafte Eingabe sogar noch kürzer ist:

    If Not StringRegExp($sType, "[DMYWhms]") Then

    Müssen wir halt mit leben... X/

  • Parameter in Date.au3 nicht wie in der Norm

    • BugFix
    • 27. November 2018 um 09:58

    Schaut mal bitte in diesen Thread (Post #6 ff.). Hier geht es um die Diskussion der richtigen Darstellung von Minuten (mm oder nn).

    Es sollte bitte niemand aus der Implementierung der Minutenangabe in der Date.au3 als n ableiten, dass dieses die gültige Minutendarstellung ist. Hier hat Jos einfach nur den bequemsten Weg gewählt, und um eine Unterscheidung von Groß- und Kleinschreibung zu sparen, den Parameter n für Minutenrechnung festgelegt. DAS ist aber ausschliesslich eine RECHENANWEISUNG und keine normgerechte Minutendarstellung.

    Für Zeitdarstellungen gilt die ISO 8601: hh:mm:ss,f Das f bedeutet: Dezimale Bruchteile (fraction).

    Hätte man sicher in der UDF auch so implementieren können. Doch dem Ersteller stand es ja frei, wie er seine Parameteranweisungen definiert. Für uns ist es nur von Belang zu beachten, dass dieses eben nur für diese UDF gilt.

  • Schriftgröße in Pixel umrechnen [GUISetFont]

    • BugFix
    • 27. November 2018 um 09:41

    @Musashi

    Das ist nur für Datumsoperationen mit AutoIt von Belang, da die Date-UDF hier leider sehr schlampig ist und Großbuchstaben nicht von Kleinbuchstaben unterscheidet. Statt dessen ein n für Minuten zu erfinden, was durch keine Norm gedeckt ist, ist etwas speziell. Für eine Beschreibung darf n keinesfalls als Minutenwert stehen.

    Außerdem geht es hier eindeutig nicht um Datumsoperationen, sondern um Zeitmessung. Somit können wir die Fehler der Date-UDF außen vorlassen und normgerecht Stunden, Minuten, Sekunden und Millisekunden bezeichnen.

  • Schriftgröße in Pixel umrechnen [GUISetFont]

    • BugFix
    • 27. November 2018 um 09:22
    Zitat von Bitnugger

    richtig wäre doch wohl hh : nn : ss.mm

    Laut Norm (ISO 8601) gilt: hh:mm:ss,f f steht für dezimale Bruchteile (fraction)

    Zitat von Muecke

    hh : mm : ss:hss

    Das passt demzufolge auch nicht, da du hss, wie du schreibst, einfach mal so erfunden hast. ;)

  • Den Namen der aktiven (oder aufrufenden) Function ermitteln

    • BugFix
    • 27. November 2018 um 09:11

    Was Stabilität angeht ist Win XP SP3 {vollständig optimiert} tatsächlich unschlagbar. Win 7 kommt dem recht nahe, Folgeversionen glänzen vor allem durch Surprise-Surprise. :P

    Auch im medizinischen Bereich gibt es noch viele XP Systeme, i.d.R. "darf" die Technik bleiben, solange nur eine Intranetanbindung besteht oder sie als Standalone arbeitet.

  • Zeit berechnen

    • BugFix
    • 26. November 2018 um 11:53
    Zitat von AutoIt Hilfe

    Input Start date in the format "YYYY/MM/DD[ HH:MM:SS]"

    Ein Datum MUSS enthalten sein.

    Grr - Oscar war schneller. ;)

  • Den Namen der aktiven (oder aufrufenden) Function ermitteln

    • BugFix
    • 26. November 2018 um 08:45

    Ich muss mal in meinem Archiv nachsehen, dort ist bestimmt noch eine unter XP laufende VollVersion von SciTE. Verwende das auch auf einem alten Firmen-PC mit XP. Das ist die letzte Version, in der Dateien noch nicht als UTF8+BOM gespeichert werden müssen.

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™