Bonjour à tous et à toutes,
Je débute avec Powershell et j'ai un souci avec la création d'une fonction.
Ma "mission" consiste à chercher une sous-chaine, à une position bien précise dans une chaine "maître" et à la remplacer par une autre sous-chaine même si la sous-chaine cherchée existe ailleurs dans la chaine "maître".
Par exemple, je dois remplacer "0LKS" dans "0LKS_AND_0LKS251-", en début de chaîne par "????" alors que "0LKS" est présent après le "AND"
J'ai rédigé ce bout de code qui marche (je vous fais grâce des boucles FOR et IF dans lesquelles ce code est imbriqué:
Comme je suis amené à effectuer le même genre de manipulations à plusieurs endroit de mon programme, je voudrais transformer ça en fonction et là, ça se complique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $long_remplace = "????".length $long_chaine = $modif.length $chaine1 = $modif.substring(0,$j) $chaine2 = $modif.substring($j+$long_remplace,$long_chaine-($j+$long_remplace)) $modif = $chaine1+"????"+$chaine2
J'ai crée une fonction "remplace-chaine" que voici mais qui ne fonctionne pas :
Je voudrais appeler cette fonction, tout simplement, en faisant "$sortie = remplace-chaine($modif,"????",$j)"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function remplace-chaine { param ([string]$chaine, [string]$remplace, [int]$position) $long_remplace = $remplace.length $long_chaine = $chaine.length $chaine1 = $chaine.substring(0,$position) $chaine2 = $chaine.substring($position+$long_remplace,$long_chaine-($position+$long_remplace)) $sortie = $chaine1+$remplace+$chaine2 return $sortie }
Je plaide coupable, c'est ma première fonction avec plusieurs arguments en entrée, c'est pourquoi je fais appel à vous.
D'avance merci pour votre aide.
Partager