Aktuelle Zeit: 22.02.2019 02:24

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Macro Variable auch als String nutzbar?
BeitragVerfasst: 08.02.2019 13:59 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Ist es Möglich den Namen innerhalb des Macros irgendwie zusätzlich als String zu verwenden?

Code:
Code:
EnableExplicit

Macro AddGlobal(a)
  Global.s a = a
  dummy() ;<- nur da um einen fehler zu erzeugen damit man sieht was im macro passiert
EndMacro

AddGlobal(Hallo)


Was das Macro tun soll:
Code:
Global.s Hallo = "Hallo"


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Macro Variable auch als String nutzbar?
BeitragVerfasst: 08.02.2019 14:08 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Rupture Farms
Code:
EnableExplicit

Macro DoubleQuote
  "
EndMacro

Macro AddGlobal(a)
  Global.s a = DoubleQuote#a#DoubleQuote
  ;dummy() ;<- nur da um einen fehler zu erzeugen damit man sieht was im macro passiert
EndMacro

AddGlobal(Hallo)

Debug Hallo

_________________
BildBildBildBildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Macro Variable auch als String nutzbar?
BeitragVerfasst: 08.02.2019 14:11 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Danke :allright:

Edit:

Funktioniert leider nicht im DeclareModule:
Code:
DeclareModule TESTM
 
  Macro DoubleQuote
    "
  EndMacro
 
  Macro AddGlobal(a)
    Global.s a = DoubleQuote#a#DoubleQuote
    dummy() ;<- nur da um einen fehler zu erzeugen damit man sieht was im Macro passiert
  EndMacro
 
EndDeclareModule

Module TESTM
EndModule

TESTM::AddGlobal(Hallo)

Debug Hallo


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Macro Variable auch als String nutzbar?
BeitragVerfasst: 08.02.2019 14:35 
Offline
Moderator
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Rupture Farms
Scheint so, dass das Macro DoubleQuote außerhalb des Modules sein muss, damit es funktioniert.
Scheint ein Bug zu sein oder?

_________________
BildBildBildBildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Macro Variable auch als String nutzbar?
BeitragVerfasst: 08.02.2019 14:56 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
RSBasic hat geschrieben:
Scheint ein Bug zu sein oder?


Ich würde auch sagen das es ein Bug ist.

Leider sind meine Bug posts nicht gerne gesehen - hatte mal 2 die keine waren eingestellt
und wurde unfreundlich darauf hingewiesen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Macro Variable auch als String nutzbar?
BeitragVerfasst: 08.02.2019 15:18 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Ich denke das es kein Bug ist da das Macro DoubleQuote erst mit UseModule bekannt ist

Lösung...
Code:
DeclareModule TESTM
 
  Macro DoubleQuote
    "
  EndMacro
 
  Macro AddGlobal(a)
    Global.s a = TESTM::DoubleQuote#a#TESTM::DoubleQuote
    ;dummy() ;<- nur da um einen fehler zu erzeugen damit man sieht was im Macro passiert
  EndMacro
 
EndDeclareModule

Module TESTM
EndModule

TESTM::AddGlobal(Hallo)

Debug Hallo

_________________
Alles ist möglich, fragt sich nur wie...
Projekte EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Macro Variable auch als String nutzbar?
BeitragVerfasst: 08.02.2019 15:26 
Offline
Benutzeravatar

Registriert: 25.09.2016 01:42
Danke @mk-soft :)
gut das ich noch keinen Bugreport gepostet habe. :doh:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Macro Variable auch als String nutzbar?
BeitragVerfasst: 08.02.2019 17:03 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Es mag vielleicht kein Bug sein, aber es ist wieder komplett anders wie es jede mir bekannte andere Programmiersprache macht, in denen Scopes richtig funktionieren. :wink:

_________________
Freakscorner.de - Der Bastelkeller | Neustes Video: Neje DK - 1 Watt Laser Engraver
Ubuntu Gnome 18.04.1 LTS x64, PureBasic 5.60 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Macro Variable auch als String nutzbar?
BeitragVerfasst: 08.02.2019 20:04 
Offline
Benutzeravatar

Registriert: 11.08.2005 19:08
Für mich ist es ebenfalls kein Bug.

Ich versuche es mal zu erklären.

Nehmen wir mal einen einfacheren Code:
Code:
DeclareModule TestModule
 
  Macro TestMacro1
    Debug
  EndMacro
 
  Macro TestMacro2
    TestMacro1 "Test string"
  EndMacro
 
EndDeclareModule

Module TestModule
 
EndModule

TestModule::TestMacro2
Beim Kompilieren des obigen Codes ersetzt der Compiler diesen Code
Code:
TestModule::TestMacro2
durch
Code:
TestMacro1 "Test string"
Die Zeichenfolge "TestMacro1" kann nicht durch den Inhalt des Macros "TestMacro1" aufgelöst werden, weil das Macro nur innerhalb des Moduls existiert.

Schauen wir uns nun folgenden Code an:
Code:
DeclareModule TestModule
 
  Macro TestMacro1
    Debug
  EndMacro
 
  Macro TestMacro2
    TestModule::TestMacro1 "Test string"
  EndMacro
 
EndDeclareModule

Module TestModule
 
EndModule

TestModule::TestMacro2
Hier wird der Code
Code:
TestModule::TestMacro2
durch diesen ersetzt:
Code:
TestModule::TestMacro1 "Test string"
Dieser Code funktioniert immer noch, weil wir auf das Macro "TestMacro1" im Modul "TestModule" verweisen. Der Compiler kann somit auch dieses Macro auflösen und wir erhalten diesen Code:
Code:
Debug "Test string"

_________________
Bild
Warum OpenSource eine Lizenz haben sollte
PureBasic-CodeArchiv-Rebirth: Git-Repository / Download -- Jede Hilfe ist willkommen!
Manjaro Xfce x64 (Hauptsystem) :: WindowsXP/Xubuntu x86 (VirtualBox) :: PureBasic (Linux: x86/x64, Windows: x86) :: jeweils neueste Version


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Macro Variable auch als String nutzbar?
BeitragVerfasst: 08.02.2019 20:50 
Offline
Benutzeravatar

Registriert: 04.08.2009 17:24
Die erklärung von Sicro erscheint schlüssig, also würde ich es auch nicht als Bug bezeichnen. Intuitiv hätte ich aber gesagt, dass jedes Macro sofort aufgelöst wird, wobei dann:

Code:
DeclareModule TestModule
 
  Macro TestMacro1
    Debug
  EndMacro
 
  Macro TestMacro2
    TestMacro1 "Test string"
  EndMacro
 
EndDeclareModule

Module TestModule
 
EndModule

TestModule::TestMacro2

im 'ersten Schritt' ersetzt wird durch:

Code:
DeclareModule TestModule
 
  Macro TestMacro2
    Debug "Test string"
  EndMacro
 
EndDeclareModule

Module TestModule
 
EndModule

TestModule::TestMacro2


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 15 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye