Right oda so

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

ozzi789

Betreff: Right oda so

BeitragFr, Jan 25, 2008 23:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi

Ich möchte aus nem String ne "info" rauslesen also


form$=Right$(name$,3)
If form$ = "/red"

Was so sehr gut geht .
Doch wen die Beschreibungen nach dem / länger sind als 3 buchstaben geht das ja ned.

Wie kann ich jetz genau beim / anfangen ?

Thx oz
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Xeres

Moderator

BeitragFr, Jan 25, 2008 23:50
Antworten mit Zitat
Benutzer-Profile anzeigen
mit LEN die länge des Strings feststellen und dann von rechts länge-1 auslesen.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

ChristianK

BeitragFr, Jan 25, 2008 23:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit "Instr" kannst du die Position des Zeichens im String herausfinden. Also einfach position = Instr( name$, "/" )
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

ozzi789

BeitragFr, Jan 25, 2008 23:52
Antworten mit Zitat
Benutzer-Profile anzeigen
location = Instr( name$,"/",1)
form$=Left$(name$,location)

Ich dachte eher so wat Confused

Edit : sry zu spät

Also wie genau Embarassed ?
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Silver_Knee

BeitragFr, Jan 25, 2008 23:54
Antworten mit Zitat
Benutzer-Profile anzeigen
ich für meinen teil nutze weder Right noch left. Ich nutze wenn dann MID da ist nämlich beides drinne:
MID(text,start,[länge=bis zum ende])

Bei deinem Problem Speziell würde ich mir schnell aus irgendeinem Projekt von mir Between holen.
Code: [AUSKLAPPEN]
Function Between$(s$,b$,e$,fl=1)
   f=Instr( s,b,fl )+Len(b)
   l=Instr( s,e,f )
   r$=Mid( s,f,l-f)
   Return r
End Function


Between(text,find1,find2,[start=1])=Zwischen find1 und find2

In deinem Fall:
Code: [AUSKLAPPEN]
com$=Between(name+" ","/"," ");Gib zurück was zwischen / und dem nächsten Leerzeichen steht.
;damit auch wirklich ein leer zeichen da ist, hab ich an name noch eins dran gehängt.
if com$="red" ....
if com$="green"...

ozzi789

BeitragFr, Jan 25, 2008 23:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke das gibt Sinn .. doch ich kann ned recht umsetzn -.-

Code: [AUSKLAPPEN]
Graphics 800,600,16,2


filein = ReadFile("c:\test.txt")

Repeat

name$ = ReadLine (filein)
 
form$=Between (name$+" ","/"," ")

If form$ = "red"
Color 255,0,255
Print name
EndIf 

If form$ = "blue"
Color 0,255,0
Print name
EndIf

If form$ = "green"
Color 0,255,0
Print name
EndIf

If Not form$ = "green" Or form$ = "red" Or form$ ="blue" Print name



Until Eof(filein) = 1
WaitKey
CloseFile(filein)

End

Function Between$(s$,b$,e$,fl=1)
f=Instr( s,b,fl )+Len(b)
l=Instr( s,e,f )
r$=Mid( s,f,l-f)
Return r
End Function



Hia die vereinfachte Version.. was mache ich falsch ?

Man nix geht Sad
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

skey-z

BeitragSa, Jan 26, 2008 0:48
Antworten mit Zitat
Benutzer-Profile anzeigen
zeig uns doch mal den inhalt der datei, dann kann man vielleicht ehr sagen, den im code sehe ich im moment keinen Fehler
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

ozzi789

BeitragSa, Jan 26, 2008 0:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Test 123 red/red
Testytest 234 blue/blue
lol 345 green/green


So sieht die Txt datei aus

EDIT:

Test 123 red / red
Testytest 234 blue / blue
lol 345 green / green

bin ich blöd so wär richtig
Embarassed Embarassed

Tortzdem danke Very Happy
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Silver_Knee

BeitragSa, Jan 26, 2008 3:08
Antworten mit Zitat
Benutzer-Profile anzeigen
wie solls denn am ende aussehen?

ozzi789

BeitragSa, Jan 26, 2008 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Silver_Knee hat Folgendes geschrieben:
wie solls denn am ende aussehen?


Wie meinst du das jetz ?
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Eingeproggt

BeitragSa, Jan 26, 2008 22:56
Antworten mit Zitat
Benutzer-Profile anzeigen
ozzi, Ich würd sagen du hast die "Between" Funktion falsch angewandt. Da ich aber nich tweiß, wie es richtig gehört, hier mal meine Lösung. So gehts:

Code: [AUSKLAPPEN]
form$=Trim(Right(name$,Len(name$)-Instr(name$,"/")))


mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

ozzi789

BeitragSa, Jan 26, 2008 23:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke
Habs jetz so gelöst

Code: [AUSKLAPPEN]
 
form$=Between (name$+" "," / "," ")

location = Instr( name$,"/",1)-1
If location < 1 Then location = 0
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group