| |
|
|
- page 1 - |
|
Julian Schmidt | un umgekehrter Substr$-Befehl avec dem on pas, comment chez Substr%(), den N-ten Teilstring herausfiltert, mais den index(N) des Teilstrings S2 des Cordes S1 herausfindet
Etwa so: KompilierenMarqueSéparationVar Suchtext$ = MkStr$("A|B|C|D|E|F",31)
print "Durchsuchter-String: " + Suchtext$
print "Gesuchter-Teilstring: B\n"
print "Ergebnis: "+STRINGIndex(Suchtext$,-1,"|","B")
waitinput
Proc StringIndex
Parameters Text$,Start%,Trenn$,Teil$
Declare A$[],Ergebnis$
A$[] = Explode(Text$,Trenn$,Start%)
Repeat
Start% = IndexOf(A$[],Teil$,Start%+1)' Nullbasierend
Case Start% = -1:Break
Ergebnis$ = Ergebnis$+If(Ergebnis$="","","|")+Str$(Start%+1)
Until Start% = -1
Return Ergebnis$
ENDPROC
KompilierenMarqueSéparation Habe cet Routine dans une projet déjà quelques male nécessaire. Ist vlt sinnvoll cet dans XProfan einzubauen.
Nachtrag: par Jörgs-Aider améliorer Voir le texte source eingefügt. |
|
|
| |
|
|
|
« cette Beitrag wurde comme Solution gekennzeichnet. » |
|
Jörg Sellmeyer | so KompilierenMarqueSéparationWindow 1000,400
Var Suchtext$ = MkStr$("A|B|C|D|E|F|A|B|C|D|E|F|A|B|C|D|E|F",50)
print "Durchsuchter-String: " + Suchtext$
print "Gesuchter-Teilstring: 1\n"
Print "Taste drücken"
WaitKey
Var time&=&gettickcount
SubstrNr1(Suchtext$,"B","|")
print "Gebrauchte Zeit: "+Str$(&gettickcount-time&)+" ms\n"
time&=&gettickcount
StringIndex(Suchtext$,-1,"|","B")
print "Gebrauchte Zeit: "+Str$(&gettickcount-time&)+" ms"
waitinput
Proc SubstrNr1
Parameters S1$,TeilString$,Trennzeichen$
Declare Ergebnis$
Whileloop Len(S1$, Trennzeichen$)
Case (SubStr$(S1$,&loop,Trennzeichen$)=TeilString$) : Ergebnis$=Ergebnis$+If(Ergebnis$="","","|")+Str$(&loop)
EndWhile
Return Ergebnis$
EndProc
Proc StringIndex
Parameters Text$,Start%,Trenn$,Teil$
Declare A$[],Ergebnis$
'$D "",text$
A$[] = Explode(Text$,Trenn$,Start%)
Repeat
Start% = IndexOf(A$[],Teil$,Start%+1)' Nullbasierend
Case Start% = -1:Break
Ergebnis$ = Ergebnis$ + Str$(Start%) + ","
Until Start% = -1
Return Ergebnis$
ENDPROC
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 05.08.2012 ▲ |
|
|
|
|
|
Dieter Zornow | pourquoi prends du pas simple
teil& = Len(S1$, "|")
le nombre de Teilstrings trop bekommen ? |
|
|
| XProfan X2Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2 | 03.08.2012 ▲ |
|
|
|
|
Julian Schmidt | était Je ne bekannt cela on Len() aussi so verwenden peux, quoique es gar pas so récente trop seien scheint. merci! j'ai par toi wieder quoi gelernt. |
|
|
| |
|
|
|
Jörg Sellmeyer | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 03.08.2012 ▲ |
|
|
|
|
Julian Schmidt | Hättest du plus que qui Überschrift durchgelesen wüsstest du cela dein Beitrag rien zum Fil beisteuert ^ ^ |
|
|
| |
|
|
|
Jörg Sellmeyer | Hättest du une passenderen Titel gewählt, hätte on sich pas par deinen hilfetexttypischen Einleitungssatz tracasser doit, jusqu'à on ihn versteht. KompilierenMarqueSéparation |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 05.08.2012 ▲ |
|
|
|
|
Julian Schmidt | Jup, aussi une Alternative, allerdings listet cet toujours seulement une livre. la plus part du temps reicht es, allerdings quelquefois braucht on aussi alle Pfunde. on pourrait deinen Voir le texte source aussi dahingehend modifizieren. Ist allerdings pas qui Mühe wert. |
|
|
| |
|
|
|
Jörg Sellmeyer | quoi ist car avec Dir à l'attaque? la hâte du 'ne Giftnatter gefrühstückt ou bien pourquoi motzt du ici so rum. je zeige dir, comment du une Code dans 2 Zeilen statt 10 écris et du meckerst ici rum. quand même ist ici aussi qui Mehrfachsuche encore pour den reste qui Gemeinde: KompilierenMarqueSéparation |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 05.08.2012 ▲ |
|
|
|
|
Julian Schmidt | chez mir sommes 4 Zeilen toujours moins comme 6. Aussi scheint dein Code et avec ca Murx trop son. il fonctionne allerdings quelque chose plus rapide par KompilierenMarqueSéparationCLS
print "Durchsuchter-String: 1|2|3|1|2|4|5|1"
print "Gesuchter-Teilstring: 1\n"
Var time&=&gettickcount
print "Ergebnis durch Proc 1: "+SubstrNr1("1|2|3|1|2|4|5|1","1","|")
print "Gebrauchte Zeit: "+Str$(&gettickcount-time&)+" ms\n"
time&=&gettickcount
print "Ergebnis durch Proc 2: "+SubstrNr2("1|2|3|1|2|4|5|1","1","|")
print "Gebrauchte Zeit: "+Str$(&gettickcount-time&)+" ms"
waitinput
Proc SubstrNr1
Parameters S1$,TeilString$,Trennzeichen$
Declare Ergebnis$
Whileloop Len(S1$, Trennzeichen$)
Case (SubStr$(S1$,&loop,Trennzeichen$)=TeilString$) : Ergebnis$=Ergebnis$+If(Ergebnis$="","","|")+Str$(&loop)
EndWhile
Return Ergebnis$
EndProc
Proc SubstrNr2
Parameters S1$,TeilString$,Trennzeichen$
Declare A$[],Index%,Ergebnis$
A$[] = Explode(S1$,Trennzeichen$)
While Index% > -1
Index% = IndexOf(A$[],TeilString$,Index%+1)
Case Index%>-1 : Ergebnis$=Ergebnis$+If(Ergebnis$="","","|")+Str$(Index%+1)
EndWhile
Return Ergebnis$
ENDPROC
|
|
|
| |
|
|
|
Jörg Sellmeyer | ensuite klär mich doch la fois sur den Murx sur et teste cela ganze la fois avec einem String de 10000 marque ou bien so. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 05.08.2012 ▲ |
|
|
|
|
Julian Schmidt | |
|
| |
|
|
|
Jörg Sellmeyer | so KompilierenMarqueSéparationWindow 1000,400
Var Suchtext$ = MkStr$("A|B|C|D|E|F|A|B|C|D|E|F|A|B|C|D|E|F",50)
print "Durchsuchter-String: " + Suchtext$
print "Gesuchter-Teilstring: 1\n"
Print "Taste drücken"
WaitKey
Var time&=&gettickcount
SubstrNr1(Suchtext$,"B","|")
print "Gebrauchte Zeit: "+Str$(&gettickcount-time&)+" ms\n"
time&=&gettickcount
StringIndex(Suchtext$,-1,"|","B")
print "Gebrauchte Zeit: "+Str$(&gettickcount-time&)+" ms"
waitinput
Proc SubstrNr1
Parameters S1$,TeilString$,Trennzeichen$
Declare Ergebnis$
Whileloop Len(S1$, Trennzeichen$)
Case (SubStr$(S1$,&loop,Trennzeichen$)=TeilString$) : Ergebnis$=Ergebnis$+If(Ergebnis$="","","|")+Str$(&loop)
EndWhile
Return Ergebnis$
EndProc
Proc StringIndex
Parameters Text$,Start%,Trenn$,Teil$
Declare A$[],Ergebnis$
'$D "",text$
A$[] = Explode(Text$,Trenn$,Start%)
Repeat
Start% = IndexOf(A$[],Teil$,Start%+1)' Nullbasierend
Case Start% = -1:Break
Ergebnis$ = Ergebnis$ + Str$(Start%) + ","
Until Start% = -1
Return Ergebnis$
ENDPROC
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 05.08.2012 ▲ |
|
|
|