AddElement()

Syntax

AddElement(LinkedList())
Beschreibung
Fügt ein neues, leeres Listenelement nach dem aktuellen Element ein oder als erstes Element, wenn die Liste noch keine Elemente enthält. Dieses neue Element wird zum aktuellen Element der Liste.

Parameter:
LinkedList() - Der Variablenname der verknüpften Liste, welche mit dem NewList Befehl erstellt wurde. Sie müssen die Klammern nach dem Listennamen immer angeben.

Rückgabewert:
Der von diesem Befehl zurückgegebene Wert zeigt an, ob das neue Element hinzugefügt werden konnte oder nicht (es wird z.B. nicht erstellt, wenn Ihr Computer nicht mehr genügend freien Speicher hat). Wenn das neue Element erstellt wurde, gibt dieser Befehl einen Wert ungleich Null zurück. Konnte das neue Element nicht erstellt werden, ist der Rückgabewert gleich Null.

Nur für fortgeschrittene Anwender:
Der Wert, den dieser Befehl zurückgibt, ist ein Zeiger auf das neue Element, oder Null wenn das neue Element nicht erstellt werden konnte. Die Struktur jedes Elements wird nachfolgend dargestellt:
  Structure Element
    *Next.Element        ; Zeiger auf das nächste Element in der Liste oder Null, wenn es das letzte Element ist
    *Previous.Element    ; Zeiger auf das vorherige Element in der Liste oder Null, wenn es das erste Element ist
  
    ; Die Datentypen des Anwenders, mit denen die Liste erstellt wurde, folgen nach diesen
    ; zwei Variablen (was bedeutet, das die Anwenderdaten wie folgt gefunden werden können:
    ; Adresse des neuen Elements + 8
  EndStructure 
Sie sollten die Zeiger am Anfang der Elemente nicht verändern, das dies die Struktur der Liste durcheinander bringt, was zu allen möglichen Problemen führen kann.

Beispiel:
  ; Der einfachste Weg zur Benutzung von AddElement
  NewList simple.w() 
  AddElement(simple())    ; Erstellt das erste neue Element innerhalb der Liste
  simple() = 23 
    
  AddElement(simple())    ; Aktuelle Position ist das erste Element, wir fügen
  simple() = 45           ; daher ein neues an der zweiten Position ein


  ; Das nachfolgende Beispiel zeigt die Benutzung des Rückgabewerts von AddElement
  NewList advanced.l() 
  If AddElement(advanced()) <> 0 
    advanced() = 12345 
  Else 
    MessageRequester("Fehler!", "Kein Speicherplatz zum Reservieren des neuen Elements", #PB_MessageRequester_OK)
  EndIf 


  ; Eine kleine Struktur, um die Beschreibung für "fortgeschrittene Anwender" (siehe oben) zu demonstrieren
  Structure Programmer
    Name.s
    Strength.b
  EndStructure

  Structure SuperGeek
    *Next.SuperGeek
    *Previous.SuperGeek
    Name.s      ; The same field than the 'Programmer' structure
    Strength.b
  EndStructure

  NewList Programmers.Programmer()  ; The list for storing the elements

  *Element.SuperGeek = AddElement(Programmers())
  If *Element<>0
    *Element\Name = "Dave"
    *Element\Strength = 3   ; Wow, super-strong geek! ;)
  Else
    MessageRequester("Fehler!", "Kein Speicherplatz zum Reservieren des neuen Elements", #PB_MessageRequester_OK)
  EndIf 

Unterstützte OS

All

LinkedList Inhaltsverzeichnis - ChangeCurrentElement() ->