Seite 1 von 2
Benutzung von eigenen Schlüsselwörtern
Verfasst: 18.03.2008 16:54
von STARGÅTE
Tachchen,
ich bin vor kurzem auf den Einstellungspunkt
Eigene Schlüsselwörter gestoßen.
Nun habe ich dazu gleich mal eine "Übersichtlichkeits"-Code-Frage:
Da ich sehr oft eine einfache For:To:Next schleife brauche in der Form:
For i = 0 To 16 :
Spieler(i)\Name$ = ""
Spieler(i)\FarbID = i
Spieler(i)\Geld= 100
Next i
habe ich mir n Macro geschieben und 2 neue Schlüsselwörter definiert:
Schlüsselwort : From, i
Bei mir sieht diese Schleife nun so aus:
From 0 To 16 :
Spieler(i)\Name$ = ""
Spieler(i)\FarbID = i
Spieler(i)\Geld= 100
Next
Problem ist: hat einer diese neuen Worte nicht definiert sieht es so aus :
From 0 To 16 :
Spieler(i)\Name$ = ""
Spieler(i)\FarbID = i
Spieler(i)\Geld= 100
Next
Meine Frage ist nun, ist es sinnvoll solche Anpassungen vor zu nehmen, welche für mich eine Vereinfachung bedeuten, für andere aber vllt zu missverständnissen führen ?
Re: Benutzung von eigenen Schlüsselwörtern
Verfasst: 18.03.2008 17:02
von rolaf
STARGÅTE hat geschrieben:Meine Frage ist nun, ist es sinnvoll solche Anpassungen vor zu nehmen, welche für mich eine Vereinfachung bedeuten, für andere aber vllt zu missverständnissen führen ?
Willst du den deine Codes weitergeben? Wenn ja, würde ich drauf verzichten. Wenn nein, mußt du es selbst wissen ob du mit diesen "Krücken" evt. jahrelang arbeiten willst. Kurzum, für mich wäre es Nix. Mal sehen was Andere denken.
Verfasst: 18.03.2008 17:22
von vonTurnundTaxis
Überleg mal, wie viel du dadurch sparst und um wieviel die Wahrscheinlichkeit steigt, dass du in so einem einfachen Konstrukt dann doch einen Fehler hast.
=> Lohnt sich IMO nicht.
Verfasst: 18.03.2008 17:30
von ZeHa
Außerdem ist es mit diesem Konstrukt schon wieder vorbei, sobald Du zwei Schleifen ineinanderschachteln möchtest, dann brauchst Du nämlich noch ein k, und ein Fromk oder InnerFrom oder sonstwas ekliges.
Generell bin ich kein Freund von Macros, besonders in fremdem Code, der über mehrere Dateien verteilt ist, ist es eine Pein, herauszufinden, was eigentlich gemeint ist. Gleiches gilt für sinnloses Operator-Overloading in C++ (es gibt aber auch sinnvolles, nicht nur sinnloses).
Für mich persönlich nutze ich jedoch ein paar kleine Alias-Macros, weil mich manche lange Keywords ankotzen:
Code: Alles auswählen
Macro Proc
Procedure
EndMacro
Macro EndProc
EndProcedure
EndMacro
Macro Ret
ProcedureReturn
EndMacro
Allerdings wird da der Sinn nicht allzu rätselhaft, sprich, jemand der sich mit dem Code beschäftigen muß, wird dabei sicher nicht verzweifeln. Dennoch würde ich, wenn ich solch einen Code veröffentliche, sofort im Head-Bereich oder in der Beschreibung darauf hinweisen, oder für die Öffentlichkeit einfach mal kurz alle Procs und Rets wieder durch ihre ursprüngliche Form ersetzen.
Verfasst: 18.03.2008 17:34
von STARGÅTE
also sind diese eigenen schlüsselworte ehr für die persönliche übersicht geeignet:
zB. für Start3D() und Stop3D()
Verfasst: 18.03.2008 17:45
von ZeHa
Von welchen redest Du jetzt? Meinst Du meine? Die haben nix mit Start3D() zu tun, sondern ich will einfach sowas hier schreiben können:
Weil mir die offizielle PB-Version auf den Keks geht:
Code: Alles auswählen
Procedure getSum(a, b)
ProcedureReturn a + b
EndProcedure
Aber selbst das empfehle ich nicht weiter

weil Macros halt irgendwie doch eher zu unlesbarem Code führen... (in meinem Fall natürlich nicht, im Gegenteil

)
Verfasst: 18.03.2008 17:48
von STARGÅTE
nein ich meine durch die definition einegener Schlüsselwörter in den Einstellungen, kann man ja diese Worte auch Fett machen.
Da suche ich gerade einen guten verwendungszweck:
Start3D() : Stop3D
LockMutex() : UnlockMutex()
denn diese Sachen sind ja in meinen Augen auch "Umarmende" Sachen wie halt For:Next , Repeat:Until
Verfasst: 18.03.2008 17:50
von ZeHa
Hmm ja das stimmt schon, ich rücke da oft meinen Code auch ein, aber technisch gesehen ist es halt kein Keyword sondern ein Funktionsaufruf... das mit dem Mutex könnte man aber theoretisch auch als Sprachelement ansehen, von daher wäre es auch als Keyword denkbar.
Verfasst: 18.03.2008 19:50
von rolaf
ZeHa hat geschrieben:Weil mir die offizielle PB-Version auf den Keks geht:
Code: Alles auswählen
Procedure getSum(a, b)
ProcedureReturn a + b
EndProcedure
Kann ich irgendwie nicht nachvollziehen, sieht doch Knorke aus.
Mit anderem Kot wollte ich nicht arbeiten.

Verfasst: 18.03.2008 20:23
von mk-soft
Macros setzte ich nur dort ein wo es sinn macht und nicht zur verschönerung eines Programmes.
Aber wer keine lust auf Englisch hat geht sowas natürlich auch
Code: Alles auswählen
Macro Von
For __i =
EndMacro
Macro Bis
To
EndMacro
Macro Weiter
Next
EndMacro
Macro Wert
__i
EndMacro
Macro Zeige
Debug
EndMacro
Macro mir
EndMacro
; **************************
von 1 bis 20
zeige mir wert
weiter
FF
