Structure an andere Structure kopieren

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag 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:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag 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.
Zuletzt geändert von mk-soft am 04.12.2006 18:44, insgesamt 1-mal geändert.
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag 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:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag 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)
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag 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:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag 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]
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag 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:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

ist zwar unwichtig, aber habt
ihr mal den counter auf gnozals
seite beachtet... :lol: :mrgreen:
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag 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:
Zuletzt geändert von Xaby am 05.12.2006 01:11, insgesamt 2-mal geändert.
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Psssst.

292 besuche
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Antworten