Aktuelle Zeit: 28.02.2020 01:42

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Map mit structure
BeitragVerfasst: 11.01.2020 11:13 
Offline

Registriert: 09.02.2017 13:54
Hallo, Leute ...

Wenn ich die pb Hilfe richtig verstehe, ist es doch möglich eine Map() mit einer structure zu versehen.

Also so etwas etwa:
Structure treeParams
Key.s
KeyId.i
Text.s
ImageId.i
Vg.s
VgId.i
EndStructure

NewMap treeIn.treeParams()
NewMap treeOut.treeParams()

Ich habe folgenden Code:

Code:
Structure treeParams
  Key.s
  KeyId.i
  Text.s
  ImageId.i
  Vg.s
  VgId.i
EndStructure
NewMap treeIn.treeParams()
NewMap treeOut.treeParams()

key.s="start"

AddMapElement(treeOut(),key)
treeOut(key)=treeIn(key)
Procedure parseTree(key)
  ForEach treeIn()
    If treeIn()\Vg = key
      key=treeIn()\Key
      AddMapElement(treeOut(),key)
      treeOut(key)=treeIn(key)
      DeleteMapElement(treeIn(),key)
      parseTree(key)
    EndIf
  Next
EndProcedure


Es geht jetzt nicht um den Code in seiner Funktion. Das kann ich sowieso erst testen, wenn dieser Fehler behoben wird.
Der Compiler sagt mir beim Eintritt in foreach, dass treeIn KEINE Map ist.
Wieso ????? Wo liegt mein Denkfehler oder mein fehlendes Wissen? Oder habe ich grundsätzlich etwas nicht verstanden?

Vielen Dank für die Hilfe

.... Peter ....


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Map mit structure
BeitragVerfasst: 11.01.2020 11:22 
Offline
Benutzeravatar

Registriert: 20.04.2006 09:50
Die Maps sind nicht sichtbar innerhalb der Procedure. Du must sie entweder als 'Global NewMap' definieren, oder als 'Shared tree..()' innerhalb der Procedure.

_________________
my pb stuff..
Bild..jedenfalls war das mal so.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Map mit structure
BeitragVerfasst: 11.01.2020 11:28 
Offline
Benutzeravatar

Registriert: 04.02.2005 15:40
Wohnort: Kaufbeuren
Du hast die Map außerhalb der Procedur definiert, womit diese innerhalb dieser unbekannt ist.
Es gibt 2 Möglichkeiten:

- Map global definieren: Global NewMap treeIn.treeParams()
- Map an die Prozedur übergeben (siehe Code)

Code:
Structure treeParams
  Key.s
  KeyId.i
  Text.s
  ImageId.i
  Vg.s
  VgId.i
EndStructure
NewMap treeIn.treeParams()
NewMap treeOut.treeParams()

key.s="start"

AddMapElement(treeOut(),key)
treeOut(key)=treeIn(key)

Procedure parseTree(key.s, Map In.treeParams(), Map Out.treeParams())
  ForEach In()
    If In()\Vg = key
      key=In()\Key
      AddMapElement(In(), key)
      Out(key)\Key = In(key)\Key
      DeleteMapElement(In(), key)
      parseTree(key, In(), Out())
    EndIf
  Next
EndProcedure


PS: Ich habe die restlichen Fehler gleich auch noch behoben. :wink:

_________________
Download der Module

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Map mit structure
BeitragVerfasst: 11.01.2020 11:43 
Offline

Registriert: 09.02.2017 13:54
... Mist ... :oops: :( ,

........ vielen Dank ....


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Map mit structure
BeitragVerfasst: 11.01.2020 15:02 
Offline
Benutzeravatar

Registriert: 25.01.2005 12:19
Thorsten1867 hat geschrieben:
Es gibt 2 Möglichkeiten:

- Map global definieren: Global NewMap treeIn.treeParams()
- Map an die Prozedur übergeben (siehe Code)

Es gibt noch eine dritte Möglichkeit:
- Map in Hauptprogramm mit Define deklarieren und in der Prozedur mit Shared (die Map ist dann außer im Hauptprogramm nicht automatisch in allen Prozeduren bekannt wie bei Deklaration mit Global)


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

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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

 


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