Markov

Remplace une partie du texte par une autre et fait éventuellement un GOTO.

Markov (
	 etiquette cible
	 reference entree
	 carac borneinf
	 carac bornesup
	 chaine motif
	 chaine remplacerpar
) 

Membre de

global

Paramètres d'entrée

cible
Où continuer l'exécution si le motif est trouvé.
entree
Une référence sur la chaîne à modifier.
borneinf
La borne inférieure de l'intervalle des caractères interchangeables.
bornesup
La borne supérieure de l'intervalle des caractères interchangeables.
motif
Le motif à rechercher.
remplacerpar
La chaîne par laquelle le motif est remplacé.

Remarques

Cette fonction est d'une grande importance dans le traitement des chaînes en GOTO++ et elle remplace avantageusement les expressions régulières (qui sont tout de même présentes, pour les conservateurs).

Elle travaille sur entree et recherche dedans une sous-chaîne qui correspond au motif décrit par motif. Cette sous-chaîne est alors remplacée par remplacerpar en tenant compte des informations données par motif.

La signification de motif est gouvernée par borneinf et bornesup. Tout caractère du motif qui est compris entre borneinf et bornesup est considéré comme un caractère interchangeable. C'est à dire qu'il signifie en réalité « n'importe quel caractère entre borneinf et bornesup. » Par ailleurs si un de ces caractères apparaît plusieurs fois dans le motif, il désignera une répétition du même caractère (par exemple si a et z sont les bornes, le motif «ccc» désignera la répétition trois fois de suite d'un même caractère situé dans ces bornes). Les caractères du motif en dehors des bornes se désignent eux-même.

Si le motif est trouvé, il est remplacé par remplacerpar, en tenant compte de la signification qui a été donnée aux caractères interchangeables (par exemple si «c» de motif correspondait à un «e» de entree, alors si on trouve «c» dans remplacerpar, le caractère «e» sera inséré). Suite à quoi, l'exécution continue à cible.

Sinon l'exécution continue à la ligne suivante et la chaîne d'entrée n'est pas modifiée.

Exemple

GOTO Cet exemple inverse les lettres d'une chaîne
GOTO On utilise le caractère * comme guide pour inverser
GOTO la chaîne et le caractère - pour supprimer ensuite
GOTO ces étoiles.
c=«bonjour»
§1
GOTOPRINTDUTEXTE() ;&c
Markov() %1 c *`a' *`z' «**» «-»
Markov() %1 c *`a' *`z' «-a» «a-»
Markov() %1 c *`a' *`z' «-*» «-»
Markov() %2 c *`a' *`z' «-» «»
Markov() %1 c *`a' *`z' «*ab» «b*a»
Markov() %1 c *`a' *`z' «» «*»
§2
GOTOPRINTDUTEXTE() ;&c
GOTO affiche «roujnob»

Voir aussi

global