English
Source / code snippets

Memposabs Substrcount

 

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  
 



Zum Quelltext


Topictitle, max. 100 characters.
 

Systemprofile:

no Systemprofil laid out. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Please register circa a Posting To verfassen.
 

Topic-Options

1.581 Views

Untitledvor 0 min.
H.Brill06/14/23
Sven Bader05/24/23
Walter04/11/23
RudiB.09/02/22

Themeninformationen

this Topic has 1 subscriber:

Michael Wodrich (1x)


Admins  |  AGB  |  Applications  |  Authors  |  Chat  |  Privacy Policy  |  Download  |  Entrance  |  Help  |  Merchantportal  |  Imprint  |  Mart  |  Interfaces  |  SDK  |  Services  |  Games  |  Search  |  Support

One proposition all XProfan, The there's!


My XProfan
Private Messages
Own Storage Forum
Topics-Remember-List
Own Posts
Own Topics
Clipboard
Log off
 Deutsch English Français Español Italia
Translations

Privacy Policy


we use Cookies only as Session-Cookies because of the technical necessity and with us there no Cookies of Drittanbietern.

If you here on our Website click or navigate, stimmst You ours registration of Information in our Cookies on XProfan.Net To.

further Information To our Cookies and moreover, How You The control above keep, find You in ours nachfolgenden Datenschutzerklärung.


all rightDatenschutzerklärung
i want none Cookie