PB 4.2 => 4.3 Include

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

PB 4.2 => 4.3 Include

Beitrag von cxAlex »

Da es in 4.3 einige Änderungen an den Befehlsnamen usw. gab und es mir zu viel Aufwand war alle meine Sources manuell anzupassen hab ich ein kleines Include geschrieben mit dem 90% meiner alten Sources unter 4.3 laufen (theoretisch unter x86 und x64). Sicher nicht perfekt, erspart mir aber viel Arbeit:

Code: Alles auswählen

; Konstanten
#Byte = #PB_Byte
#Word = #PB_Word
#Character = #PB_Character
#Long = #PB_Long
#Float = #PB_Float
#Double = #PB_Double
#Quad = #PB_Quad
#String = #PB_String

; Funktionen
Macro ValQ(_x)
  Val(_x)
EndMacro

Macro StrQ(_x)
  Str(_x)
EndMacro

Macro BinQ(_x)
  Bin(_x)
EndMacro

Macro HexQ(_x)
  Hex(_x)
EndMacro

Macro CountList(_list)
  ListSize(_list)
EndMacro

Macro ClearGadgetItemList(_gadget)
  ClearGadgetItems(_gadget)
EndMacro

Macro ChangeListIconDisplay(_gadget, _state)
  SetGadgetAttribute(_gadget, #PB_ListIcon_DisplayMode, _state)
EndMacro

Macro CreateGadgetList(_window)
  UseGadgetList(_window)
EndMacro

; ACHTUNG: Kann zu Fehlern führen
Macro PeekL(_x)
  PeekI(_x)
EndMacro

Macro PokeL(_x, _v)
  PokeI(_x, _v)
EndMacro

; Typen
Macro l
  i
EndMacro

Macro LONG
  INTEGER
EndMacro
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Zu aufgebläht:

Code: Alles auswählen

NewList test()

Macro CountList
	ListSize
EndMacro

Debug CountList(test())
anstatt

Code: Alles auswählen

NewList test()

Macro CountList(_List)
	ListSize(_List)
EndMacro

Debug CountList(test())
genügt. Das Gleiche gilt natürlich für alle anderen Befehle.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

Ich setze bei Makros generell Klammern, auch wenn ich keine Parameter brauche. So unterscheide ich sie leichter von Variablen.

Im speziellen Fall von l und LONG war das nicht möglich.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

> Ich setze bei Makros generell Klammern, ... So unterscheide ich sie leichter von Variablen
Nun, eigentlich weiß man selbst doch am besten, was Prozedur und was Variable ist. Wie dem auch sei, zur Hilfe empfehle ich dir die Wekrzeugtafel der IDE zu benutzen; die Registerkarte "Prozeduren" listet auch Makros auf und kennzeichnet diese mit einem + als Aufzählungszeichen. Verwechslung ausgeschlossen.

> Im speziellen Fall von l und LONG war das nicht möglich.
Ich sagte ja auch "Befehle" und nicht 'Strukturen'.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
THEEX
Beiträge: 804
Registriert: 07.09.2004 03:13

Beitrag von THEEX »

Nun, eigentlich weiß man selbst doch am besten, was Prozedur und was Variable ist. Wie dem auch sei, zur Hilfe empfehle ich dir die Wekrzeugtafel der IDE zu benutzen; die Registerkarte "Prozeduren" listet auch Makros auf und kennzeichnet diese mit einem + als Aufzählungszeichen. Verwechslung ausgeschlossen.
Wenn der Code älter ist und einige 1000 Zeilen hat, kannste einiges vergessen haben und dann hilft Dir auch nicht unbedingt die Auflistung der Makros. Besser fände ich es, wenn Macros farblich anders gekennzeichnet wären, als Proceduren oder Variablen.
Eine Art Query-Planner soll die Ausführung von Map/Reduce-Funktionen in Hadoop stark beschleunigen.
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

> Nun, eigentlich weiß man selbst doch am besten, was Prozedur und was Variable ist.

Und wenn ich mir den Code nach 1, 2 Monaten wieder anschaue muss ich mir erst wieder alles durchsehen.

Ist einfach meine persönliche Syntax - Konvention: Makros IMMER () dran, auch wenn ich keine Parameter brauche.
Ich will jetzt keinen Flame über meinen Programmierstill vom Zaun brechen, also lassen wir das bitte.

//Edit: THEEX versteht mich :D
Zuletzt geändert von cxAlex am 21.12.2008 20:21, insgesamt 1-mal geändert.
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Dann muss es aus eurer Sicht geradezu angeberisch klingen, wenn ich hiermit verkünde, dass ich Makros von Variablen unterscheiden kann, und das auch bei mehr als 1000 Zeilen Code.

Wie gesagt, jedem das seine.

Bloß komisch, dass hier offenbar niemand Makros mit Prozeduren verwechselt, die kannst du nämlich auch nicht in der Autoauflistung unterscheiden...
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
cxAlex
Beiträge: 2111
Registriert: 26.06.2008 10:42

Beitrag von cxAlex »

AND51:
> die Registerkarte "Prozeduren" listet auch Makros auf und kennzeichnet diese mit einem + als Aufzählungszeichen. Verwechslung ausgeschlossen.

AND51:
> Bloß komisch, dass hier offenbar niemand Makros mit Prozeduren verwechselt, die kannst du nämlich auch nicht in der Autoauflistung unterscheiden...

Du wiedersprichst dir. Lassen wir das jetzt einfach, das hat nichts mit dem Thema des Topics zu tun!
Projekte: IO.pbi, vcpu
Pausierte Projekte: Easy Network Manager, µC Emulator
Aufgegebene Projekte: ECluster

Bild

PB 5.1 x64/x86; OS: Win7 x64/Ubuntu 10.x x86
Benutzeravatar
Hyper
Beiträge: 194
Registriert: 19.04.2005 19:14

Beitrag von Hyper »

Danke cxAlex!
Ich habe noch nicht begonnen PB 4.30 zu nutzen, aber eventuell nützt mir dann Dein Include.
PB 5.72
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

cxAlex:
Nein, du verwechsest das.

Bild
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten