'+--------------------------------------------------------------------------------------------+ '| Header: Bestimmen der Übergabeparameter | '| AnzeigeCheck:|Il1 sind Alt-0124, Großes i, kleines L, Eins „ä”öüáߎę֚Üñ±¸©ø°§õ| Const Author="SubStr.Bas v0211f ©2010 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 Var Liste="a;;bb;;ccc;;dddd;;eeeee;;ffffff", Trenner=";;", s="Hallo," &CrLf, i=0 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 Print "nix gefunden.." Next 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.21.1" &CrLf s+="Letztendlich habe ich CharCount.Bas dafr 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 gewnschte StringNr angibt(NICHT die Position im String)" &CrLf s+="Ausgabe:" &CrLf s+="Leerstring, wenn nicht gefunden" &CrLf s+="gewnschte 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.." GetKey Function SubStr(byVal Liste As String, byVal Trenner As String, byVal Stelle As Integer) As String Var Aktuell=0, Ooops=0, ltr=Len(Trenner), Vorige=1, Gefunden=0 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