Question convertir un String en int

Plus d'informations
il y a 15 ans 10 mois #2476 par Frisco
convertir un String en int a été créé par Frisco
Bonjour les gens,

Bon j'ai encore besoin de vous :s ...

En faite j'ai dans un fichier un liste de chiffre, je les place dans un variable avec un get-content, mais lorsque j'effectue un test avec un autre nombre (exemple dans une boucle for) ben il ne sort jamais de ma boucle :s..

D'après ce que j'ai vu il considère le chiffre que je récupère de mon fichier comme un char et donc ne le compare par correctement avec un int ..

quelqu'un aurait deja eu ca ?

Ou une solution ?

D'avance merci

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

Plus d'informations
il y a 15 ans 10 mois #2478 par Laurent Dardenne
frisco écrit:

Ou une solution ?

Si ta liste ne contient que des entiers, il faut préciser le type de la liste:
[code:1]
$l=get-content (Join-Path $pwd \"liste.txt\"«»)
$l.gettype()
$l|% {$_.gettype()}
[/code:1]
On récupére un tableau d'objet contenant des string
[code:1]
[int[]] $l=get-content (Join-Path $pwd \"liste.txt\"«»)
$l.gettype()
$l|% {$_.gettype()}
[/code:1]
On récupére un tableau d'entier.
Attention si tu réexécutes ceci
[code:1]
$l=get-content (Join-Path $pwd \"liste.txt\"«»)
[/code:1]
Le dernier type précisé pour $L est pris en compte.

Comme tu n'as pas précisé le code qui pose pb, je ne sais pas si cela peut t'aider ...

Tutoriels PowerShell

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

Plus d'informations
il y a 15 ans 10 mois #2480 par Arnaud Petitjean
Bonjour Frisco,

Le mieux serait que tu postes ton script et ton fichier.

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 15 ans 10 mois #2481 par Frisco
Réponse de Frisco sur le sujet Re:convertir un String en int
Vous avez totalement raison, j'aurais du mettre mes exemples .... désolé.

Je vais les mettre maintenant.

Alors le fichier que j'importe dans un variable c'est un fichier log avec des lignes comme celle-ci:

[code:1]PGDial1 SUCCESSFUL Stn:1 To:0479990112 Frm:Check_nodes File:check_nodes.125 Msg:979219
[/code:1]

Dans cette variable, pour chaque ligne je dois récupéré le \"7\" (2eme chiffre du nombre apres le 'ms:') et c'est ce \"string\" qui doit devenir un INT pour après m'en servir dans un test de boucle (la boucle ne doit tourner que 7 fois).

J'ai essayé de mettre [INT]$compteur mais alors la variable ne contient pas \"7\" mais \"55\" .. surement une convertion.

Alors pour mettre le contenu du fichier dans ma variable j'utilise
[code:1]$texte = Get-Content \"d:\developpement\powershell\fsecure\pagegate.log\" [/code:1]

Puis j'ai toute une série de test sur des chaines de characteres pour trouver des lignes dans le text.

Et puis sur les lignes (comme celle plus haut) je dois donc récupérer le 2eme chiffre du nombre apres \"MSG:\" et puis avec ce nombre faire un boucle mais ça marche pas car la variale qui contient le chiffre est considéré comme un char ...

J'ai regardé dans mes livres mais il n'y a pas de convertion en INT, j'arrive a le convertir en binaire, octa, hexa .... j'en perd mes derniers cheveux ^^

J'espère que ca vous éclaire plus sur mon problème.

Encore merci pour votre aide et bonne journée a vous<br><br>Message édité par: frisco, à: 20/06/08 08:45

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

Plus d'informations
il y a 15 ans 10 mois #2482 par Arnaud Petitjean
Salut Frisco,

Tu dois certainement avoir un problème d'extraction de ta valeur (le 7) car regarde ceci :

[code:1]
PS &gt; $a = \&quot;7\&quot;
PS &gt; $a.gettype()

IsPublic IsSerial Name BaseType

----
True True String System.Object

PS &gt; [int]$b = $a
PS &gt; $b.gettype()

IsPublic IsSerial Name BaseType

----
True True Int32 System.ValueType

PS &gt; $b
7
[/code:1]

Il n'y rien de plus à faire pour convertir une chaine en entier. Tu devrais faire quelques essais dans l'interpréteur de commandes, c'est bien plus facile à débogguer qu'un script.

Arnaud
PS : j'adore ton avatar :laugh:. T'as vu j'ai changé le mien ? ;)

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 15 ans 10 mois #2483 par Frisco
Réponse de Frisco sur le sujet Re:convertir un String en int
Ben oui je trouve ca bisard, donc en fait pour avoir le chiffre qu'il me faut je fais ca:

[code:1]$length = $i.Length
$select = ($length - 6)
[string]$compt= $i[$select][/code:1]

$i c'est ma phrase
donc je prend la taille de ma phrase, je retire 6 charactere pour choper le chiffre. En string c'est bon ma variable vaut bien '7' mais si je met [int] au lieu de [string] ben la variable passe a '55'.

Peut etre que je n'utilise pas les bonne commande pour récupérer mon chiffre mais c'est les seules que je connais pour le moment :p

Je vais quand meme faire des tests sur une seul phrase pour voir.

Je vous tiens au courant.


ps: Oui j'ai vu, j'avais hésité avec ce genre d'avatar ^^

Message édité par: frisco, à: 20/06/08 10:14<br><br>Message édité par: frisco, à: 20/06/08 10:15

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

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