Ankündigung

Einklappen

Sammelbestellung ETS6 Vollversionen aktiv!

Sammelbestellung für ETS6 Vollversionen (Prof., Home, Lite) mit 40% Rabatt aktiv! Infos im Forum!
Mehr anzeigen
Weniger anzeigen

Kommentare im Quellcode

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Kommentare im Quellcode

    Das Handbuch sagt:


    Sie können ihre Programmierung kommentieren. Dazu gibt es zwei Möglichkeiten:
    1. Kommentare beginnen mit „//“ und stehen am Anfang einer Zeile.
    2. Anstelle einer Anweisung können Kommentare an beliebiger Stelle stehen (Strichpunkt beachten), die durch /* */ eingerahmt werden. Z.B.

    /* Dies ist ein Kommentar */
    // Das ist noch ein Kommentar
    u=5;/* Und dies ist noch Kommentar */; u4=5


    Das gelb unterlegte stimmt insofern nicht, als es möglich ist, Kommentare (beider Arten) auch hinter Code in derselben Zeile unterzubringen. Wer das aufgrund des Handbuchs nicht probiert, erhält unübersichtlicheren Code.

    Wichtiger aber:
    Warum gibt es denn keine intuitive Möglichkeit, ganze Blöcke (wie in jeder normalen Programmiersprache auch) durch einfache Kommentarklammerung auszukommentieren? Da könnte man gleichzeitig auch den Grund des Ausklammerns mit unterbringen, anstatt primitive "//"-Orgien zu feiern.

    Beim EibPC geht es nur zeilenweise und ganze Blöcke haben dann in jeder Zeile ein "//" vorne. Das ist unheimlich unübersichtlich und unpraktisch.

    Stellt doch bitte die Kommentarklammer "/* ...... */" so zur Verfügung, dass sie auch über Zeilenschaltungen hinweg wirkt.

    Statt so etwas
    Code:
    ///* -------------------------- Rollladen Wetterschutz ------------------------ */
    //:begin RolloWetterschutz(Name, GAStatUnwetter)
    //:info $Wetterschutzmakro$\\
    //$Name (wegen Eindeutigkeit) entsprechend dem Makro Rollladen$\\
    //$Gruppenadresse der Unwetterstatus-GA$
    //
    //:var storedPosition@
    //storedPosition@ = 0f16;
    //
    //if change(GAStatUnwetter) then {
    //    if ( (GAStatUnwetter == EIN) and (Name_DayAutoCloseLamel != dayofweek()) and (Name_DayAutoCloseTotal != dayofweek()) ) then {
    //        storedPosition@ = Name_PosAktuell;
    //        Name_isUnwetter = EIN;
    //    } endif;
    //    if ( (GAStatUnwetter == AUS) and (Name_DayAutoCloseLamel != dayofweek()) and (Name_DayAutoCloseTotal != dayofweek()) ) then {
    //        Name_isUnwetter = AUS;
    //    } endif;
    //} endif
    //
    //:return Name_isUnwetter
    //:end​
    würde ich das
    Code:
    /* -------------------------- Rollladen Wetterschutz ------------------------ */
    /* Auskommentiert zum Test neues Modul
    :begin RolloWetterschutz(Name, GAStatUnwetter)
    :info $Wetterschutzmakro$\\
    $Name (wegen Eindeutigkeit) entsprechend dem Makro Rollladen$\\
    $Gruppenadresse der Unwetterstatus-GA$
    
    :var storedPosition@
    storedPosition@ = 0f16;
    
    if change(GAStatUnwetter) then {
        if ( (GAStatUnwetter == EIN) and (Name_DayAutoCloseLamel != dayofweek()) and (Name_DayAutoCloseTotal != dayofweek()) ) then {
            storedPosition@ = Name_PosAktuell;
            Name_isUnwetter = EIN;
        } endif;
        if ( (GAStatUnwetter == AUS) and (Name_DayAutoCloseLamel != dayofweek()) and (Name_DayAutoCloseTotal != dayofweek()) ) then {
            Name_isUnwetter = AUS;
        } endif;
    } endif
    
    :return Name_isUnwetter
    :end
    
    ENDE Auskommentierung RolleWetterschutz */​
    Nur zweite und letzte Zeile:

    Das würde sich durch zusätzliche "//" vor diesen Zeilen auch schnell und problemlos umschalten lassen.

    Also große Bitte: Passt die Kommentarfunktion an den allgemeinen Programmierstandard an!

    #2
    Und noch ein Ärgernis mit Kommentar, der sich so gänzlich anders verhält, wie ein auskommentieren funktionieren sollte - nein: muss!

    Ich wollte nur mal testen, wie sich der Weboutput gestaltet, wenn ich eine kleine Änderung mache, die beim nächsten Flashen mitkommt.

    image.png

    Also schnell mal Zeile 108 kopiert, Zeile 109 geändert und eine horizontale Linie "<hr>" statt Leerzeilen. Jetzt kommts:

    Danach noch Zeile 108 "auskommentiert"? Pustekuchen

    Beim Übersetzen motzt nämlich der Compiler:

    Code:
     +---+ EibParser - v5.508 (Windows 64 Bit Version) +---+
    
    Keine Haftung für Schäden, die durch die Benutzung des Programms entstehen.
    Datei: "S:\EIB_KNX\EibPC2-Projekte\Amselweg7-EibPC02_tmp\tmpMacroOut.txt" wurde geschrieben
    
    Datei: "S:\EIB_KNX\EibPC2-Projekte\Amselweg7-EibPC02_tmp\tmpMacroFuncOut.txt" wurde geschrieben
    Syntax-Fehler:
    ! Falsche Anzahl von Argumente von Solar_txtBF+$<br>$+Solar_txtMaxTempBoiler+$<br>$+Solar_txtPumpenschalter+$<br>$+Solar_txtdKollBoiu+$<br>$+Solar_txtdVorlRuel+$<br>$+Solar_txtEin+$<br>$+ !
    ID:10
    EibParser wurde mit Fehler beendet.​
    ​Abgesehen von der unterirdisch irreführenden Fehlermeldung, warum zum Teufel wird eine Kommentarzeile nicht vom Parser ordentlich ausgeblendet? In jeder anderen Programmiersprache funzt das auch!

    Der Versuch, statt am Zeilenanfang mit "//", die Kommentarfunktion /* ..... */ zu nutzen, schlägt ebenfalls fehl.

    Nach Löschen der Zeile 108 ließ sich das Programm anstandslos übersetzen. Das ist aber nicht gerade Sinn der der Sache, wenn man sich die ursprüngliche Programmierung eines geänderten Programmteils noch als Rückfallebene behalten möchte.
    Zuletzt geändert von klaus_kraemer; Heute, 09:48.

    Kommentar


      #3
      soweit ich mich entsinnen kann funktioniert der Kommentar innerhalb eines {....}-Bereiches nicht. Wäre aber natürlich wünschenswert
      ....und versuchen Sie nicht erst anhand der Farbe der Stichflamme zu erkennen, was Sie falsch gemacht haben!

      Kommentar


        #4
        Der Text im Handbuch sagt eigentlich eindeutig, dass das Monierte als Kommentar behandelt werden muss.

        Und nein, das ist nicht wünschenswert, sondern muss so sein. Allein, was diese nicht vom User zu verantwortenden Mängel völlig unnötig an Zeit kosten. Dazu wird viel Konzentration dazu verwendet, Fehler nicht im eigentlichen Code, sondern die des EibStudio zu suchen und zu umgehen.

        Kommentar

        Lädt...
        X