Page 1 sur 1

[R] Conversion Unicode ? > Problème de RegExp

Posté : mer. 23 nov. 2016 12:14
par jpascal
Bonjour,

Je récupère une information avec le programme wmic.
L'encodage de la chaîne retournée ne me permet pas d'effectuer une RegExp.

Code : Tout sélectionner

$iPID = Run('wmic /node:' & $sIP & ' os get Caption /value', '', @SW_HIDE, $STDOUT_CHILD)
	ProcessWaitClose($iPID)
	$sOutput = StdoutRead($iPID)
	If $sOutput = '' Then
		SetError(1)
		Return "Version de l'hôte non trouvée"
	Else
	Local $aArray = StringRegExp($a, 'Caption=(.*?)', 3)
		If @error Then
			SetError(1)
			Return "Version de l'hôte non trouvée"
		Else
	 	       ConsoleWrite($sOutput & @CRLF)
	        	_ArrayDisplay($aArray)
			ConsoleWrite($aArray[0] & @CRLF)
			Return $aArray[0]
		EndIf
	EndIf
_ArrayDisplay($aArray) montre bien le problème.

J'ai tenté de convertir le code avec BinaryToString(StringToBinary($sUnicode, $SB_UTF8), $SB_ANSI) sans succès.

Re: [..] Conversion Unicode ?  

Posté : mer. 23 nov. 2016 15:39
par jchd
Que contient $a ?

Une fois corrigé, aucun besoin d'un quelconque transcodage :

Code : Tout sélectionner

_Caption(@IPAddress1)

Func _Caption($sIP)
	$iPID = Run('wmic /node:' & $sIP & ' os get Caption /value', '', @SW_HIDE, $STDOUT_CHILD)
	ProcessWaitClose($iPID)
	$sOutput = StdoutRead($iPID)
	If $sOutput = '' Then
		SetError(1)
		Return "Version de l'hôte non trouvée"
	Else
		Local $aArray = StringRegExp($sOutput, 'Caption=([\w ]+)', 1)
		If @error Then
			SetError(1)
			Return "Version de l'hôte non trouvée"
		Else
			ConsoleWrite($sOutput & @CRLF)
			_ArrayDisplay($aArray)
			ConsoleWrite($aArray[0] & @CRLF)
			Return $aArray[0]
		EndIf
	EndIf
EndFunc

Re: [..] Conversion Unicode ?

Posté : mer. 23 nov. 2016 16:07
par jpascal
Au temps pour moi, le $a est en fait $sOutput

C'était donc juste un problème de RegExp.

Merci pour cette réponse rapide. :-)