1. Artikel
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Paules-PC-Forum.de
  2. Forum
  3. Programmierung
  4. XProfan
  5. Anregungen und Bugreports

MoveListProc

  • H.Brill
  • 29. Mai 2021 um 08:09
  • H.Brill
    Stammuser
    Reaktionen
    508
    Beiträge
    1.192
    • 29. Mai 2021 um 08:09
    • #1

    Hallo Roland,

    Wäre es möglich, die MoveListProc auch nur für eine bestimmte Move(...ToList , ...) Funktion

    zu triggern ? Vielleicht mit einem zusätzlichen Parameter bei

    Set("MoveListMode", N)

    Der Parameter könnte eine Zahl von 1 - 5 sein, der die jeweilige Funtkion der 5 ToList Funktionen

    erfasst. (1 = ArrToList, 2 = FileToList, 3 = HandleToList usw.).

    Hintergrund ist der, wenn ich zwei oder mehrere Move Funktionen mit ToList brauche. In meinem

    Falle soll FileToList getriggert werden und später HandleToList aber nicht. Wenn man dann später

    in einem großen Quellcode den MoveListMode aus dem Blick verliert, kommt es bei den anderen

    ToList Funktionen zu ungewollten Ergebnissen.

    Da fände ich es besser, wenn man den Mode am Programmanfang einmal einstellen könnte.

    Wir sind die XProfaner.

    Sie werden von uns assimiliert.

    Widerstand ist zwecklos!

    Wir werden alle ihre Funktionen und Algorithmen

    den unseren hinzufügen.

  • Michael Wodrich
    Profi
    Reaktionen
    263
    Beiträge
    562
    • 3. Juni 2021 um 16:38
    • #2

    Mit Set("MoveListMode",irgendwas) steuerst Du, welcher Unterzweig in der MoveListProc aufgerufen wird.

    Die Zahl die Du dort einsetzt kann z.B. mittels DEF mit Namen versehen werden.

    DEF %NormalerLauf 0

    DEF %VollerWochentag 1

    DEF %GekuerzterWochentag 2

    DEF %NUR_strtolist_Sonderzeichen_aus_Namen_entfernen 3

    Und die Unterzweige sind doch fast endlos. Füge also einfach einen If-Zweig hinzu, der sich nur mit

    einer bestimmten move()-Funktion ausführen lässt und vergebe einen entsprechenden Namen.

    So kann man nicht mehr durcheinander kommen.

    Statt endlos langer Konstantennamen kann auch ein Kommentarblock unter den Konstanten helfen.

    >Da fände ich es besser, wenn man den Mode am Programmanfang einmal einstellen könnte.

    Du kannst Set("MoveListMode",n) vor den Move-Funktionen aufrufen, so das jede Funktion anders funktioniert - je nach Parameter.

    Das Beispiel in der Hilfe etwas umgestellt:

    Code
    MoveListProc
       Parameters string s, int i
    
       Declare der_MoveListMode%
       der_MoveListMode% = get("MoveListMode")
       if der_MoveListMode% = %LfdNr_und_String
         AddString str$(i) + " " + s
       elseif der_MoveListMode% = %die_ersten_2Zeichen
         AddString left$(s, 2)
       elseif der_MoveListMode% = %meinWunschMove
         'gewünschte Ausführung
       endif
    EndProc
    Alles anzeigen

    Programmieren, das spannendste Detektivspiel der Welt.

    2 Mal editiert, zuletzt von Michael Wodrich (3. Juni 2021 um 16:50) aus folgendem Grund: ergänzt

  • H.Brill
    Stammuser
    Reaktionen
    508
    Beiträge
    1.192
    • 3. Juni 2021 um 18:52
    • #3

    Das war dann ein Gedankenfehler von mir.

    Dachte, daß Set("MoveListMode", N) für alle

    5 Listen gleichermaßen gilt und der Mode

    nur die Stringbehandlung (Parameter s)

    beeinflußt und nicht die 5 Listen. Also, je

    nach Modus eine andere Behandlung

    z.B. von InStr().

    Zitat

    Set("MoveListMode"

    Diese SetFunktion triggert die Callback-Prozedur MoveListProc. Ist N gleich 0, wird die Prozedur nicht genutzt und auch nicht benötigt. Ist der Modus ungleich 0 wird für jeden mit Move("...ToList" kopierten Eintrag die Prozedur aufgerufen.

    Da habe ich wohl falsch gelesen.

    Wir sind die XProfaner.

    Sie werden von uns assimiliert.

    Widerstand ist zwecklos!

    Wir werden alle ihre Funktionen und Algorithmen

    den unseren hinzufügen.

  • Michael Wodrich
    Profi
    Reaktionen
    263
    Beiträge
    562
    • 3. Juni 2021 um 19:19
    • #4

    Ja das kann man falsch verstehen.

    Das Beispiel zeigt auch nur die Nutzung mit "StrToList".

    Da man den Modus aber vor jedem Move() entsprechend setzen kann ist es sehr flexibel einsetzbar.

    Programmieren, das spannendste Detektivspiel der Welt.

Windows 11

  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™