delete

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

wenn du ForEach benutzt, kannst du das ResetList() auch weg lassen :wink:

bei macros mußt du auch beachten, das die variablen für die parameter ja nicht protectet werden oder dergleichen, weil ja kein neuer namensraum entsteht. du mußt also namenskonflikte vermeiden, indem du ausgefallene namen benutzt, zum beispiel __item, statt item.
my pb stuff..
Bild..jedenfalls war das mal so.
wasser
Beiträge: 125
Registriert: 27.11.2006 21:16

Beitrag von wasser »

macros mit einer zeile bringen nichts sind, sind zeitfresser.

mfg
Benutzeravatar
Vallan
Beiträge: 223
Registriert: 20.01.2006 19:34
Kontaktdaten:

Beitrag von Vallan »

Stimmt nicht, z.b: ist

Code: Alles auswählen

Macro EroorRequester
Messagerequester("Error","Ein Fehler ist aufgetreten bitte benachtichtigen Sie den (...) unt tuen Sie das (....) und dies (...) ")

endmacro
Ist doch viel besser als 3 mal hinzuschreiben oder?
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

wasser hat geschrieben:macros mit einer zeile bringen nichts sind, sind zeitfresser.

mfg
Zeitfresser? Ich glaube du verstehst Makros garnicht. :? Prozeduren werden aufgerufen, Makros nicht!
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

hm... ein paar von den Macros oben sehen aber seltsam aus...
funktionieren die überhaupt?

ich mein, z.b.

Code: Alles auswählen

Macro CreateList(List, Struc) 
   Global NewList List.Struc()
Struc ist doch keine variable, sondern eine literaleinsetzung...
die muss doch von nem Lattenzaun gefolgt werden, oder? :?

Code: Alles auswählen

Macro CreateList(List, Struc) 
   Global NewList List.Struc#()
müsste das nicht so aussehen?
oder kann er das noch als standard-Parameter handlen...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Kaeru Gaman hat geschrieben:hm... ein paar von den Macros oben sehen aber seltsam aus...
funktionieren die überhaupt?

ich mein, z.b.

Code: Alles auswählen

Macro CreateList(List, Struc) 
   Global NewList List.Struc()
Struc ist doch keine variable, sondern eine literaleinsetzung...
die muss doch von nem Lattenzaun gefolgt werden, oder? :?

Code: Alles auswählen

Macro CreateList(List, Struc) 
   Global NewList List.Struc#()
müsste das nicht so aussehen?
oder kann er das noch als standard-Parameter handlen...
:lol: Lattenzaun

Ich frag mich sowieso wann man den "Lattenzaun" benötigt und wann nicht. :freak: Schon klar, wenn man 2 Wörter verbinden will, aber manchmal gehts mit, manchmal aber auch ohne.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Die Raute wird immer dann benoetigt , wenn, wie DD schon schrieb,
man das Wort erweitern moechte. Dabei zaehlen aber wohl nur die
gleichen Zeichen wie bei einer Variabel.

Code: Alles auswählen

Macro DQ
  "
EndMacro

Macro CreateList(List, Struc)
  Debug DQ Global NewList List.struc() DQ
EndMacro

Macro CreateList2(List, Struc)
  Debug DQ Global NewList __#List#_.struc() DQ
EndMacro

CreateList(myList, LONG)

CreateList2(myList, LONG)

CreateList2 wird ohne Raute nicht gehen.
Benutzeravatar
Hyper
Beiträge: 194
Registriert: 19.04.2005 19:14

Beitrag von Hyper »

DarkDragon hat geschrieben:
------
wasser hat Folgendes geschrieben:
macros mit einer zeile bringen nichts sind, sind zeitfresser.

mfg
------

Zeitfresser? Ich glaube du verstehst Makros garnicht. Confused Prozeduren werden aufgerufen, Makros nicht!
Schon klar, das Macro wird ja beim kompilieren ersetzt. DENNOCH: ich habe bei einem Programm klar festgestellt, dass der Code mit Marco langsamer lief! Interessanterweise auch als kompilierte EXE. Ich habe das aber bis heute vor der ganzen Welt verschwiegen, weil es so unlogisch ist, dass es nicht sein kann, weils nicht sein darf.

Hat jemand ähnliche Erfahrungen gemacht?

PS: Bitte nicht nach dem Code fragen, weiß nicht mehr, wobei es war...
PB 5.72
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Hyper hat geschrieben:ich habe bei einem Programm klar festgestellt, dass der Code mit Marco langsamer lief! Interessanterweise auch als kompilierte EXE.
Lass den Marco wieder aus der Exe, den brauchen wir noch :lol:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Hyper
Beiträge: 194
Registriert: 19.04.2005 19:14

Beitrag von Hyper »

Hi ts-soft,

hab gerade auch schön gelacht! Interessante Vorstellung - ich kenne einige Marco's... Und die machen jetzt meine Exen langsam! Frechheit!
PB 5.72
Antworten