Seite 6 von 6

Verfasst: 04.12.2006 15:30
von Xaby
Denke ich auch,

hatte ja oben im Code noch meine Ickse (x) drin.

Wie könnte ich nur einzelne Elemente swappen?

Ich hab genügend Ideen, wie ich mein Projekt auch so fertig bekomme.
Aber wäre trotzdem mal interessant.

Dank dir. :allright:

Verfasst: 04.12.2006 18:35
von mk-soft
Swap funktioniert nur auf ein gesamtes Array oder auf ein einzelnes Element in einer Structure.

Swap für eine gesamte Strukture

Code: Alles auswählen

Procedure SwapX(*p1, *p2, len)

  Protected *buffer
  
  *buffer = AllocateMemory(len)
  CopyMemory(*p1, *buffer, len)
  CopyMemory(*p2, *p1, len)
  CopyMemory(*buffer, *p2, len)
  FreeMemory(*buffer) 

EndProcedure


Structure udtTest
  lVal.l
  text.s
EndStructure

Dim a.udtTest(1000)
Dim b.udtTest(1000)

a(1000)\text = "A"
b(1000)\text = "B"

a(1)\text = "A"
b(1)\text = "B"

; element tauschen
SwapX(a(1), b(1), SizeOf(udtTest))
; ganze liste tauschen
Swap a(),b()

Debug a(1)\text + b(1)\text
Debug a(1000)\text + b(1000)\text
FF :wink:

Schneller geht es mit Index zu arbeiten , Dim Index.l(1000), und in diesen dann das Sortierergebnis speichern.

Verfasst: 04.12.2006 18:43
von Xaby
So ähnlich würde dann auch eine Element-Kopier-Funktion aussehen oder?

Und dann kann man es in einer Schleife schreiben.

:allright: :mrgreen:

Code: Alles auswählen

 CopyMemory(*p1, *p2, len) 
Wäre also der CopyStructureElement(Array1(Pos), Array2(Pos),WieWatWer)
Befehl.

Und in einer Schleife könnte man so das ganze Array kopieren.


Und wieso hat PB da nichts hauseigenes /:->


Naja, jetzt wissen wir ja, wie es geht.


Dann nur noch die Frage, wie man eine dynamische Struktur machen kann.

Weiß da jemand was? :shock:

Verfasst: 04.12.2006 18:57
von mk-soft
Dynamische Strukturen die sich erst zur laufzeit des Progamm ergeben kann man nur aufwendig mit Memory Befehlen und mit Poke und Peek Behehl reallisieren.

TIPP: Mit eine unsichtbaren ListIconGadget arbeiten und mit PureLVSORT (Gnozal) bearbeiten

FF :wink:

EDIT: Ein mit Dim erzeugtest Array ist immer ein zusammen hängender speicher.

CopyMemory(*p1, *p2, SizeOf(Structure) * Elemente)

Verfasst: 04.12.2006 19:03
von Xaby
Appropo Gnozal,

der jaPBe ist geil, keine Frage.

Aber einige seiner Includes scheinen noch nicht auf PB4.0 angepasst geworden zu sein. Zu mindest hatte ich bei der System-Include und einigen für's Web, der MatheDings ... Fehlermeldungen.
Da ist mir etwas die Lust vergangen.

Wie sieht es eigentlich auch aus mit zusätzlichen Includes, wenn man komerzielle Programme machen möchte? Da muss man dann doch sicherlich ganz genau wissen, wofür die erlaubt sind und was nur für FreeWare geht und so.

Soweit ich weiß, sind doch GNUs immer frei für freie Dinge.
Aber nicht ohne Einschränkungen für Bezahlzeugs gemacht.

Bin mir da aber nicht sicher. Hab auch noch nicht jede Lizens durchgelesen.

:roll:

Verfasst: 04.12.2006 19:09
von mk-soft
Gnozal Is Top

http://people.freenet.de/gnozal/

Steht ganz unten:
All these files are free for personal and commercial use (PB Windows only).
Habe ein Lesezeichen zu Ihn angelegt. Sehr zu empfehlen.

FF :allright: [/b]

Verfasst: 04.12.2006 19:13
von Xaby
Was macht er eigentlich?

Wieso ist er so großzügig und weshalb hat er keinen PayPal-Knobb?

Ich würde ihn so mit Cents zuspenden :bounce:

An dieser Stelle
:praise: GNOZAL ... wie lieben dich :praise: :praise:
(Nachtrag: Ich will ein Kind von dir :mrgreen: )

Bild
:allright:

Verfasst: 04.12.2006 20:20
von #NULL
ist zwar unwichtig, aber habt
ihr mal den counter auf gnozals
seite beachtet... :lol: :mrgreen:

Verfasst: 04.12.2006 21:39
von Xaby
Ich glaub, das würde mein Counter auch machen, wenn die maximal darstellbare Zahl überschritten ist :mrgreen:


pssst, hab aber gar keinen Counter, wollt mir die Schmach nicht geben.
/:->

[EDIT]@MK-Soft (Beitrag unter mir hier)
Ach dein Counter zählt doch auch, wenn ich bei mir auf [F5] drücke
:? :roll: :oops: :freak: :| :allright: :o :mrgreen: :bluescreen:

Verfasst: 04.12.2006 21:52
von mk-soft
Psssst.

292 besuche