Seite 2 von 2

Verfasst: 29.09.2004 21:44
von lrhe
Faszinierend!
Zum LL-Bsp.:
Mit dem manuellen verändern des Modus laufen statt der if-zweige jeweils die else-zweige und demonstrieren, dass Anweisungen wie FirstElement nicht nur auf das element in der liste setzen, sondern als 'zubrot' den zeiger dazu liefern, den kann man dieser speziellen prozedur - die ja einen zeiger erwartet, auch gleich direkt übergeben ?!
Ist der offset 8 bei allen strukturen so oder muss der bestimmt werden (hab aus meinem vielen lesen und bsp ansehen noch so die funktion 'sizeof' im kopf)?

Weder das array noch die linkedlist sind dann aber dafür geeignet, in einer prozedur neue elemente hinzuzufügen (im sinne von dynamisch, da die zahl hinzukommender noch nicht klar ist und somit eine vordimensionierung eines arrays etwas übel wäre). Oder kann man in pb ein array dynamisch REDIMensionieren? Da hab ich nix gefunden. Ich will eigentlich einfach nur eine prozedur schreiben, die eine übergebene liste von strings um strings ergänzt. es sollen halt auch verschiedene listen übergeben werden und der speicherbedarf kann sehr hoch werden. Ich probiers nun mal mit einem string, in den ich das ganze hintereinander mit token getrennt packe, hoffe, dass ich da auf kein size-limit stoße (oder doch 64KB?). Das ganze kostet bei vielen einzeldaten natürlich leider zeit. Genauso wäre es zeitaufwendig, wenn man das prozedurergebnis als linkedlist oder array mittels schrittweisem durchkrabbeln einer bestehenden liste/array hinzufügen würde.
Fällt dir/euch da was besseres ein?
Viele grüße,
Lutz

Verfasst: 29.09.2004 22:11
von NicTheQuick
Ich programmiere dir mal eine kleine LinkedList. Wenn ich eine TreeLinkedList schaffe, schaffe ich auch sowas einfaches.

///Edit:
Hier ist nun das Ergebnis. Ich habe das ganze bei Codes, Tipps & tricks ausgestellt.
Wenn du noch was bestimmtes brauchst. Ich progge es gerne dazu.

Verfasst: 30.09.2004 01:25
von lrhe
Das ging aber fix bei dir, werd' wohl etwas brauchen um das nachzuvollziehen - vor allem auch, weil es etliche neuere pb-funktionen enthält, als mein altes 3.3 hergibt! Hoff' das ich die rausbasteln kann.
Gruß, Lutz

Verfasst: 30.09.2004 07:00
von NicTheQuick
Achja, das hatte ich vergessen. Im Grunde solltest bei dir aber nur folgendes Fehlen:
  1. [c]AllocateMemory()[/c] hat falsche Parameter. Ersetze die Funktion mit [c]GlobalAlloc_()[/c].

    Code: Alles auswählen

    AllocateMemory(Size.l)
    GlobalAlloc_(#GMEM_FIXED, Size.l)
  2. [c]FreeMemory()[/c] muss jetzt auch ausgetauscht werden. Ersetze die Funktion mit [c]GlobalFree_()[/c].

    Code: Alles auswählen

    FreeMemory(*Mem)
    GlobalFree_(*Mem)
  3. Es fehlen sicherlich zwei Strukturen. Die findest du hier

    Code: Alles auswählen

    Structure BYTE
      b.b
    EndStructure
    Structure LONG
      l.l
    EndStructure
Falls noch etwas fehlt, meld dich einfach nochmal.