Problem beim String splitten [GELÖST]

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

BadDeath

Betreff: Problem beim String splitten [GELÖST]

BeitragSa, Feb 02, 2008 22:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Nabend, da ich hier nur Split-Funktionen nur für BlitzMax fand, und für meine Zwecke so umfrangreich waren, habe ich mich selbst dran gesetzt.

Mein Problem:

Ich möchte eine eine Zeile aus einer Textdatei einlesen, was ja auch ohne Probleme geht, aber das splitten geht nicht. Eine Zeile enthält nur zwei Teile, getrennt durch ein "|" - also zum Beispiel "Test|1234".
Nun geht das mit Zahlen auch recht gut, aber wenn Buchstaben drin sind, verschluckt meine Funktion gleich alles danach, obwohl Zeichen wie + oder - auch nur am Anfang eines Teils stehen dürfen, aber nicht mitten drin...

Hier der Code - hoffentlich könnt ihr mir helfen:

Code: [AUSKLAPPEN]
Zeile$="5588|-112259"

Function Links(Stri$)
   For Lef = 1 To Len(Stri$)
      If Mid(Stri$,Lef,1) <> "|" Then
         StrLeft$ = StrLeft$ + Mid(Stri$,Lef,1)
      Else
         Exit
      End If
   Next
   
   Return Stri$
End Function

Function Rechts(Stri$)
   For Rech = 1 To Len(Stri$)
      If Mid(Stri$,Rech,1) = "|" Then Stri$ = Mid(Stri$,rech+1,Len(Stri$))
   Next
   
   Return Stri$
End Function

Print Links(Zeile$)
Print Rechts(Zeile$)

WaitKey
End
  • Zuletzt bearbeitet von BadDeath am So, Feb 03, 2008 0:11, insgesamt einmal bearbeitet

kriD

BeitragSa, Feb 02, 2008 23:50
Antworten mit Zitat
Benutzer-Profile anzeigen
schau dir vielleicht mal den befehl "Instr" an.
er liefert dir die zeichenposition eines zeichens zurück, insofern es in dener zeile enthalten ist.
also:
Code: [AUSKLAPPEN]
left$=Left (Zeile$, Instr (Zeile$,"|"))
right$=Mid (Zeile$, Instr (Zeile$,"|"),len (Zeile$))


MfG kriD
Wenn ich du wäre, wäre ich lieber ich!
 

BadDeath

BeitragSo, Feb 03, 2008 0:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die schnelle Hilfe, das viel mir garnicht ein mit InStr, da ich öfter mit VB 6 arbeite und Split gleich drin ist ^^

Ich musste nur noch 2 Kleinigkeiten ändern:

Code: [AUSKLAPPEN]
Zeile$="558a8|112259"

Print Left(Zeile$, Instr (Zeile$,"|")-1)
Print Mid(Zeile$, Instr (Zeile$,"|")+1,Len (Zeile$))

WaitKey
End


Danke nochmal

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group