Seite 1 von 2

Variablen: Werte tauschen und übernehmen

Verfasst: 27.03.2005 20:26
von auxxon
Ich habe hier 2 Fragen(Falls manche wieder mit der Hilfe kommen,Kann ich ihnen sagen dass ich schon geguckt habe aber nichts gefunden habe)

1.Gibt es eine Möglichkeit die Werte zweier Variablen zu tauschen?

2.Gibt es eine Möglichkeit dass ich einer Variable den Wert den Wert einer anderen zuteile?

Ich sehe hier von mal riesigen if-abfragen ab.

Verfasst: 27.03.2005 20:28
von 125
1. tempa=a
tempb=b
a=tempb
b=tempa
2. a=b

:wink:

Verfasst: 27.03.2005 20:54
von NicTheQuick
Das geht auch schneller und unkomplizierter.

Code: Alles auswählen

a.l = 1144
b.l = 2311
a ! b
b ! a
a ! b
Debug a
Debug b
Wenn man das ganze allerdings mit Strings machen möchte, sollte man mal das Forum durchstöbern. Da gab es nämlich schon öfter solche Fragen und auch für Strings gibt es eine Lösung.
Aber suchen musst du dann schon selber. Dafür habe ich gerade wenig Zeit.

Verfasst: 27.03.2005 21:17
von VisualDemon
:wink:

Code: Alles auswählen

a.s = "Test"
b.s = "Hallo"

Debug a
Debug b

tempa.s = a
tempb.s = b
a = tempb
b = tempa

Debug a
Debug b
funzt perfekt


mist hab aber zu spät gesehen dass NicTheQuick inline ASM benutzt. Sorry

Verfasst: 27.03.2005 21:54
von NicTheQuick
VisualDemon hat geschrieben:mist hab aber zu spät gesehen dass NicTheQuick inline ASM benutzt. Sorry
Wo benutze ich denn InlineASM?

Ansonsten funktioniert deine Methode Strings zu vertauschen natürlich perfekt. Es geht sogar noch etwas einfacher und schneller mit dieser Methode. Aber besonders schnell wird es dadurch nicht.

Hier also mit einer Temp-Variablen weniger.

Code: Alles auswählen

a.s = "Test"
b.s = "Hallo"

Debug a
Debug b

tempa.s = a
a = b
b = tempa

Debug a
Debug b
Interessanter wäre es allerdings ohne jegliche temporäre Variablen. Und das geht dann auch nur wieder auf Pointer-Basis und XOr.
Das habe ich auch schonmal gemacht. Aber es geht - soviel ich weiß - auch noch schneller.

Verfasst: 27.03.2005 22:21
von MLK
wie wäre es mit:

Code: Alles auswählen

x$="x_string"
y$="y_string"

!PUSH [v_x$]
!PUSH [v_y$]
!POP [v_x$]
!POP [v_y$]

Debug "x ist nun der " + x$
Debug "y ist nun der " + y$

Verfasst: 27.03.2005 22:30
von Deeem2031
...und wie wäre es mit:

Code: Alles auswählen

x$="x_string"
y$="y_string"

!MOV Eax, [v_y$]
!XCHG [v_x$], Eax
!MOV [v_y$], Eax

Debug "x ist nun der " + x$
Debug "y ist nun der " + y$

Verfasst: 27.03.2005 23:12
von freedimension
Leute, das ist die Anfänger-Ecke!!!

Verfasst: 27.03.2005 23:20
von Deeem2031
Spielverderber!

...und warum sollen Anfänger kein Assembler lernen wollen? Ich wollt auch gleich als ich mit PB angefangen habe auch Assembler können, da ich PB nunmal InlineASM unterstützt und ich das auch ausprobieren wollte. und wenn das die Leute nicht wollen, können 'se die Beiträge ignorieren.

Verfasst: 28.03.2005 01:25
von zigapeda
Könntet ihr den InlineASM code auch erklähren?