Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Code-Beispiel

Code-Beispiele » Stringfunktionen

SubStr - Fast ein SplitString

Lizenz:Erster Autor:Letzte Bearbeitung:
k. A.Redakteurytwinky 20.08.2010

Dies ist eine neue Version von SubStr, die jetzt auch eine Beschreibung enthält:

'+----------------------------------------------------------------------------------------------+
'|   Header: Bestimmen der Übergabeparameter                                                    |
'|           AnzeigeCheck:|Il1 sind Alt-0124, Großes i, kleines L, Eins   „ä”öüüáߎę֚Üñ±¸©ø°§õ|
Const Author="SubStr.Bas v0181b ©2007 by ytwinky, MD"'                                          |
'|           (Tastenkombination: keine)                                                         |
'|                                                                                              |
'|   Zweck : Fast ein SplitString :D ;-))                                                       |
'+----------------------------------------------------------------------------------------------+
Const CrLf=!"\r\n"
Declare Function SubStr(byVal Liste As String, byVal Trenner As String, byVal Stelle As Integer) As String
Dim i As Integer
Dim As String Liste="a;;bb;;ccc;;dddd;;eeeee;;ffffff", Trenner=";;", s
Print "Len(Liste)=" &Len(Liste) &" Liste=" &Liste
For i=0 To 7
    Print "i=" &i &" " &SubStr(Liste, Trenner, i)
    If Instr(SubStr(Liste, Trenner, i), !"\0")=1 Then ?"nix gefunden.."
Next i
s="Hallo," &CrLf
s+="SubStr entstand aus einer Anfrage von PMedia im FreeBASIC-Chat" &CrLf
s+="Es l„uft mit FB0.16b, mit FB0.17f und auch mit FB0.181f" &CrLf
s+=!"Letztendlich habe ich CharCount.Bas daf\129r umgebaut :D" &CrLf
s+="Parameter:" &CrLf
s+="Liste   ein String, der die Daten enth„lt und bestimmte Trennzeichen" &CrLf
s+="Trenner ein String, der die Trennzeichen enth„lt" &CrLf
s+=!"Stelle  ein Integer, der die gew\129nschte StringNr angibt(NICHT die Position im String)" &CrLf
s+="Ausgabe:" &CrLf
s+="Leerstring, wenn nicht gefunden" &CrLf
s+=!"gew\129nschte StringNr, ohne Trennzeichen.." &CrLf
s+="Ist im zurckgebenen String ein Chr(0), ist der QuellString beendet," &CrLf
s+="so lassen sich auch LeerStrings identifizieren.. :D" &CrLf
s+="hf.."
For i=0 To 14
    Print "i=" &i &" " &SubStr(s, CrLf, i)
    If InStr(SubStr(s, CrLf, i), !"\0")=1 Then Print "nix gefunden.."
Next
    Print "i=" &i &" " &SubStr(s, CrLf, i)
    If InStr(SubStr(s, CrLf, i), !"\0")=1 Then Print "nix gefunden.."
Sleep

Function SubStr(byVal Liste As String, byVal Trenner As String, byVal Stelle As Integer) As String
  Dim As Integer Aktuell=0, Ooops, ltr=Len(Trenner), Vorige=1, Gefunden
  If Stelle=0 Or Liste="" Or Trenner="" Or Instr(Liste, Trenner)=0 Then Return ""
  Do
    Ooops=Gefunden
    Gefunden=Instr(Gefunden+1, Liste, Trenner)
    Aktuell-=Gefunden<>0
    If Aktuell=Stelle-1 Then Vorige=Gefunden+ltr
    If Aktuell=Stelle Then Exit Do
  Loop Until Gefunden=0
  If Stelle>Aktuell Then Return Mid(Liste, IIF(Stelle-Aktuell>1, Len(Liste)+1, Ooops+ltr)) &Chr(0)
  Return Mid(Liste, Vorige, Gefunden-Vorige)
End Function

Der alte Code zeigt nicht so schön, was SubStr alles macht..


Zusätzliche Informationen und Funktionen
  • Das Code-Beispiel wurde am 05.10.2007 von Redakteurytwinky angelegt.
  • Die aktuellste Version wurde am 20.08.2010 von Redakteurytwinky gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen