strings zurück geben?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Tpro

Betreff: strings zurück geben?

BeitragDo, Jan 31, 2008 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Da ich in letzter Zeit immer wieder Functionen prauche die eigentlich einen string zurückgeben sollten ist mir aufgefallen das das nicht zu functionieren scheint....

liegt das an mir oder an B3D?

Hier noch ein kleiner Bspcode:

Code: [AUSKLAPPEN]

Function get_name$(tex$)
   i=0
   i=Instr(tex,"\")   
   If i<>0 Then get_name(Right(tex,Len(tex)-i))
   If i=0  Then   Return tex$
End Function


mit der Function wollte ich aus einem Eingegeben Speicherort nur den Teil zurückgeben der hintem letzten "\" steht. Das funktioniert auch soweit richtig ( mit Debuglog getestet) nur der Rückgabewert ist 0.
Der Optimist: "Das Glas ist halb voll"
Der Pessimist: "Das Glas ist halb leer"
Der Ingenieur: "Das Glas ist doppelt so groß wie es sein müsste"

BladeRunner

Moderator

BeitragDo, Jan 31, 2008 22:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Function get_name$(tex$)
   i=0
   i=Instr(tex,"\")   
   If i<>0 Then
      tex = get_name(Right(tex,Len(tex)-i))
   EndIf
   Return tex$
End Function

a$ = get_name("peter\karl\tex\wurgs")

Print a
WaitKey()


Der Fehler lag bei dir, an 2 Stellen: Erstens muss bei dem rekursiven Aufruf die Variable geändert werden.
Zweitens musst du Tex auch returnen. Nur in der obersten Rekursionsebene ein return auszuführen wie du es wohl vorhattest geht nicht, denn jedes return springt nur eine Ebene zurück Wink

So wie ich es ausgebessert habe wird das Ergebnis durch alle Instanzen weitergegeben.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Tpro

BeitragDo, Jan 31, 2008 22:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke...

da denk ich mir schon so ne tolle function aus und dan mach ich son blöden fehler....
Der Optimist: "Das Glas ist halb voll"
Der Pessimist: "Das Glas ist halb leer"
Der Ingenieur: "Das Glas ist doppelt so groß wie es sein müsste"

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group