Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

[ ALL ][ Memory ] Double Linked List
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 13.04.2008, 18:32    Titel: [ ALL ][ Memory ] Double Linked List Antworten mit Zitat


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
Benutzer-Profile anzeigen Private Nachricht senden
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 30.03.2009, 09:05    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 30.03.2009, 17:30    Titel: Antworten mit Zitat

Naja... die linked list is nicht besonders toll grinsen

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
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 01.04.2009, 08:28    Titel: Antworten mit Zitat

2009.04.01
* Release von Version 2.0


linkedlist.bi: http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=837

Ein allumfassendes Beispiel: http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=838


Sry. das es so lang gedauert hat, ... hatte noch arbeit, die vorrangiger war.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 01.04.2009, 08:32    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 14.04.2009, 14:34    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 20.04.2009, 15:43    Titel: Antworten mit Zitat

was ich ja ganz praktisch fänd, wäre eine linked-list als datei abspeichern und wieder laden zu können zwinkern .. aber ich glaub das ist sehr kompliziert oder?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 20.04.2009, 17:32    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 21.04.2009, 08:13    Titel: Antworten mit Zitat

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 zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 22.04.2009, 09:58    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 22.04.2009, 17:46    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 22.04.2009, 19:44    Titel: Antworten mit Zitat

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 lächeln
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 22.04.2009, 20:18    Titel: Antworten mit Zitat

Wau feines Teil lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 22.04.2009, 21:23    Titel: Antworten mit Zitat

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 lachen


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 22.04.2009, 21:28    Titel: Antworten mit Zitat

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 lächeln


DIN nich, aber die briten schreiben ihr datum so ;P

und @tpm: lass mich doch ma in ruh flamen Zunge rausstrecken
_________________
"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
Benutzer-Profile anzeigen Private Nachricht senden
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 22.04.2009, 23:35    Titel: Antworten mit Zitat

Warum nicht gleich als DTG?

220958Bapr09
_________________
Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1837
Wohnort: [JN58JR]

BeitragVerfasst am: 22.04.2009, 23:46    Titel: Antworten mit Zitat

Weil ich TDaTF nutze.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
darkinsanity
aka sts


Anmeldungsdatum: 01.11.2006
Beiträge: 456

BeitragVerfasst am: 23.04.2009, 12:12    Titel: Antworten mit Zitat

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 lächeln
_________________
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst -- Steve Wozniak
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 11.08.2009, 19:10    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 11.08.2009, 20:18    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Projektvorstellungen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz