Seite 1 von 2

Verständnisproblem LinkedList

Verfasst: 14.06.2007 21:37
von alen
Hallo Zusammen,

ich komme irgendwie nicht ganz hinter die genaue Funktion von LinkedLists.

Ich versuche folgendes:

Code: Alles auswählen

Procedure Error()
  Structure result
    number.s
    state.s
    string.s
  EndStructure
  
  NewList result.result()
  AddElement(result())
  
  result()\number = "12345"
  result()\state  = "C32A"
  result()\string  = "File not Found"
  ProcedureReturn result()
EndProcedure

MessageRequester("Titel", Str(Error()))
die entstandene LinkedList soll dann ausserhalb der Funktion weiter benutzt werden. In meinem Fall wollte ich nur sehen was drin steckt in der Linked List. Ich bekomme als Ergebnis eine Zahl zurückgeliefert.

Was ich eigentlich brauchen würde ist ein assoziatives Array mit Schlüssel und Wert. Kann mir da jemand auf die Sprünge helfen ? Ich habe von diversen Scriptsprachen diese Art von Funktion einfacher in Erinnerung.

Vielleicht hat auch jemand einen Link auf ein Tutorial wo das mit den LinkedLists für Dumme mit Beispielen erklärt wird.

Grüße
Alen Hopek

Verfasst: 14.06.2007 21:51
von ts-soft
Strukturen sind immer Global und die Deklaration in einer Procedur macht
keinen Sinn.
LinkListen können entweder Global genutzt werden, oder besser als Parameter:

Code: Alles auswählen

Structure result
  number.s
  state.s
  string.s
EndStructure

Procedure Error(result.result())
  AddElement(result())

  result()\number = "12345"
  result()\state  = "C32A"
  result()\string  = "File not Found"
EndProcedure

NewList myerror.result()
Error(myerror())
Debug myerror()\number
; ...
assosiative Arrays sind nicht nativ in PB enthalten, gibt aber diverse
Beispiele dafür. Einfach mal suchen

// Edit
falsches ProcedureReturn entfernt

Verfasst: 15.06.2007 09:45
von Little John
ts-soft hat geschrieben:

Code: Alles auswählen

Procedure Error(result.result())
  AddElement(result())

  result()\number = "12345"
  result()\state  = "C32A"
  result()\string  = "File not Found"
  ProcedureReturn result()
EndProcedure
Ist es wirklich möglich, mit ProcedureReturn eine Linked List zurückzugeben?

Gruß, Little John

Verfasst: 15.06.2007 09:46
von Tafkadasom2k5
Nein, es ergibt ja auch keinen Sinn, da LLs global sind.

Verfasst: 15.06.2007 09:48
von ts-soft
Little John hat geschrieben: Ist es wirklich möglich, mit ProcedureReturn eine Linked List zurückzugeben?

Gruß, Little John
Nein, den Teil hab ich vergessen zu löschen.:oops:
Ist ja auch nicht nötig wenn die LinkList übergeben wurde :wink:

Verfasst: 15.06.2007 09:49
von ts-soft
Tafkadasom2k5 hat geschrieben:Nein, es ergibt ja auch keinen Sinn, da LLs global sind.
Wo lebst Du denn :wink: , wir nutzen fast alle PB4x und LinkListen sind
nicht automatisch global!

Verfasst: 15.06.2007 09:51
von Tafkadasom2k5
Achja, da war ja was. :oops:
Aber trotzdem ist es nicht möglich eine LL per ProcedureReturn zu übergeben, oder sehe ich das falsch?

Im Falle dieser Error-Routine wäre eine globale LL aber schon angebracht, finde ich persönlich. Vor Allem, wenn man intern dann auch noch mit ner Struktur arbeitet :allright:

Verfasst: 15.06.2007 09:55
von ts-soft
>> Im Falle dieser Error-Routine wäre eine globale LL aber schon angebracht, finde ich persönlich
Ich frag mich wozu überhaupt eine LinkList, eine strukturierte Variable sollte
doch genügen. Mehrere Fehler zu verwalten macht meist nicht soviel sinn

Verfasst: 15.06.2007 10:01
von Tafkadasom2k5
Ich verweise mal auf den FireFox:
Öffne mal diese Seite, gehe auf "Extras" und dann auf "Fehler-Konsole". Das wäre ein Anwendungsbeispiel <)

Gr33tz
Tafkadasom2k5

Verfasst: 15.06.2007 10:08
von ts-soft
@Tafkadasom2k5
Aus diesem Grunde habe ich meist Fett geschrieben, da mir dies klar ist.