Seite 1 von 1

String auslesen

Verfasst: 20.02.2008 15:56
von Milchshake
Hi,
was ist am folgendem Code falsch?

Code: Alles auswählen

String$ = "11|22|33"

Procedure Ausgabe(String$)
 AddGadgetItem(1, -1, String$)
 SetActiveGadget(1)

EndProcedure

Procedure RString(String$,Sektor)
If Differenz = 0
Differenz = 1
EndIf 

If Sektor > Test
For Test = 0 To Sektor
Cound = FindString(String$,"|",Differenz)
Differenz + Cound
Cound = 0
Test + 1
Next
EndIf 

If Sektor = Test 
Count = FindString(String$,"|", Differenz) ;Gibt zurück, wo das nächste | liegt
EndIf 

Zwischenspeicher$ = Mid(String$,Differenz,Count)

Zahl = Val(Zwischenspeicher$)

Ausgabe("Differenz: "+Str(Differenz))
Ausgabe("Count: "+Str(Cound))
Ausgabe("Zahl:: "+Str(Zahl))




EndProcedure 



OpenWindow(1,0,0,400,300,"Chat", #PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
 CreateGadgetList(WindowID(1))
  EditorGadget(1, 5, 5, 390, 260, #PB_Editor_ReadOnly)
    AddKeyboardShortcut(1, #PB_Shortcut_Return, 3)
Repeat 
Event = WindowEvent()

   Select EventMenu()
    Case 3
     RString(String$,1)
    EndSelect 

Until Event = #PB_Event_CloseWindow
Es geht darum, den String auszulesen.
Vielleicht bedarft es an einer kurzen erklärung.

11|22|33 <- Sektor1|Sektor2|Sektro3

0 ist Sektor1
1 ist Sektor2
usw...

Wenn ich null bei RString eingebe, funktionier es tadelos,
aber sobald ich 1 oder mehr eingebe, funktioniert es nicht mehr.

Bitte um Hilfe...Danke^^

Verfasst: 20.02.2008 16:06
von DarkDragon
StringField() schon probiert?

Verfasst: 20.02.2008 16:48
von gnasen

Code: Alles auswählen

test.s = "1|22|333|4444|"

For a=1 To CountString(test, "|")
  
  Debug StringField(test, a, "|")
  
Next
Und DarkDragon, kannst du in die Zukunfst posten?

Verfasst am: Heute um 16:06:50

dabei haben wir es erst 15:49 :lol:

Blöde Sommerzeit oder was auch immer das verursacht!

Verfasst: 20.02.2008 16:56
von #NULL
die zeitangaben im forum kannst du im profil ändern.

Verfasst: 21.02.2008 19:13
von Milchshake
Danke :D

Verfasst: 22.02.2008 01:18
von Xaby
Ansonsten in deinem Ursprungscode:

>>>
If Differenz = 0
Differenz = 1
EndIf
<<<

Das kann der Grund sein, wieso es bei 1 funktioniert und sonst nicht.
Du überprüfst ja nur, wenn eine Null drin steht.
Also statt IF, einfach Differenz+1

Dann wird es immer um eins erhöht.

Tja, und sonst halt StringField() :mrgreen: