Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 13.04.2008, 18:32 Titel: [ ALL ][ Memory ] Double Linked List |
|
|
LinkedList
OS: All
Kategorie: Speicherverwaltung
Funktion: Kapselung von Funktionen zur verwaltung einer Dynamischen Double Linked List
Projektseite:
[EN] [In Arbeit]
[DE] Http://freeBASIC-Portal.de
Kurzbeschreibung:
Double Linked List für Eindimensionale und Mehrdimensionale Listen ... Variantfehig
Ausführliche Beschreibung:
Da ich auf der suche nach einem dynamischen Array in einem Dynamischen Array nicht weit kam, musste eine Linked List her, die es mir ermöglicht eine Dynamische Liste in einer Dynamischen Liste zu erstellen. Und so entstand dieses Projekt.
Das Modul hält alle Funktionen bereit, die nötig sind um eine ein und mehrdimensionale Double Linked List zu erstellen.
Es wird noch am Modul geworkelt, um mehr und mehr Funktionen einzubaun, aber ansich funktioniert die Liste und last sich einfach sowie schnell bedienen.
Unter dem eigentlich Modul findet Ihr 2 Beispiele die verdeutlichen wie einfach man eine eindimensionale Liste sowie eine mehrdimensionale erstellen kann.
Screenshots:
Keine Bilder vorhanden
Direkt Download:
[Sourcecode] Bitte von der Projektseite herunterladen!
Changelog:
Befindet sich auf der Projektseite.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Zuletzt bearbeitet von ThePuppetMaster am 18.08.2009, 15:17, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
E-P-S
Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
Verfasst am: 30.03.2009, 09:05 Titel: |
|
|
Hi, zu deiner Linked List.
Ich bin grad an einem Projekt wo ich die dringendst bräuchte, allerdings hab ich nen Fehler bemerkt (zumindst denke ich das).
Im ersten Beispiel, der einfachen Liste, mit dem eingeschobenen Eintrag (Quetsch) kann ich diesen Eintrag weder an Posistion 1 einfügen, noch kann ich den Eintrag auf Position 1 löschen.
Genau das brauch ich aber. Lässt sich das fixen?
DANKE _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. |
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 30.03.2009, 17:30 Titel: |
|
|
Naja... die linked list is nicht besonders toll
Aber, ich kann dir fix ne neue version schreiben. musst dich nur n paar stunden gedulden.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
|
Nach oben |
|
|
E-P-S
Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
Verfasst am: 01.04.2009, 08:32 Titel: |
|
|
Kein Thema. Vielen Dank. Ich bin froh wenn sich die Entiwckler um Ihre Software kümmern, erst recht wenn es sich nur um kleine Codes handelt. In diesem Sinne:
D A N K E _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. |
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 14.04.2009, 14:34 Titel: |
|
|
2009.04.14
* Fehlende Overload Funktionen hinzugefügt.
* Beim Löschen / Leeren der Linked List werden automatisch alle Any-Ptr Datentypen Zerstört (DeAllocate)
* Fehlerhafte AnyData Funktion gefixt.
Wenn Any-Ptr Datentypen in die LinkedList geaddet werden, und die Liste gelöscht wird, oder ein Any-Ptr element, wird deren verlinkter Speicher automatisch zerstört (DeAllocate).
Es braucht folglich keine eigene Funktionmehr geschrieben werden, die jeden von hand erstellten Speicherbereich (Allocate), welcher der Add Funktion der LL übergeben wird (any Ptr), DeAllockiert.
[EDIT]
Ein Beispiel, wie man mit der AnyData Funktion arbeitet, bzw wie man eigene UDTs in die LinkedList hinzufügen kann.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
|
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 20.04.2009, 15:43 Titel: |
|
|
was ich ja ganz praktisch fänd, wäre eine linked-list als datei abspeichern und wieder laden zu können .. aber ich glaub das ist sehr kompliziert oder? |
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 20.04.2009, 17:32 Titel: |
|
|
Am besten in einem XML-artigen Format^^
Nein Scherz, theoretisch wäre das ja kein Problem. Ist wohl auch besonders für Spiele interessant? |
|
Nach oben |
|
|
OneCypher
Anmeldungsdatum: 23.09.2007 Beiträge: 802
|
Verfasst am: 21.04.2009, 08:13 Titel: |
|
|
In welchem Format ist ja noch nichtmal zwingend wichtig.. ich fänd das klasse wenn meine programme genau da weitermachen könnten wo sie des letzte mal aufgehört hatten |
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 22.04.2009, 09:58 Titel: |
|
|
2009.04.22
* Modul mit Möglichkeit zum Speicher und Laden der Daten ausgestattet. (LLD Modus). An XML wird gearbeitet
* Beispiel für Speicher und Laden hinzugefügt.
eine XML-Variante werde ich eventuell noch einabauern. Da diese jedoch sehr umfangreich sein muss, und das Parsen sehr zeitaufwendig ist, habe ich mir ein eigenes Format einfallen lassen. Es ist deutlich schneller, und vorallem SEHR Kompackt, im vergleich zum XML.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 22.04.2009, 17:46 Titel: |
|
|
weißt du eigentlich, dass man ein datum entweder als dd.mm.yyyy, mm/dd/yyyy oder yyyy-mm-dd schreibt, aber bestimmt nich als yyyy.mm.dd? ;p _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
The_Muh aka Mark Aroni
Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 22.04.2009, 19:44 Titel: |
|
|
MisterD ganz richtig ist das aber auch nicht. Meistens kürzt man die jahresangabe auf die letzten beiden ziffern, solange keine missverständnisse entstehen.
yy-mm-dd
und die schreibweise mit den / ist laut DIN 5008 ebenfalls nicht erlaubt. Ich muss es wissen, mit sowas schlag ich mit 2 mal die woche inner Schule rum _________________ // nicht mehr aktiv // |
|
Nach oben |
|
|
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 22.04.2009, 20:18 Titel: |
|
|
Wau feines Teil |
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 22.04.2009, 21:23 Titel: |
|
|
MisterD hat Folgendes geschrieben: | weißt du eigentlich, dass man ein datum entweder als dd.mm.yyyy, mm/dd/yyyy oder yyyy-mm-dd schreibt, aber bestimmt nich als yyyy.mm.dd? ;p | Weißt du eigentlich, warum ich das so mache? nein? dann kritisiere doch meine ausgefeilte datumskodierung nicht. Ich mache das absichtlich so, und das hat sogar einen grund.
Ich schreibe bei datums unduhrzeitangaben immer die sich am wenigsten ändernde zuerst, abfallend zu der sich am häufigsten ändernde zahl. und das hat auch einen grund, aber das ist ja nicht topic like
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
|
MisterD
Anmeldungsdatum: 10.09.2004 Beiträge: 3071 Wohnort: bei Darmstadt
|
Verfasst am: 22.04.2009, 21:28 Titel: |
|
|
The_Muh hat Folgendes geschrieben: | MisterD ganz richtig ist das aber auch nicht. Meistens kürzt man die jahresangabe auf die letzten beiden ziffern, solange keine missverständnisse entstehen.
yy-mm-dd
und die schreibweise mit den / ist laut DIN 5008 ebenfalls nicht erlaubt. Ich muss es wissen, mit sowas schlag ich mit 2 mal die woche inner Schule rum |
DIN nich, aber die briten schreiben ihr datum so ;P
und @tpm: lass mich doch ma in ruh flamen _________________ "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra |
|
Nach oben |
|
|
Lutz Ifer Grillmeister
Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 22.04.2009, 23:35 Titel: |
|
|
Warum nicht gleich als DTG?
220958Bapr09 _________________ Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft. |
|
Nach oben |
|
|
ThePuppetMaster
Anmeldungsdatum: 18.02.2007 Beiträge: 1837 Wohnort: [JN58JR]
|
Verfasst am: 22.04.2009, 23:46 Titel: |
|
|
Weil ich TDaTF nutze.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
|
darkinsanity aka sts
Anmeldungsdatum: 01.11.2006 Beiträge: 456
|
Verfasst am: 23.04.2009, 12:12 Titel: |
|
|
hab mir dein Projekt mal angesehn, sieht interessant aus. Momentan brauch ich das zwar nicht, aber vielleicht verwende ich das mal in meiner 3d-Engine _________________ Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak |
|
Nach oben |
|
|
E-P-S
Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
Verfasst am: 11.08.2009, 19:10 Titel: |
|
|
Ich hab gerade mal das Beispiel zum Speichern von UDTs runtergeladen und versucht in mein Projekt einzubauen.
Beim Compilieren bekomme ich jedoch diesen Fehler:
Code: | wheely.bas(85) error 55: Type mismatch, at parameter 1 (V_String) of ADD() in 'TItem1 = List.Add( Cast( Any Ptr, TPtr ) )' |
Hier mal die Funktion die den Fehler verursacht sowie die UDT usw. dazu:
Code: | Dim Shared List As LinkedList
Dim Shared TItem1 As LinkedList
Type objUDT
uListIndex As Integer
uObjPos As CtsxVector3f
End Type
Sub AddToList( index As Integer, objPos As CtsxVector3f )
Dim TPtr As objUDT Ptr
TPtr = Callocate( SizeOf( objUDT ) )
With *TPtr
.uListIndex = index
.uObjPos = objPos
End With
TItem1 = List.Add( Cast( Any Ptr, TPtr ) ) '<------ FEHLER
End Sub |
Kann mir da jemand weiter helfen? _________________ Man kann sich öfter als zweimal im Leben halb tot lachen. |
|
Nach oben |
|
|
The_Muh aka Mark Aroni
Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 11.08.2009, 20:18 Titel: |
|
|
Das
Code: |
TItem1 = List.Add( Cast( Any Ptr, TPtr ) ) '<------ FEHLER
|
sollte so gehen:
Code: |
List.add(callocate(sizeof(objUDT))).item(1).anydata
list.item(list.count).anydata = tptr |
_________________ // nicht mehr aktiv //
Zuletzt bearbeitet von The_Muh am 11.08.2009, 20:30, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
|