Question
compter des caractères dans un fichiers
- jojo
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 187
- Remerciements reçus 0
il y a 15 ans 5 mois #7940
par jojo
compter des caractères dans un fichiers a été créé par jojo
bonjour mes amis
,
j'ai un nouveau problème, je veux compter tous les caractères de la classe [a-z] dans un fichier char.txt.
le fichier est volumineux pour cause j'essaie de chercher la méthode la plus rapide possible pour le comptage.
pouvez-vous m'aider, merci
j'ai un nouveau problème, je veux compter tous les caractères de la classe [a-z] dans un fichier char.txt.
le fichier est volumineux pour cause j'essaie de chercher la méthode la plus rapide possible pour le comptage.
pouvez-vous m'aider, merci
Connexion ou Créer un compte pour participer à la conversation.
- Arthur
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 226
- Remerciements reçus 0
il y a 15 ans 5 mois #7941
par Arthur
Réponse de Arthur sur le sujet Re:compter des caractères dans un fichiers
Je ne sait pas si c'est la facon la plus optimisé :
[code:1]
Get-Content .\monfichier.ps1 | foreach {$nbchar += $_.Length }
#$nbchar = nb de caractères [/code:1]
EDIT:
Tu peut aussi faire ca mais curieusement ca a l'air plus long que ma première méthode :
[code:1]get-content .\mon_fichier.ps1 | measure-object -character[/code:1]
Warf j'avais pas vu le [a-z] (fatigué}
[code:1]Get-Content .\monfichier.ps1 | foreach {$_.ToCharArray() | where {$_ -mat
ch \"[a-z]\" } | foreach { $nbchar++ } }[/code:1]
A mon avis y a plus rapide faut que je réfléchisse plus.
Message édité par: bilbao, à: 19/10/10 10:27<br><br>Message édité par: bilbao, à: 19/10/10 10:51
[code:1]
Get-Content .\monfichier.ps1 | foreach {$nbchar += $_.Length }
#$nbchar = nb de caractères [/code:1]
EDIT:
Tu peut aussi faire ca mais curieusement ca a l'air plus long que ma première méthode :
[code:1]get-content .\mon_fichier.ps1 | measure-object -character[/code:1]
Warf j'avais pas vu le [a-z] (fatigué}
[code:1]Get-Content .\monfichier.ps1 | foreach {$_.ToCharArray() | where {$_ -mat
ch \"[a-z]\" } | foreach { $nbchar++ } }[/code:1]
A mon avis y a plus rapide faut que je réfléchisse plus.
Message édité par: bilbao, à: 19/10/10 10:27<br><br>Message édité par: bilbao, à: 19/10/10 10:51
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 5 mois #7942
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:compter des caractères dans un fichiers
Bonjour,
Je sais pas si c'est le plus rapide mais je pense que je sois un poil plus rapide que bilbao avec ce code ci :
[code:1]
gc .\monfichier.ps1 `
| %{ $_.ToCharArray() `
| %{if($_ -cmatch '[a-z]'){++$nbchar}}
}
[/code:1]
A noter que mon regex prend en compte la casse, c'est à dire que je compterais pas les A,B,C...Z mais que les a,b,c...z.
Je sais pas si c'est ce que tu voulais précisement.
Bien Cordialement,
Richard Lazaro.
Je sais pas si c'est le plus rapide mais je pense que je sois un poil plus rapide que bilbao avec ce code ci :
[code:1]
gc .\monfichier.ps1 `
| %{ $_.ToCharArray() `
| %{if($_ -cmatch '[a-z]'){++$nbchar}}
}
[/code:1]
A noter que mon regex prend en compte la casse, c'est à dire que je compterais pas les A,B,C...Z mais que les a,b,c...z.
Je sais pas si c'est ce que tu voulais précisement.
Bien Cordialement,
Richard Lazaro.
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- jojo
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 187
- Remerciements reçus 0
il y a 15 ans 5 mois #7943
par jojo
Réponse de jojo sur le sujet Re:compter des caractères dans un fichiers
merci les gars
,
j'avais fais ceci:
[code:1]((gc fichier) -split('') -match('[a-z]'))|%{$ki++}[/code:1]
et
[code:1]gc fichier|%{$_.getenumerator() -match \"[a-z]\"|Measure|%{$k+=$_.count}} [/code:1]
mais je ne sais pas c'est plus rapide ou non, car je ne peux pas tester maintenant.
j'ai quelques question,
1- quel est la différence entre ++$nbchar et $nbchar++
2- quel est la difference entre $_.count et $_.length
3- quel est la différence entre $_.getenumerator() et $_.ToCharArray()
vous êtes génial les gas, merci
Message édité par: jojo, à: 19/10/10 11:57
Message édité par: jojo, à: 19/10/10 11:59<br><br>Message édité par: jojo, à: 19/10/10 12:20
j'avais fais ceci:
[code:1]((gc fichier) -split('') -match('[a-z]'))|%{$ki++}[/code:1]
et
[code:1]gc fichier|%{$_.getenumerator() -match \"[a-z]\"|Measure|%{$k+=$_.count}} [/code:1]
mais je ne sais pas c'est plus rapide ou non, car je ne peux pas tester maintenant.
j'ai quelques question,
1- quel est la différence entre ++$nbchar et $nbchar++
2- quel est la difference entre $_.count et $_.length
3- quel est la différence entre $_.getenumerator() et $_.ToCharArray()
vous êtes génial les gas, merci
Message édité par: jojo, à: 19/10/10 11:57
Message édité par: jojo, à: 19/10/10 11:59<br><br>Message édité par: jojo, à: 19/10/10 12:20
Connexion ou Créer un compte pour participer à la conversation.
- Richard Lazaro
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 530
- Remerciements reçus 0
il y a 15 ans 5 mois #7944
par Richard Lazaro
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Réponse de Richard Lazaro sur le sujet Re:compter des caractères dans un fichiers
Re-
Je vais essayer de répondre à tout ^^
1- quel est la différence entre ++$nbchar et $nbchar++
Cela se nomme la pré et la post incrémentation. Cela a une grande importance lorsqu'on minimise le code par exemple :
[code:1]
PS> $a = 1
PS> 1 -eq $a++
True
PS> $a
2
PS> $a = 1
PS> 1 -eq ++$a
False
PS> $a
2
[/code:1]
Donc, lors de la post incrémentation (1er exemple) on traite l'objet contenu dans la variable $a avant de vrai l'incrémentation
Et dans la pré incrémentation (2eme exemple) on incrémente l'objet dans $a avant de le passer à l'opérateur -eq
2- quel est la difference entre $_.count et $_.length
La propriété count permet de conter le nombre d'élément d'un tableau ou d'une liste en générale
La propriété lenght s'applique à une chaîne de caractère et retourne donc la longueur de cette chaîne.
3- quel est la différence entre $_.getenumerator() et $_.ToCharArray()
Là on aborde quelque chose de plus compliqué, j'espère ne pas me tromper.
La méthode GetEnumerator permet d'obtenir un objet qui nous permettra d'iterer sur la collection qui appel cette méthode. La méthode GetEnumerator vient de l'interface IEnumerable ce quif ait que chaque collection aura cette méthode.
La méthode ToCharArray permet de transformer une chaîne de caractère de type String en tableau de cractère de type Char[], cette méthode est spécifique à la classe String.
Tu auras peut être remarqué que la classe String à la méthode GetEnumerator, je pense que l'explication vient du fait qu'une chaîne de caractère est avant tout un tableau de charactère.
Après, cette partie n'est pas ma spécialité on va dire :/
J'espère avoir répondu au mieux à tes questions.
Bien Cordialement,
Richard Lazaro.
Je vais essayer de répondre à tout ^^
1- quel est la différence entre ++$nbchar et $nbchar++
Cela se nomme la pré et la post incrémentation. Cela a une grande importance lorsqu'on minimise le code par exemple :
[code:1]
PS> $a = 1
PS> 1 -eq $a++
True
PS> $a
2
PS> $a = 1
PS> 1 -eq ++$a
False
PS> $a
2
[/code:1]
Donc, lors de la post incrémentation (1er exemple) on traite l'objet contenu dans la variable $a avant de vrai l'incrémentation
Et dans la pré incrémentation (2eme exemple) on incrémente l'objet dans $a avant de le passer à l'opérateur -eq
2- quel est la difference entre $_.count et $_.length
La propriété count permet de conter le nombre d'élément d'un tableau ou d'une liste en générale
La propriété lenght s'applique à une chaîne de caractère et retourne donc la longueur de cette chaîne.
3- quel est la différence entre $_.getenumerator() et $_.ToCharArray()
Là on aborde quelque chose de plus compliqué, j'espère ne pas me tromper.
La méthode GetEnumerator permet d'obtenir un objet qui nous permettra d'iterer sur la collection qui appel cette méthode. La méthode GetEnumerator vient de l'interface IEnumerable ce quif ait que chaque collection aura cette méthode.
La méthode ToCharArray permet de transformer une chaîne de caractère de type String en tableau de cractère de type Char[], cette méthode est spécifique à la classe String.
Tu auras peut être remarqué que la classe String à la méthode GetEnumerator, je pense que l'explication vient du fait qu'une chaîne de caractère est avant tout un tableau de charactère.
Après, cette partie n'est pas ma spécialité on va dire :/
J'espère avoir répondu au mieux à tes questions.
Bien Cordialement,
Richard Lazaro.
Think-MS : (Get-Life).Days | %{ Learn-More }
\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein
Connexion ou Créer un compte pour participer à la conversation.
- jojo
-
Auteur du sujet
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 187
- Remerciements reçus 0
il y a 15 ans 5 mois #7945
par jojo
Réponse de jojo sur le sujet Re:compter des caractères dans un fichiers
merci Richard 
je crois que je commence à comprendre, reste une tt petite question, dans ton exemple:
[code:1]gc .\monfichier.ps1 `
| %{ $_.ToCharArray() `
| %{if($_ -cmatch '[a-z]'){++$nbchar}}
}[/code:1]
pourquoi avoir choisi ++$nbchar au lieu de $nbchar++
sachant que tous les deux retournent le bon resultat
merci
je crois que je commence à comprendre, reste une tt petite question, dans ton exemple:
[code:1]gc .\monfichier.ps1 `
| %{ $_.ToCharArray() `
| %{if($_ -cmatch '[a-z]'){++$nbchar}}
}[/code:1]
pourquoi avoir choisi ++$nbchar au lieu de $nbchar++
sachant que tous les deux retournent le bon resultat
merci
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.045 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- compter des caractères dans un fichiers