AddElement in neuer PB-Version 4.30Beta2
Verfasst: 24.09.2008 14:07
Hallo!
Ich verwende die LinkedList intensiv in meinen Programmen.
Beispielsweise lese ich Datensätze aus einer SQL-Datenbank in eine LinkedList ein. Die Datenfelder habe ich in einer Structure definiert, die ich mit der LinkedList verbinde (siehe Code).
Diese Funktionalität findet in einer PB-DLL statt. Innerhalb eines Programmes, welches in einer anderen Programmiersprache geschrieben wurde, binde ich diese DLL für Datenbankzugriffe ein.
Von diesem Programm rufe ich Funktionen in der DLL auf um Datensätze zu lesen/schreiben etc.. Nachdem die Datensätze innerhalb der DLL gelesen wurde übergebe ich diese dem Programm. Anschließend bewege ich mich aus dem Programm in den einzelnen Elementen der LinkedList über die Adressen *Next.Element und *Previous.Element vor und zurück. Hierdurch kann ich auf einfache Weise auf die gelesenen Datensätze Zugriif.
Ab der Version 4.3 soll die Struktur der LinkedList (siehe unten) geändert werden. Bei AddElement soll nun die Adresse des neuen Elementes ausgegeben werden.
Die Verwendung der Pointer innerhalb der Elemente einer LinkedList war doch genauso so frei gegeben und konnte bzw. durfte verwendet werden. Das gesamte Konzept meiner Anwendungen werden über den Haufen geworden - das kann doch nicht sein!
Gibt es eine andere Lösung, die bereits bekannt ist?
Grüße
Ralf[/b]
Ich verwende die LinkedList intensiv in meinen Programmen.
Beispielsweise lese ich Datensätze aus einer SQL-Datenbank in eine LinkedList ein. Die Datenfelder habe ich in einer Structure definiert, die ich mit der LinkedList verbinde (siehe Code).
Code: Alles auswählen
Structure tdbTabelle1
Feld1[3]
Feld2.l
Feld3.q
EndStructure
Global NewList Tabelle1.tdbTabelle1()
Von diesem Programm rufe ich Funktionen in der DLL auf um Datensätze zu lesen/schreiben etc.. Nachdem die Datensätze innerhalb der DLL gelesen wurde übergebe ich diese dem Programm. Anschließend bewege ich mich aus dem Programm in den einzelnen Elementen der LinkedList über die Adressen *Next.Element und *Previous.Element vor und zurück. Hierdurch kann ich auf einfache Weise auf die gelesenen Datensätze Zugriif.
Ab der Version 4.3 soll die Struktur der LinkedList (siehe unten) geändert werden. Bei AddElement soll nun die Adresse des neuen Elementes ausgegeben werden.
Code: Alles auswählen
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
Gibt es eine andere Lösung, die bereits bekannt ist?
Grüße
Ralf[/b]