Français
Source/ Codesnippets

4 neue String-Funktionen

 
- page 1 -



RudiB.
Habe la fois un un peu avec String-Funktionen rumgebastelt.
ici cela Ergebnis:

FindCharAll

gibt alle Positionen des Zeichens / Zeichenkette aus TestString$
Aufruf: FindCharAll TestString$,Suchzeichen/kette,leeres Int-Array
Rückgabewert: Array avec den Positionen im String aller gefundenen marque.

CountChar

zählt alle Suchzeichen/ketten aus TestString$
Aufruf: CountChar TestString$,Suchzeichen/kette
Rückgabewert: Nombre de gesuchten marque im String.

FindLastChar

gibt qui Position des letzten gesuchten marque/kette dans TestString$ à-
Aufruf: FindLastChar TestString$, Suchzeichen/kette
Rückgabewert: Position im TestString

FindPosChar

Finde Position des N.ten marque/Zeichenkette im TestString$
Aufruf: FindPosChar TestString$,N.tes marque,Such_Zeichen$
Rückgabewert: Postion des N.ten Zeichens/kette im TestString.

ici un kleines Testprogramm...
CLS
'Befehle
'--------------
'findcharall(marque) >> Array - Nombre de marque / Position des Zeichens dans STRING
'findfirstchar(marque) >> position des zeichens im STRING  --- comment INSTR
'findlastchar(marque) >> position des letzten zeichens im STRING
'findposchar(marque,z.B cela 3.te marque im STRING)
'countchar(marque) >> anzahl qui marque im STRING
Déclarer TestString$,_Suchzeichen%[],Such_Zeichen$,z%,zaehler%,last&
TestString$="Im habituel Dezimalsystem volonté qui Les chiffres 0 jusqu'à 9 verwendet. Im Dualsystem hingegen volonté payons seulement avec den Les chiffres des Wertes zéro et une dargestellt."
CLS
' Finde alle marque/Zeichenketten dans Teststring
Such_Zeichen$="f"
FindCharAll TestString$,Such_Zeichen$,_Suchzeichen%[]
Imprimer "Befehl: FindCharAll"
Imprimer
Imprimer "gibt alle Positionen des Zeichens / Zeichenkette aus TestString$"
Imprimer
Imprimer "Aufruf -- FindCharAll TestString$,Such_Zeichen$,_Suchzeichen%[] (leeres Array)"
Imprimer
Imprimer "TestString :"+TestString$
Imprimer "Suchzeichen ist: -"+Such_Zeichen$+"-"
Imprimer
Imprimer
Imprimer "Taste drücken...."
auswerten
Waitinput
CLS
' Zaehle alle marque/Zeichenkette aus Teststring
zaehler%=CountChar(TestString$,"e")
Imprimer "Befehl: CountChar"
Imprimer
Imprimer "Zählt alle gesuchten Zeichens / Zeichenkette aus TestString$"
Imprimer
Imprimer "Aufruf -- CountChar TestString$,Such_Zeichen$"
Imprimer
Imprimer "TestString :"+TestString$
Imprimer "Suchzeichen ist: "+"-e-"
Imprimer zaehler%+ " la fois ist cela -e- im Teststring enthalten."
Imprimer
Imprimer
Imprimer "Taste drücken...."
Waitinput
CLS
' Finde Position pour cela dernier marque/Zeichenkette dans Teststring
zaehler%=FindLastChar(TestString$,"f")
Imprimer "Befehl: FindLastChar"
Imprimer
Imprimer "gibt dernier Positionen des gesuchten Zeichens / Zeichenkette aus TestString$"
Imprimer
Imprimer "Aufruf -- FindLastChar TestString$,Such_Zeichen$"
Imprimer
Imprimer "TestString :"+TestString$
Imprimer "Suchzeichen ist: "+"-f-"
imprimer "das dernier marque/Zeichenkette -f- ist à Position "+str$(zaehler%)+" im Testsrting."
Imprimer
Imprimer
Imprimer "Taste drücken...."
Waitinput
CLS
' Finde 3.tes marque/Zeichenkette im TestString
zaehler%=FindPosChar(TestString$,3,"m")
Imprimer "Befehl: FindPosChar"
Imprimer
Imprimer "Finde N.te marque/Zeichenkette im TestString$"
Imprimer
Imprimer "Aufruf -- FindPosChar TestString$,N.tes marque,Such_Zeichen$"
Imprimer
Imprimer "TestString :"+TestString$
Imprimer "N.tes marque ist 3"
Imprimer "Suchzeichen ist: "+"-m-"
imprimer "das 3.te gesuchte marque/Zeichenkette -m- ist à Position "+str$(zaehler%)+" im Testsrting."
Imprimer
Imprimer
Imprimer "Für Ende bouton drücken...."
waitinput
Fin
'--------------------------------------------------------------------------------------------

Proc CountChar

    Paramètres _String$,_Zeichen$
    Déclarer _pos&,_zaehler&
    _pos&=0
    _zaehler&=0

    Whileloop LEN(_String$)

        _pos&=Instr(_Zeichen$,_String$)

        Si _pos&>0

            Inc _zaehler&

        D'autre

            Pause

        EndIf

        _String$=Right$(_String$, Len(_String$)-_pos&)

    Endwhile

    Retour _zaehler&

ENDPROC

Proc FindCharAll

    Paramètres _String$,_Zeichen$,_Char%[]
    Déclarer _pos&,_zaehler&,Array_zaehler&
    _pos&=0
    _zaehler&=0
    Array_zaehler&=0

    Whileloop LEN(_String$)

        Inc Array_zaehler&
        _pos&=Instr(_Zeichen$,_String$)

        Si _pos&>0

            _zaehler&=_zaehler&+_pos&
            _Char%[Array_zaehler&]=_zaehler&

        D'autre

            Pause

        EndIf

        _String$=Right$(_String$, Len(_String$)-_pos&)

    Endwhile

    Retour _Char%[]

ENDPROC

Proc FindLastChar

    Paramètres _String$,_Zeichen$
    Déclarer _Zeichen&[],_pos&,_Char%[],_zaehler&

    Whileloop LEN(_String$)

        _pos&=Instr(_Zeichen$,_String$)

        Si _pos&>0

            _zaehler&=_zaehler&+_pos&
            _String$=Right$(_String$, Len(_String$)-_pos&)
            _pos&=0

        D'autre

            Pause

        EndIf

    Endwhile

    Retour _zaehler&

ENDPROC

Proc FindPosChar

    Paramètres _String$,N_Zeichen&,_Zeichen$
    Déclarer _pos&,_zaehler&,Array_zaehler&,_Char%[]
    _pos&=0
    _zaehler&=0
    Array_zaehler&=0

    Whileloop LEN(_String$)

        Inc Array_zaehler&
        _pos&=Instr(_Zeichen$,_String$)

        Si _pos&>0

            _zaehler&=_zaehler&+_pos&
            _Char%[Array_zaehler&]=_zaehler&

        D'autre

            Pause

        EndIf

        Si Array_zaehler&=N_Zeichen&

            Pause

        Endif

        _String$=Right$(_String$, Len(_String$)-_pos&)

    Endwhile

    Retour _zaehler&

ENDPROC

Proc Auswerten

    z%=0

    Whileloop SizeOf(_Suchzeichen%[])-1

        inc z%
        imprimer "Zeichen **"+mid$(TestString$,_Suchzeichen%[&loop],1)+"** Nr.:",z%,"An Position: ";_Suchzeichen%[&loop]

    Endwhile

    ArrDel _Suchzeichen%[],0,SizeOf(_Suchzeichen%[])-1'Arraygrösse wird sur 1 gesetzt.

ENDPROC

 
Xprofan X4
Rudolf Beske / München

Hardware: NB Intel I9 - 16GByte RAM
12.05.2021  
 



« cette Beitrag wurde comme Solution gekennzeichnet. »


p.specht

%matchpos et cela n. Matching
=========================
Weils dazupasst, une Info de RGH aus Sept. 2015 zur richtigen Handhabung qui internen Variable %matchpos:
"%matchpos zählt toujours de qui aktuellen Startposition aus!
Folgendes proc liefert cela gewünschte n-matière {'weitergeschaltete'} Verhalten":
Cls:font 2
var regstat&=get("regex"):set("regex",1)
var found&=0
var start&=0

Repeat

    found&=instr("([aA][bB][cC])","_abc_Abc_aBc_abC_defg_ABC",start&+1)
    cas %matchpos<0:Pause
    imprimer %matchpos+start&,$match,%matchlen,"found& = ",found&
    start& = found&

until %matchpos=-1

set("regex",regstat&)'Stand de auparavant wieder mettons
imprimer "done."
waitinput
Fin
 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
19.05.2021  
 



Zum Quelltext


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

2.561 Views

Untitledvor 0 min.
Gast.0815 vor 6 Tagen
Erhard Wirth14.06.2024
Member 862464112.05.2024
Uwe Starke17.11.2023
plus...

Themeninformationen

cet Thema hat 2 participant:

p.specht (1x)
RudiB. (1x)


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