InsertElement()

Syntax

InsertElement(LinkedList())
Beschreibung
Fügt ein neues Element vor dem aktuellen Element ein, oder am Anfang der Liste - wenn diese leer ist (d.h. sie keine Elemente beinhaltet). Dieses neue Element wird das aktuelle 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 erstellt werden konnte oder nicht (es kann z.B. nicht erstellt werden, wenn Ihr Computer keinen freien Speicher mehr hat). Wenn das neue Element erstellt wurde, wird dieser Befehl einen Wert ungleich Null zurückgeben. Wenn das neue Element nicht erstellt werden konnte, dann 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 InsertElement
  NewList simple.w()
  InsertElement(simple())    ; Erstellt das erste neue Element in der Liste
  simple() = 23

  InsertElement(simple())    ; Aktuelle Position ist das erste Element, daher fügen wir das neue Element am Anfang der  Liste ein.
  simple() = 45              ; Das alte erste Element wird jetzt zum zweiten Element in der Liste.


  ; Dies zeigt, wie der Rückgabewert von InsertElement benutzt wird
  NewList advanced.l()
  If InsertElement(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 = InsertElement(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

<- FirstElement() - LinkedList Inhaltsverzeichnis - LastElement() ->