Beiträge von Bitnugger

    Jetzt löse ich das so... Code
    Dim $aTest[1][3]
    _ArrayDelete($aTest, 0)

    und dann fülle ich das Array (mit erstmal unbekannter Größe!) danach mit _ArrayAdd().

    Das _ArrayDelete kannst du dir sparen, wenn du anstelle der 1 eine 0 nimmst.

    Dim $aTest[0][3]


    Im globalen Kontext (außerhalb von Funktionen) würde ich aber nicht Dim verwenden, sondern besser Global.

    Global $aTest[0][3]


    Damit globale Variablen im Script besser auffindbar sind, schreibe ich sie allerdings so:

    Global $g_aTest[0][3]

    naja, wenn man die Frage nicht richtig liest.....

    Wenn ich die Frage richtig lese, ergibt sie keinen Sinn... denn 34534 ist keine Variable, die in Anführungszeichen steht... gemeint ist damit wohl eine Zeichenkette (String).


    Je nachdem, was für ein Wert in der Variable steht, braucht man nur "casten"

    In seinem Fall sähe es aber wohl eher so aus...

    Code
    1. $a='"12345"'
    2. msgbox(0,$a*3,int($a)*3)

    ...was dann aber nicht einfach mit "casten" zu erledigen ist.

    wobei ein Stringmid() bei bekanntem String ja noch einfacher wäre^^

    Das gilt doch genauso für _StringBetween... aber ok, falls die Anführungszeichen bekannt sind, wäre StringMid die erste Wahl, andernfalls StringRegExpReplace.


    Hier noch ein StringRegExpReplace bei dem die Anführungszeichen auch fehlen dürfen...

    > $sString1 = "Teststring1"

    > $sString1 = Teststring1"

    + $sString2 = 'Teststring2'

    + $sString2 = Teststring2'

    - $sString3 = Teststring3

    - $sString3 = Teststring3

    StringRegExp wäre dafür eh nicht die geeignete Funktion... weil das Ergebnis dann ein Array wäre, aus dem du den String erst wieder herausholen müsstest. Da du lediglich einen String von den Anführungszeichen befreien willst, wäre StringRegExpReplace die richtige Funktion - das macht Sinn, wenn nicht sicher ist, ob der String in '' oder in "" verpackt ist, andernfalls wäre StringReplace die erste Wahl!


    Hier ein Beispiel, wie es mit StringRegExpReplace geht:

    Code
    1. Local $sString1 = '"Teststring"'
    2. ConsoleWrite('> $sString1 = ' & $sString1 & @CRLF)
    3. $sString1 = StringRegExpReplace($sString1, '^["|''](.+)["|'']$', '\1')
    4. ConsoleWrite('> $sString1 = ' & $sString1 & @CRLF)
    5. Local $sString2 = "'Teststring'"
    6. ConsoleWrite('- $sString2 = ' & $sString2 & @CRLF)
    7. $sString2 = StringRegExpReplace($sString2, '^["|''](.+)["|'']$', '\1')
    8. ConsoleWrite('- $sString2 = ' & $sString2 & @CRLF)

    > $sString1 = "Teststring"

    > $sString1 = Teststring

    - $sString2 = 'Teststring'

    - $sString2 = Teststring

    Du musst _DateDayOfWeekISO durch _DateDayOfWeek ersetzen, weil _DateDayOfWeek mit 1=Sunday rechnet.

    _DateDayOfWeekISO? Du meinst sicher _DateToDayOfWeekISO... hier ist 1=Monday und bei _DateDayOfWeek ist 1=Sunday.

    Warum kompilierst du deine Snippets dann nicht einfach selbst und stellst deinen Freunden die EXE zur Verfügung?


    Um die Ausgaben der EXE in einer Console anzuzeigen, musst du beim Kompilieren einfach als Option "Create CUI instead of GUI EXE" angeben oder alternativ an den Anfang des Scripts folgende Zeile manuell einfügen:

    #AutoIt3Wrapper_Change2CUI=y

    Ich denke das reicht nicht nur aus, sondern bietet sogar mehr Möglichkeiten, als die RDC-UDF.


    Im Anhang mal eine kleine Demo, die du für dein Projekt verwenden kannst... musst nur die Pfade und Dateierweiterungen anpassen...


    Hallo ISI360


    Heute wurde mir bei meiner lokalen Suche mit Everything nach "_SciLexer.au3" auch eine Version angezeigt, die sich in dem Pfad von ISN AutoIt Studio befindet... bei der Gelegenheit bin ich dann mal deine Includes durchgegangen, um zu prüfen, ob ich davon was gebrauchen kann - und ja, da sind einige drin, die ich mal näher unter die Lupe nehmen werde.


    Aufgefallen ist mir dabei aber vor allem die RDC.au3 (Read Directory Changes) - ich verstehe nicht so recht, warum du diese UDF (als Wrapper) benutzt und nicht direkt mit _WinAPI_ShellChangeNotifyRegister arbeitest, zumal das Handling damit auch sehr einfach ist und du zudem dann keine Fremd-Dll's (RDC.dll, RDC_x64.dll) brauchst und etwa 86.381 Bytes weniger an Code mit rumschleppen musst?

    Warum soll TCPlisten nur mit Class C Netzen funktionieren? TCPlisten wird auf Serverseite genutzt und kann an jede beliebige IPv4 Adresse des Servers gebunden werden.

    In dem Example zu TCPListen steht folgende Bemerkung:

    ; Notes: You can only listen on private IPs, such as the one used here;

    ; or on the range of 192 to 223 (generally 192.168.X.X, use @IPAddress1 to test on your local IP [you will need another computer]).

    ; The Listen socket identifier is only used for the TCP Accept function.


    ich will einen Client abfragen ob er da ist.

    Wenn ich dich richtig verstehe, willst du mit einem anderen Script überprüfen, ob ein Client eine Verbindung zu einem Server hat? Das ginge dann z.B. mit netstat.


    Hier mal ein Bsp. für Port 80:

    Das müsste dann direkt hinter jedem zu ändernden Control (hier also den 3 Radiobuttons) gesetzt werden, korrekt ?

    Nein, das kannst du jederzeit aktivieren oder auch wieder deaktivieren... musst dann eben nur das Handle des Controls angeben.


    Ich meine, es gibt auch einen DllCall, der das skriptweit macht

    Ja, gibt es... doch meistens will man das ja nur für einige Controls und nicht für die komplette Anwendung.

    DllCall('uxtheme.dll', 'none', 'SetThemeAppProperties', 'dword', $iFlags) ; _WinAPI_SetThemeAppProperties ( $iFlags )

    Hast Du zufällig einen solchen style aktiviert ?

    Falls ja, kannst du ihn für ein Control z.B. so deaktivieren:

    DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle(-1), "wstr", "Explorer", "wstr", 0) ; _WinAPI_SetWindowTheme($hWnd, $sName = Default, $sList = Default)

    Kann man aber auch mit StringRegExpReplace machen:

    Code
    1. Global $sSource = FileRead("input.txt")
    2. Global $sDest = StringRegExpReplace(StringReplace($sSource, ' ', '.'), '.+:\.(.+)\RURL:(.+)\R?', '\1 \2' & @CRLF)
    3. FileWrite("output.txt", $sDest)
    4. ; oder als Einzeiler
    5. ;~ FileWrite("output.txt", StringRegExpReplace(StringReplace(FileRead("input.txt"), ' ', '.'), '.+:\.(.+)\RURL:(.+)\R?', '\1 \2' & @CRLF))

    Das funktioniert aber nicht in kompilierten Scripten... weil dann keine Zeilennummer mehr ermittelt werden kann.

    Meinst du vllt:

    Nein.


    Hier ein Bsp.:

    Code
    1. For $i = 1 To 100 Step 1
    2. ConsoleWrite('$i = ' & $i & @CRLF)
    3. Next

    Die Keywords For und Next definieren hier einen Abschnitt, der ein- und ausklappbar ist... und Mars will nun aber eigene Keywords definieren können.


    Hier ein Bsp.:

    Code
    1. ;~Fold
    2. Local $sString = 'Huhu'
    3. ConsoleWrite('$sString = ' & $sString & @CRLF)
    4. ;~/Fold

    Hier sollen dann ;~Fold und ;~/Fold als Keywords verwendet werden, die einen Abschnitt definieren, der ein- und ausklappbar sein soll...