Werte in Array austauschen (hoch/runter)

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Werte in Array austauschen (hoch/runter)

Beitrag von Delle »

Hallo,

es existieren 20 StringGadgets, deren Inhalt gleichzeitig auch in einem Array gespeichert sind.

Nun soll es möglich sein, dass man z.B. einen Befehl ausführt:

"Feld 0 soll ein Feld runter"
-> Feld 0 landet in Feld 1 und Feld 1 rutscht automatisch auf Feld 0

"Feld 3 soll ein Feld hoch"
-> Feld 3 landet in Feld 2 und Feld 2 rutscht automatisch auf Feld 3

Code: Alles auswählen

Dim Feld.s(20) 

Feld(0)="dateiname1.txt"
Feld(1)="dateiname2.txt"
Feld(2)="dateiname3.txt"
Feld(3)="dateiname4.txt"
; usw.

Austausch(1,"hoch")

Procedure Austausch(Was.s,Aktion.s)

; Feldwerte zwischenspeichern
; Felder austauschen (und Checks ob nicht Feld 0 "hoch" soll usw.)
; StringGadgets neu befüllen

EndProcedure
Ist das etwa der richtige Weg, oder geht es intelligenter?
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

ne Linked List statt Array ..

da gibts dann auch ein Swapelements()



Ansonsten wäre es intelligenter ins Freibad zu gehen
statt vorm PC ArraySpäßchen zu coden :)
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

bobobo hat geschrieben:da gibts dann auch ein Swapelements()
Swap gibt's auch für Arrays.

@Delle:

Code: Alles auswählen

Swap Feld(0), Feld(1)
Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Delle
Beiträge: 1130
Registriert: 10.05.2005 22:48

Beitrag von Delle »

Lists gehen leider nicht, da ich immer konkret auf die Arrays zugreifen muss...

Okay Swap() geht, aber nur mit PB4 ;)

Demzufolge muss ich eben nur noch prüfen, ob nicht Feld 0 z.B. hochgeschoben werden soll oder?
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

Jau .. auf die ArrayGrenzen musst Du selber achten (sobald der Debugger nicht mehr mitläuft)
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Okay Swap() geht, aber nur mit PB4

du hast keinen ton gesagt, dass du für 3.9x fragst.. o_O

wenn du "manuell" swappen willst, brauchst du nen zwischenspeicher:

Code: Alles auswählen

swap$ = Feld$(0)
Feld$(0) = Feld$(1)
Feld$(1) = swap$
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Okay Swap() geht, aber nur mit PB4 ;)

trage bitte Deine PB-Version in die Signatur ein.

Grüße ... Kiffi
a²+b²=mc²
Antworten