Benutzung von eigenen Schlüsselwörtern

Hier kann alles mögliche diskutiert werden. Themen zu Purebasic sind hier erwünscht.
Flames und Spam kommen ungefragt in den Mülleimer.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Benutzung von eigenen Schlüsselwörtern

Beitrag 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:

Code: Alles auswählen

Macro From 
 For i = 
EndMacro
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 ?
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: Benutzung von eigenen Schlüsselwörtern

Beitrag 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.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag 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.
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag 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.
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

also sind diese eigenen schlüsselworte ehr für die persönliche übersicht geeignet:

zB. für Start3D() und Stop3D()
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag 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:

Code: Alles auswählen

Proc getSum(a, b)
    Ret a + b
EndProc
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 :mrgreen: weil Macros halt irgendwie doch eher zu unlesbarem Code führen... (in meinem Fall natürlich nicht, im Gegenteil 8) )
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag 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
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag 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.
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag 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. :mrgreen:
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag 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 :allright:

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 :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten