| |
|
|
- 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":
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 19.05.2021 ▲ |
|
|
|
|