| |
|
|
Michael Wodrich | Desde que esta beiden ständig nutze, Puse ellos veces hier hinein.
MemPosAbs Como MemPos() sólo el Position de el Startposition a gerechnet zurückgibt, Yo MemPosAbs geschrieben. Hier se el absolute Position innerhalb des Bereiches zurückgegeben. Como uno a SubStrCount() sehen kann vereinfachen se entonces Suchfolgen.
SubStrCount Como Substr() auch mittendrin Leerstrings zurückgeben y el Trennzeichen de una String bestehen kann es el Zählen el Worte no bastante así simplemente. Lo va zwar auch anders pero yo habe una Zona para el Zählen benutzt.
Hier el Características con getestetem Ejemplo: KompilierenMarcaSeparación!
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
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 28.04.2006 ▲ |
|
|
|