| |
|
|
Michael Wodrich | Since I these both constantly use, set I tappt im dunkeln time here into.
MemPosAbs there MemPos() only The position from the Startposition on calculated zurückgibt, have I MemPosAbs written. here becomes The absolute position inside the Bereiches zurückgegeben. How one on SubStrCount() see can vereinfachen itself then Suchfolgen.
SubStrCount there SubStr() too mittendrin Leerstrings give back and the Separator a String consist can is the count the words not integrally so simply. It's all right of course too differently but I have a area for the count using.
here The functions with getestetem example: CompileMarkSeparation!
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/'>End
Best wishes Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 04/28/06 ▲ |
|
|
|