[R] Remplacer une chaîne de caractère
Posté : ven. 07 juin 2013 11:05
Bonjour à tous,
Je me suis inspiré d'un script trouvé sur autoitscript.com pour manipuler diskpart.
L'objectif étant de livré à des techniciens un outil simple de création de clé USB bootable / synchronisation avec les serveurs de déploiement.
J'ai un quack sur la partie diskpart pour les OS Français, à cause de "Disque" au lieu de "Disk".
J'ai essayé avec un bête StringReplace. Mais ce n'est pas bon. Je débute
En exemple c'est plus parlant
L'objectif étant d'avoir "Le disque choisis est le suivant: Disk x" --> via la variable $Disk
Parfait sur mes OS Anglais tout fonctionne. Sur des OS Français, il indique "Le disque choisis est le suivant: disque x" Ce qui échoue le reste des actions diskpart.
Du coup j'ai rajouté
Le résultat est "Le disque choisis est le suivant: Disk x En Ligne ........" En gros il me colle trop d'informatons !? Je ne comprends pas pk.
Je pense que c'est simple, mais je bloque
Une idée amis autoscriptiens ?
Merci !!
Kreg
Je me suis inspiré d'un script trouvé sur autoitscript.com pour manipuler diskpart.
L'objectif étant de livré à des techniciens un outil simple de création de clé USB bootable / synchronisation avec les serveurs de déploiement.
J'ai un quack sur la partie diskpart pour les OS Français, à cause de "Disque" au lieu de "Disk".
J'ai essayé avec un bête StringReplace. Mais ce n'est pas bon. Je débute
En exemple c'est plus parlant
Code : Tout sélectionner
Func DskPrt()
Local $Menu1, $n1, $n2, $Msg, $Menustate, $Menutext, $File
Local $Line, $Array = _StringExplode(FileRead(@TempDir & '\lstdsk.txt'), @LF)
For $i = 0 To UBound($Array) - 1
If StringRegExp($Array[$i], '(?i)Disk [\d]+') Or StringRegExp($Array[$i], '(?i)Disque [\d]+') Then $Line &= $Array[$i] & '|'
Next
$Line = StringRegExpReplace($Line, '[\s|]*$', '')
GUICreate('Make USB Bootable', 260, 250)
GUICtrlCreateLabel('Disque disponible : ', 22, 10, 100)
$n1 = GUICtrlCreateList('', 20, 30, 215, 150)
GUICtrlSetData(-1, $Line)
$n2 = GUICtrlCreateButton('Selectionner le disque à rendre bootable', 28, 200, 200)
GUICtrlSetState(-1, $GUI_FOCUS)
GUISetState()
Do
$Msg = GUIGetMsg()
If $Msg = $n2 Then
Local $Disk1 = StringRegExpReplace(GUICtrlRead($n1), '(?i)^.*(Disk [\d]+).*$', '$1')
Local $Disk= StringReplace ($Disk1, "disque", "disk")
Local $iMsgBoxAnswer
$iMsgBoxAnswer = MsgBox(262452, 'Le disque choisis est le suivant: ' & $Disk, 'Attention le disque va être formatté : ' & $Disk & '!')Parfait sur mes OS Anglais tout fonctionne. Sur des OS Français, il indique "Le disque choisis est le suivant: disque x" Ce qui échoue le reste des actions diskpart.
Du coup j'ai rajouté
Code : Tout sélectionner
Local $Disk= StringReplace ($Disk1, "disque", "disk")Je pense que c'est simple, mais je bloque
Une idée amis autoscriptiens ?
Merci !!
Kreg