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

Beiträge von nuts

  • StringRegExp Problem

    • nuts
    • 23. Oktober 2009 um 12:17
    [autoit]


    ;( * egal was ) T<Nummer (auch mehrere Zahlen) ( * egal was ) <Klammer auf> ( * egal was) <Klammer zu>
    Local $aTest[7] = [ _
    'N182 G74 Z-1 L1', _
    'N183 G74 x200 Y-1 L1', _
    'N184 G7', _
    'N83 (2: T1 2D ANSCHLAGKANTE FRAESEN)', _
    'N186 S1800 T3 M6 (HM - Schlichtfraeser D=20,0)', _
    'N187 G39 C3=1', _
    'N188 G74 Z-1 L1']

    [/autoit][autoit][/autoit][autoit]

    $pattern = '(T\d+)(.*\(.*\))'

    [/autoit][autoit][/autoit][autoit]

    For $i = 0 To UBound($aTest) -1
    $ret = StringRegExp($aTest[$i], $pattern, 3)
    If @error Then ContinueLoop
    ConsoleWrite('Werkzeug: ' & $ret[0] & ' ' & $ret[1] & @CRLF)
    Next

    [/autoit]


    So?

  • StringRegExp Problem

    • nuts
    • 23. Oktober 2009 um 11:24

    Wir müssten genau wissen was eine Werkzeuganweisung spezifiziert.
    "T" und dann beliebig viele Zahlen? danach ein beliebiger String in einer Klammer?

  • StringRegExp Problem

    • nuts
    • 23. Oktober 2009 um 11:06

    Also immer nach "T" suchen und alles davor abschneiden?

    [autoit]


    $string ="N62 S700 T1 M6 (WP - Igelfraeser D050,0)"
    $ret = StringTrimleft($string, StringInStr($string, "T")-1)
    MsgBox(1, "", $ret)

    [/autoit]
  • Warum ist Local Scriptvariable durch eine Func(ohne ByRef) änderbar?

    • nuts
    • 22. Oktober 2009 um 22:40

    Wäre es nicht konsequenter die lokale Deklaration außerhalb von Funktionen nicht zuzulassen?
    Irgendwie kann man machen was man will, bei Dim ists ähnlich.

    Die lokale bzw. globale Deklaration soll ja nicht willkürlich sondern mit Hintergrund erfolgen.

  • Warum ist Local Scriptvariable durch eine Func(ohne ByRef) änderbar?

    • nuts
    • 22. Oktober 2009 um 21:50

    Das ganze ist in Autoit etwas komisch. Anfangs ganz gut, da man kaum Fehler machen kann, aber naja ... wirds so klar?

    [autoit]


    Opt("MustDeclareVars", 1)
    Global $Zahl = 111 ;Lokale Deklaration ist außerhlab der Funktion unsinnig.

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    MsgBox(0, "Vor Funktionsaufruf", "Zahl alt = " & $Zahl) ;liefert 111
    TestFunktion()
    MsgBox(48, "Nach Funktionsaufruf", "Zahl verändert = " & $Zahl) ;wie man sieht bleibt die Lokale nur innerhalb der Funktion aktiv (wir anschließend aus dem Speicher gelöscht)

    [/autoit][autoit][/autoit][autoit]

    MsgBox(48, "Nach Funktionsaufruf", "Zahl verändert = " & TestFunktion2()) ;Return gibt die Zahl trotzdem zurück
    MsgBox(48, "Nach Funktionsaufruf", "Zahl verändert = " & $zahl) ; alles klar?
    Exit

    [/autoit][autoit][/autoit][autoit]

    Func TestFunktion()
    local $Zahl = 999
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func TestFunktion2()
    Local $zahl = 999
    return $zahl
    EndFunc

    [/autoit]
  • Ini-Datei in einer Variablen speichern.

    • nuts
    • 22. Oktober 2009 um 18:52

    Inireadsection wird auch gebraucht.
    Also müsste man noch die Basisarrays hinterlegen.

    Da ists mir lieber wenn ich den Ursprungsstatus mit Basisini wieder herstellen kann.

  • Ini-Datei in einer Variablen speichern.

    • nuts
    • 22. Oktober 2009 um 17:55

    Ok dann bleibts bei Fileinstall :)

  • Ini-Datei in einer Variablen speichern.

    • nuts
    • 22. Oktober 2009 um 17:04

    Das soll ein Schutz vor dem "blöden Anwender" sein, da mein Prog. ohne Basisdaten nicht arbeiten kann.
    Ok Fileinstall könnte man auch nehmen.
    Interessieren würde es mich trotzdem.

    [autoit]

    $write &= "[Standby]" @CRLF
    $write &= "Hallo" @CRLF
    ;usw.

    [/autoit]


    So ists halt bei vielen Zeilen jede Menge Schreibarbeit.
    Ich dachte man kann das Zusammenfassen mit Klammern & @crlf oder so? :wacko:

  • Ini-Datei in einer Variablen speichern.

    • nuts
    • 22. Oktober 2009 um 16:57
    [autoit]

    Func _CreateIni()
    local $open, $write
    If not FileExists($ini) then
    _FileCreate($ini)
    $write =
    ('[Standby]' &
    Modus=
    Run=
    Sendcommand=
    RunAfter=
    Sleepbefore=
    Sleepafter='
    )
    $open = FileOpen($ini, 2)
    FileWrite(

    endfunc

    [/autoit]


    Sowas.
    Also die Basisini ist quasi immer in der Funktion gespeichert. Soweit ich das Memory-Managment von Autoit verstanden habe dürfte das auch kein Problem sein.
    Nur wie ordne ich die Zeilen der .ini einer Variablen zu?

  • Ini-Datei in einer Variablen speichern.

    • nuts
    • 22. Oktober 2009 um 16:46

    Nee ich möchte meine Basisini im Programm speichern und beim Aufruf ggf. neu anlegen.
    Jetzt hab ich hier 50 Zeilen .ini und bringe die nicht in einer Variablen unter (ohne viel Schreibarbeit)

  • Ini-Datei in einer Variablen speichern.

    • nuts
    • 22. Oktober 2009 um 16:31

    Hey,

    ein ganz blödes Problem.
    Ich möchte eine .ini in einer Variablen speichern und kriegs nicht hin :(

    [autoit]


    $ini = ; tja gute Frage

    [/autoit][autoit][/autoit][autoit]

    ;so sieht die .ini aus
    [Standby]
    Modus=
    Run=
    Sendcommand=
    RunAfter=
    Sleepbefore=
    Sleepafter=

    [/autoit]

    Dabei muss man doch nciht etwas jede Zeile der Variable extra zuordnen oder?

    Gruß nuts

  • Zähle Vorkommen in Array

    • nuts
    • 21. Oktober 2009 um 21:06

    Naja Raupi :D
    Simons Funktionen kann man auch per include einbinden :P

  • Or Probleme...

    • nuts
    • 21. Oktober 2009 um 15:06

    Hey,

    bitte nutze deine gesammelte Erfahrung doch zumindest für geeignete Fehlerbeschreibungen.
    Nicht vergessen: Wir sitzen nicht vor deinem Rechner, kennen nicht die genaue Aufgabenstellung & Fehlermeldung und können somit nur raten was nicht funktioniert.

    Nach jeder Funktion gibt es die Möglichkeit den Rückgabewert abzufangen (Consolwrite, msgbox, logwrite usw.). Dadurch erklären sich bei einfachen Sachen die Fehler meist von selbst.
    Für Programmfehler ist der ausgegeben Fehlercode wichtig für die Analyse.

  • 2 Funktionen gleichzeitig - Programm hängt sich auf

    • nuts
    • 21. Oktober 2009 um 13:42

    Das Problem ist, dass die Funktion nicht in 100 ms fertig ist.

    Um wirklich gleichzeitig Funktionen nebeneinander abzuarbeiten muss man die Skriptsprache Autoit verlassen und sich einer Hochsprache zuwenden.

  • Sendkey an Fenster über dessen handle

    • nuts
    • 20. Oktober 2009 um 15:23

    Mit _WinAPI_FindWindow das Handle bestimmen und mit _SendMessage wird die Nachricht abgeschickt.

    Im zweiten Skript (Empänger) muss die Nachricht dann entsprechend abgehandelt werden.

    Weiss nicht so ganz was du meinst, willst du das zwei Skripte miteinander kommunizieren?

  • icon aus dll in toolbar einbinden

    • nuts
    • 20. Oktober 2009 um 15:07

    Ein eigenes Icon in der Toolbar geht so:

    Spoiler anzeigen
    [autoit]


    #include <GuiToolbar.au3>
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Constants.au3>
    #include <WinAPI.au3>
    #include <GuiImageList.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    $Debug_TB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work

    [/autoit] [autoit][/autoit] [autoit]

    Global $hlibary = @ScriptDir &"\fertig.dll" ;der Pfad zu deiner .dll
    Global $hToolbar, $iMemo
    Global $iItem ; Command identifier of the button associated with the notification.
    Global Enum $idNew = 1000, $idOpen, $idSave, $idHelp

    [/autoit] [autoit][/autoit] [autoit]

    _Main()

    [/autoit] [autoit][/autoit] [autoit]

    Func _Main()
    Local $hGUI, $aSize, $hImage, $count
    local $test = 2000
    ; Create GUI
    $hGUI = GUICreate("Toolbar", 600, 400)
    $hToolbar = _GUICtrlToolbar_Create ($hGUI)
    $hImage = _GUIImageList_Create()
    $count = _WinAPI_ExtractIconEx($hlibary, -1, 0, 0, 0)

    for $i = 0 to $count -1
    _GUIImageList_AddIcon($hImage, $hlibary, $i)
    next
    _GUICtrlToolbar_SetImageList($hToolbar, $hImage)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    ; Add standard system bitmaps
    ;_GUICtrlToolbar_AddBitmap ($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)

    [/autoit] [autoit][/autoit] [autoit]

    ; Add buttons
    ;_GUICtrlToolbar_AddButton ($hToolbar, $idNew, $STD_FILENEW)
    ;_GUICtrlToolbar_AddButton ($hToolbar, $idOpen, $STD_FILEOPEN)
    ;_GUICtrlToolbar_AddButton ($hToolbar, $idSave, $STD_FILESAVE)
    ;_GUICtrlToolbar_AddButtonSep ($hToolbar)
    ;_GUICtrlToolbar_AddButton ($hToolbar, $idHelp, $STD_HELP)
    ;_GUICtrlToolbar_AddButtonSep ($hToolbar)
    _GUICtrlToolbar_AddButton ($hToolbar, $test, 0)

    [/autoit] [autoit][/autoit] [autoit]

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc ;==>_Main

    [/autoit]


    Dabei wird ja die Imagelist umgebogen, d.h die Standardicons müssen da auch noch rein.

  • Sendkey an Fenster über dessen handle

    • nuts
    • 20. Oktober 2009 um 13:50

    _WinAPI_FindWindow & _SendMessage ?

  • MSGBOX OK-Abbrechen

    • nuts
    • 20. Oktober 2009 um 12:10

    Du willst einfach auf die Msgbox reagieren?
    s. Hilfe: Ok gibt 1 zurück, Cancel die 2 :)

  • 3. Txt dateien zusammen in 1. ini schreiben

    • nuts
    • 20. Oktober 2009 um 11:17

    Das ist so etwas riskant, da z.B. Adressen fehlen können und man somit unterschiedliche Arraygrößen hat.
    Abhilfe: 3 Schleifen oder ein 2D-Array daraus machen oder was ganz anders (eigene : _Filesreadtoarray usw.)

  • icon aus dll in toolbar einbinden

    • nuts
    • 20. Oktober 2009 um 00:35

    Hey,


    du erstellst dir eine Imagelist aus der .dll

    [autoit]

    $hImage = _GUIImageList_Create()
    $count = _WinAPI_ExtractIconEx("Pfad zur .dll", -1, 0, 0, 0)
    for $i = 0 to $count -1
    _GUIImageList_AddIcon($hImage, "Pfad zur .dll", $i)
    next

    [/autoit]

    Dazu kommt: _GUICtrlToolbar_SetImageList und die jeweilige zuordnung zum Toolbarbutton.
    Sollte es nicht hinhauen kann ich auch ein Beispiel machen.

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™