| |
|
|
Michael Wodrich | là je cet beiden ständig nutze, mets je vous la fois ici hinein.
MemPosAbs là MemPos() seulement qui Position de qui Startposition à gerechnet zurückgibt, habe je MemPosAbs geschrieben. ici wird qui absolute Position dedans des Bereiches retour. comment on à SubStrCount() voyons peux simplifier sich ensuite Suchfolgen.
SubStrCount là Substr() aussi mittendrin Leerstrings zurückgeben et cela Trennzeichen aus einem String bestehen peux ist cela Zählen qui Worte pas entier so simple. und dir zwar aussi anders mais j'ai une Bereich pour cela Zählen benutzt.
ici qui Funktionen avec getestetem Beispiel: KompilierenMarqueSéparation!
MemPosAbs + SubStrCount
by Michael Wodrich
erstellt mit XProfan 9.x
Proc MemPosAbs liefert die absolute Adresse (vom Beginn der Bereichsvariablen)
Parameters Bereich#, Start&, Finde$
Declare gefunden&
gefunden& = MemPos( Bereich#, Start&, Finde$ )
Return If( gefunden& <> (-1), Start& + gefunden&, (-1) )
EndProc
Proc SubStrCount als Ergänzung zu SubStr$( Wortliste$, n&, Trennzeichen$ ); liefert Anzahl
Parameters Wortliste$, Trennzeichen$
Declare Bereich#, Position&, Anzahl&, sovieleTrennzeichen&
Dim Bereich#, Len( Wortliste$ )
Char Bereich#, 0 = Wortliste$
sovieleTrennzeichen& = Len( Trennzeichen$ )
Position& = MemPos( Bereich#, Position&, Trennzeichen$ )
While Position& <> (-1)
Inc Anzahl&
Position& = MemPosAbs( Bereich#, Position& + sovieleTrennzeichen&, Trennzeichen$ )
EndWhile
Dispose Bereich#
Return Anzahl& + 1
EndProc
Hauptprogramm
Declare oldDeci%, A$
oldDeci% = Set("Decimals", 0 )
Print "Teste SubStr$() und SubStrCount():
"
A$ = "eins,zwei,,vier,fünf,sechs,sieben"
Print "<" + A$ + "> + Trenner <,> = " + Str$( SubStrCount( A$, "," ) )
WhileLoop 8
Print Str$( &loop ) + ": <" + SubStr$( A$, &loop, "," ) + ">"
EndWhile
Print ""
A$ = "eins, zwei,,vier, fünf, sechs, sieben,"
Print "<" + A$ + "> + Trenner <, > = " + Str$( SubStrCount( A$, ", " ) )
WhileLoop 8
Print Str$( &loop ) + ": <" + SubStr$( A$, &loop, ", " ) + ">"
EndWhile
Print ""
A$ = "eins, zwei, , vier, fünf, sechs, sieben, "
Print "<" + A$ + "> + Trenner <, > = " + Str$( SubStrCount( A$, ", " ) )
WhileLoop 8
Print Str$( &loop ) + ": <" + SubStr$( A$, &loop, ", " ) + ">"
EndWhile
Set("Decimals", oldDeci% )
WaitInput< class=s4 href='./../../function-references/XProfan/end/'>Fin
belle Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 28.04.2006 ▲ |
|
|
|