Question [RESOLU] Formatage IP 3chiffres

Plus d'informations
il y a 14 ans 11 mois #9389 par Alexandre ALEYA
Bonjour :) ,

J'utilise un logiciel dans lequel je peux importer une liste de PC avec son @IP.
Pour ce logiciel, le fichier doit être du type :
DT080009A1,172.023.052.123
DT080030A1,172.023.052.064
DT080054A1,172.016.005.011
DT080101A1,172.023.052.091
càd toujours 3 chiffres.

Je dispose de la liste des PC et j'utilise un script Powershell qui trouve l'@IP à partir du nom.
Le script me retourne :
DT080009A1,172.23.52.123
DT080030A1,172.23.52.64
DT080054A1,172.16.5.11
DT080101A1,172.23.52.91

càd 3,2 ou 1 chiffres.

La piste que je suis :
[code:1]
[string]::Format(\"{0: D3}\",24)
[/code:1]
et qui me retourne bien 024. Mais comment faire pour formater 172.24.3, par exemple?

Quelqu'un saurait il comment faire pour que le formatage se fasse dans le script ?

Merci d'avance,
Alex<br><br>Message édité par: axaly, à: 15/04/11 11:52

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 11 mois #9399 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Formatage IP 3chiffres
Une solution :
[code:1]
\&quot;DT080009A1,172.23.52.123\&quot;,
\&quot;DT080030A1,172.23.52.64\&quot;,
\&quot;DT080054A1,172.16.5.11\&quot;,
\&quot;DT080101A1,172.23.52.91\&quot;,
\&quot;DT080101A1,1.23.152.91\&quot;,
\&quot;DT080101A1,10.230.2.191\&quot;,
\&quot;DT080101A1,100.230.200.191\&quot;|
%{

$A=$_
$B= $A -split ','
[int[]] $t=($B[1] -split \&quot;\.\&quot;«»)
$C=\&quot;$($B[0]),$(\&quot;{0:«»D3}.{1:«»D3}.{2:«»D3}.{3:«»D3}\&quot; -F $t[0],$t[1],$t[2],$t[3])\&quot;
Write-host (\&quot;-\&quot; * 80)
$A
$C
}
[/code:1]
Peut être améliorée

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 11 mois #9404 par Alexandre ALEYA
Merci !

J'ai essayé et c'est bon !

Pour ma compréhension: vous splittez la chaîne en fonction de la position du point et ensuite vous formatez cette nouvelle chaîne suivant les recommandations.

Bon week end :)<br><br>Message édité par: axaly, à: 15/04/11 11:52

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 11 mois #9420 par Laurent Dardenne
axaly écrit:

Bon week end :)

Merci, à toi aussi :)

Une amélioration sur le 'casting' :
[code:1]
$a=\&quot;DT080101A1,172.23.52.91\&quot;
$B= $A -split ','
$T=$B[1] -split \&quot;\.\&quot;|% {[Object][int]$_}
$C=\&quot;$($B[0]),$(\&quot;{0:«»D3}.{1:«»D3}.{2:«»D3}.{3:«»D3}\&quot; -F $T)\&quot;
Write-host (\&quot;-\&quot; * 80)
$A
$C
[/code:1]
A ce jour, je n'ai pas trouvé comment caster simplement un tableau d'entier en un tableau d'objet ( cf. \&quot;boxing dotnet\&quot;).
Si qq un à une solution je suis à l'écoute :whistle:

Une autre approche moins \&quot;triviale\&quot;:
[code:1]
$delegateLeading= [System.Text.RegularExpressions.MatchEvaluator] {
\&quot;{0:«»D3}\&quot; -F ([int]$args[0].ToString())
}
#from stackoverflow.com/questions/2659058/usin...o-add-leading-zeroes
$re = [regex] '(?:^|(?&lt;=[^0-9]))([0-9]{1,3})(?=$|[^0-9])'

\&quot;10.230.2.19\&quot; |
ForEach-object { $re.Replace($_, $delegateLeading) }
[/code:1]
Mais je n'ai pas fait de test de performances :dry:

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 11 mois #9422 par jojo
Réponse de jojo sur le sujet Re:[RESOLU] Formatage IP 3chiffres
bonjour,

une solution de plus:

[code:1]\&quot;DT080009A1,172.23.52.123\&quot;,
\&quot;DT080030A1,172.23.52.64\&quot;,
\&quot;DT080054A1,172.16.5.11\&quot;,
\&quot;DT080101A1,172.23.52.91\&quot;,
\&quot;DT080101A1,1.23.152.91\&quot;,
\&quot;DT080101A1,10.230.2.191\&quot;,
\&quot;DT080101A1,100.230.200.191\&quot;|
%{
$a,$b,$c,$d,$e=$_.Split(\&quot;,.\&quot;«»)
$b=([string](1000+$b)).substring(1)
$c=([string](1000+$c)).substring(1)
$d=([string](1000+$d)).substring(1)
$e=([string](1000+$e)).substring(1)
\&quot;{0},{1}.{2}.{3}.{4}\&quot; -f $a,$b,$c,$d,$e
}
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.042 secondes
Propulsé par Kunena