Code-Beispiel
SubStr - Fast ein SplitString
Lizenz: | Erster Autor: | Letzte Bearbeitung: |
k. A. | ytwinky | 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 ytwinky angelegt.
- Die aktuellste Version wurde am 20.08.2010 von ytwinky gespeichert.
|
|