Variable teilen...!?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

paD

Betreff: Variable teilen...!?

BeitragSa, Nov 05, 2005 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,

Sag mal.. gibts bei Blitz3D kein Befehl der eine Variable zerlegen kann?
Weil ich habe Folgene Variable:

pl="XX|124|456|5|22|17"

allerdings kann der inhalt zwischen den "|" schonmal kürzer oder länger sein, ist also nie bestimmt gleich lang..

Gibt es da kein befehl der mir die Var splittet?

paD
http://www.spaceman-world.de
 

Apocalyptic

BeitragSa, Nov 05, 2005 14:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein, kann man aber leicht selber programmieren.

Hilfreich dafür:

ql:Len
ql:Instr
ql:Mid
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]
 

paD

BeitragSa, Nov 05, 2005 14:06
Antworten mit Zitat
Benutzer-Profile anzeigen
hab mir die befehle schon angeschaut, kann aber nicht wirklich damit was anfangen..
http://www.spaceman-world.de
 

Apocalyptic

BeitragSa, Nov 05, 2005 14:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Du willst also einen fertigen Code? Tsts... dann lernst du ja nie was...
Spoiler:

Msg$="Bla|Blubb|123"

For i=0 To 2
Print GetMsgPart(Msg,i)
Next

WaitKey()

Function GetMsgPart$(Msg$,Nr%,Char$="|")

Pos1=1

Repeat

Pos2=Instr(Msg,Char,Pos1+1)

If Pos=Nr Or Pos2=0 Then Exit

Pos=Pos+1

Pos1=Instr(Msg,Char,Pos2)+1
Forever

If Pos2=0 Then Pos2=Len(Msg)+1

Return Mid(Msg,Pos1,Pos2-Pos1)
End Function

Wink
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Nov 05, 2005 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier mal was einfaches ...
BlitzBasic: [AUSKLAPPEN]
pl$=\"XX|124|456|5|22|17\" 
;
;
;
Dummy$=pl$
;an welcher stelle steht das 1. Zeichen \"|\"
PosI= Instr(Dummy$,\"|\") ;= 3
;den Teil bis \"|\" in eine neue var speichern
A1$= Left (Dummy$,PosI - 1) ; = \"XX\"
;In Dummy den Rest des Strings speichern!
Dummy$ = Mid(Dummy$,PosI + 1) ;=\"124|456|5|22|17\"
;
; Wiederholung bis alle eingelewsen sind
;an welcher stelle steht das 1. Zeichen \"|\"
PosI= Instr(Dummy$,\"|\")
;den Teil bis \"|\" in eine neue var speichern
A2$= Left (Dummy$,PosI - 1); = \"124\"
;In Dummy den Rest des Strings speichern!
Dummy$ = Mid(Dummy$,PosI + 1);=\"456|5|22|17\"

;usw...


Das läßt sich gut in eine Fuction packen!
Experimentiere damit, dann lernste was dabei...

EDIT:
Embarassed war ein kleiner Fehler drinn, habs geändert!
[BB2D | BB3D | BB+]
  • Zuletzt bearbeitet von Rallimen am Sa, Nov 05, 2005 17:26, insgesamt einmal bearbeitet
 

Florian

BeitragSa, Nov 05, 2005 14:50
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]


pl$=\"XX|124|456|5|22|17\"
VarTeilen(Pl$)
WaitKey

Function VarTeilen(Var$)
Var$=Var$+\"|\"
Pos=Instr(Var$,\"|\")
While Pos<>0
Print Mid$(Var$,1,Pos-1)
Var$=Mid$(Var$,Pos+1)
Pos=Instr(Var$,\"|\")
Wend
End Function
 

paD

BeitragSa, Nov 05, 2005 14:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Rallimen hat Folgendes geschrieben:
Hier mal was einfaches ...
BlitzBasic: [AUSKLAPPEN]
pl$=\"XX|124|456|5|22|17\"
;
;
;
Dummy$=pl$
;an welcher stelle steht das 1. Zeichen \"|\"
PosI= Instr(Dummy$,\"|\") = 3
;den Teil bis \"|\" in eine neue var speichern
A1$= Left (Dummy$,PosI - 1) ; = \"XX\"
;In Dummy den Rest des Strings speichern!
Dummy$ = Mid(pl$,PosI + 1) ;=\"124|456|5|22|17\"
;
; Wiederholung bis alle eingelewsen sind
;an welcher stelle steht das 1. Zeichen \"|\"
PosI= Instr(Dummy$,\"|\")
;den Teil bis \"|\" in eine neue var speichern
A2$= Left (Dummy$,PosI - 1); = \"124\"
;In Dummy den Rest des Strings speichern!
Dummy$ = Mid(pl$,PosI + 1);=\"456|5|22|17\"

;usw...


Das läßt sich gut in eine Fuction packen!
Experimentiere damit, dann lernste was dabei...



hm..das ganze geht nicht wirklich... der zerlegt mir die variable komplett falsch
http://www.spaceman-world.de
 

paD

BeitragSa, Nov 05, 2005 14:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Florian hat Folgendes geschrieben:
BlitzBasic: [AUSKLAPPEN]


pl$=\"XX|124|456|5|22|17\"
VarTeilen(Pl$)
WaitKey

Function VarTeilen(Var$)
Var$=Var$+\"|\"
Pos=Instr(Var$,\"|\")
While Pos<>0
Print Mid$(Var$,1,Pos-1)
Var$=Mid$(Var$,Pos+1)
Pos=Instr(Var$,\"|\")
Wend
End Function



naja, dann gibt er mir das alles nacheinander aus, aber ich brauch die einzelnen inhalte in verschiedenen variablen...
http://www.spaceman-world.de

skey-z

BeitragSa, Nov 05, 2005 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
dan versuchs mal, die zahlen in ein array zu speichern, nachdem du sie herausgefischt hast, dann hast du alle einzelnen Zahlen in je einer variablen.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

alexsteb

BeitragSa, Nov 05, 2005 17:03
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

pl$=\"XX|124|456|5|22|17\"
Dim zahlen$ (5)
For t = 1 To Len(pl$)
If Mid$(pl$,t,1)<>\"|\" Then zahlen$(a) = zahlen$(a) + Mid$(pl$,t,1) Else a=a+1
Next
End


das als ganz einfaches Beispiel..
In der zahlen$() werden von 0-5 die Zahlen gespeichert.
Wenn man das $ weglässt, dann wird es als Zahl gespeichert, nur die X, sind denn 0. Smile
 

paD

BeitragSa, Nov 05, 2005 18:35
Antworten mit Zitat
Benutzer-Profile anzeigen
danke, das hab ich gebraucht, geht alles..^^
http://www.spaceman-world.de
 

Apocalyptic

BeitragSa, Nov 05, 2005 19:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Nachdem du jetzt sowieso mit Code überhäuft wirst: Sieh dir mal meinen zweiten Post genauer an... Der Smiley ist nicht umsonst da Wink
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group