Je suis en train d'avoir une fonction qui remplace plusieurs occurrences de oripart
-newpart
dans la chaîne envoyé:plusieurs occurrences de sous-chaîne dans le langage Red
strReplace: func [str [string!] oripart [string!] newpart [string!]][
if find str oripart [
change find str oripart newpart
strReplace str oripart newpart ] ; recursion to change more occurrences;
str ]
print strReplace "this is a short line" "short" "small"
print strReplace "this is a short line" "this" "THIS"
print strReplace "this is a short line" "line" "LINE"
print strReplace "this is a long line" "short" "small"
print strReplace "this is a short short line" "short" "small"
J'utilise la récursivité pour supprimer plusieurs occurrences. Cela fonctionne bien pour une seule ligne de test. Cependant, il produit un débordement de pile si je teste le code ci-dessus. Où est le problème?
Oui, trouver/cas était le vrai problème. – rnso
Utilisez ** replace/all ** à la place, car il remplace toutes les occurrences – sqlab