Aktuelle Zeit: 26.05.2018 04:31

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Linked List inklusive Struktur an Modul übergeben ?
BeitragVerfasst: 11.02.2018 18:48 
Offline

Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Hallo Leute,
verzweifle gerade etwas. :cry:
Wie es der Titel schon aussagt, ich möchte eine Linked List (NewList) + Struktur an eine Prozedur eines Moduls übergeben.

Okay, die Struktur muss dem Modul bekannt sein, soweit bin ich schon mal gekommen.
Aber wie weiter?
Ein kurzer Beispielcode währe klasse. :praise:

Grüße

_________________
Barcodes for PureBasic - http://www.micha122.bplaced.net/


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linked List inklusive Struktur an Modul übergeben ?
BeitragVerfasst: 11.02.2018 19:15 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Der Trick besteht darin ein gemeinsame Modul (Common) zu erstellen und darin die Strukturen anzulegen
und im Main-Programm oder in den Modul mit 'UseModule Common' bekannt zu geben.
Dazu gehören auch Konstanten und Variablen die du Global in allen Modulen verwenden möchtest.

Code:
;-TOP

; -------------------------------------------------------------------

DeclareModule Common
 
  Structure udtMyData
    index.i
    text.s
  EndStructure
 
EndDeclareModule

Module Common
  ; Nothing
EndModule

; -------------------------------------------------------------------

DeclareModule MyModul
 
  UseModule Common
 
  Declare MyShowData(List MyData.udtMyData())
 
EndDeclareModule

Module MyModul
 
  UseModule Common
 
  Procedure InitModule()
    ; Hier alles rein packen was bein starten von Programm im Module verledigt werden soll
  EndProcedure : InitModule()
 
  Procedure MyShowData(List MyData.udtMyData())
    With MyData()
      ForEach MyData()
        Debug "" + \index + ": " + \text
      Next
    EndWith
  EndProcedure
 
EndModule

; -------------------------------------------------------------------

;-Text

UseModule Common

Global NewList MyData.udtMyData()

AddElement(MyData())
MyData()\index = 1
MyData()\text = "Hallo"

AddElement(MyData())
MyData()\index = 2
MyData()\text = "Welt"

MyModul::MyShowData(MyData())

_________________
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


Zuletzt geändert von mk-soft am 11.02.2018 19:24, insgesamt 3-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linked List inklusive Struktur an Modul übergeben ?
BeitragVerfasst: 11.02.2018 19:15 
Offline
Benutzeravatar

Registriert: 01.04.2007 20:18
oder so wie ohne modul :

Code:
DeclareModule mymod
 
  Structure s_struct
    Text.s
    Wert.i
  EndStructure
 
  Declare AddList(List MyList.s_struct(), Text.s, Wert)
 
EndDeclareModule
Module mymod
 
  Procedure AddList(List MyList.s_struct(), Text.s, Wert)
    AddElement(MyList())
    MyList()\Text = Text
    MyList()\Wert = Wert
  EndProcedure
 
EndModule


UseModule mymod

NewList Cool.s_struct()

AddList(Cool(), "Hey", 1)
AddList(Cool(), "huhu", 21)

ForEach Cool()
  Debug Cool()\Text
Next


edit: ein paar sekunden zu spät ;)

_________________
PureBasic 5.46 LTS / 5.62 (Windows x86/x64) | Windows10 Pro x64 | Z370 Extreme4 | i7 8770k | 32GB RAM | iChill GeForce GTX 980 X4 Ultra | HAF XF Evo​​


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Linked List inklusive Struktur an Modul übergeben ?
BeitragVerfasst: 11.02.2018 19:55 
Offline

Registriert: 02.10.2011 14:45
Wohnort: Sinzig
Danke @mk-soft. :allright:
Genau das habe ich gesucht! :D
Ganz nebenbei hat dieses "Common-Modul" den Vorteil, das Strukturen nur einmal definiert werden müssen und von weiteren Modulen genutzt werden können.

Danke @Bisonte. :allright:
Dein Vorgehen ist etwas anders, aber auch dafür habe ich Verwendung. :D
Es fehlt allerdings ein Debug- Befehl in deinem Code:
Code:
ForEach Cool()
  Debug Cool()\Text
  Debug Cool()\Wert
Next


Vielen Dank :allright:

_________________
Barcodes for PureBasic - http://www.micha122.bplaced.net/


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

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