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

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
jpascal
Niveau 6
Niveau 6
Messages : 239
Enregistré le : jeu. 16 oct. 2008 16:21
Status : Hors ligne

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

#1

Message 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.
Modifié en dernier par jpascal le mer. 23 nov. 2016 16:07, modifié 1 fois.
AutoIt 3.3.16.1 - AutoIt3Wrapper 21.316.1639.1
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2282
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Conversion Unicode ?  

#2

Message 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
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
jpascal
Niveau 6
Niveau 6
Messages : 239
Enregistré le : jeu. 16 oct. 2008 16:21
Status : Hors ligne

Re: [..] Conversion Unicode ?

#3

Message 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. :-)
AutoIt 3.3.16.1 - AutoIt3Wrapper 21.316.1639.1
Répondre