Français
Wünsche et Anregungen

Umgekehrter Substr$()-Befehl

 
- 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éparation
Var 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
Var Suchtext$ = $ MkStr("A|B|C|D|E|F",31)
imprimer "Durchsuchter-String: " + Suchtext$
imprimer "Gesuchter-Teilstring: B\n"
imprimer "Ergebnis: "+STRINGIndex(Suchtext$,"|","B")
waitinput

Proc StringIndex

    Paramètres Text$,Trenn$,partie$
    Retour IndexOf(Explode(Text$,Trenn$),partie$)+1

ENDPROC


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.
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
03.08.2012  
 



« cette Beitrag wurde comme Solution gekennzeichnet. »


Jörg
Sellmeyer
so
KompilierenMarqueSéparation
Window 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 X2
Er 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.
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
03.08.2012  
 




Jörg
Sellmeyer
pourquoi pas simple:
KompilierenMarqueSéparation
Print SubStr$("T e s t ver su ch",-2," ")
WaitInpute>
 
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 ^ ^
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
04.08.2012  
 




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
Declare A$[]
A$[] = Explode("1|2|3|1|2|4|5|1","|")
Print IndexOf(A$[],"5")' Nullbasierend
WaitInput<
pre>
 
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.
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
05.08.2012  
 




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
Declare A$[],Index%
A$[] = Explode("1|2|3|5|1|2|5|4|5|1","|")

While Index% > -1

    Index% = IndexOf(A$[],"5",Index%+1)' Nullbasierend
    Print Index%

Wend

Wai
 
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éparation
CLS
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

 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
05.08.2012  
 




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
qui erste Teilstring wird pas erfasst ^ ^
KompilierenMarqueSéparation
Declare A$[],Index%
A$[] = Explode("1|2|3|5|1|2|5|4|5|1","|")

While Index% > -1

    Index% = IndexOf(A$[],"1",Index%+1)' Nullbasierend
    Print Index%

Wend

Wai
 
XProfan X2
Win7 Home Premium, SP1, AMD Athlon(tm) II Neo K125 Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
05.08.2012  
 




Jörg
Sellmeyer
so
KompilierenMarqueSéparation
Window 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  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

14.630 Views

Untitledvor 0 min.
Thomas Zielinski26.01.2023
H.Brill12.10.2022
Jörg Sellmeyer15.05.2018
Vgdd05.06.2017
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie