Question Split fichier text

Plus d'informations
il y a 12 ans 2 mois #16797 par Helfer Florian
Réponse de Helfer Florian sur le sujet Re:Split fichier text
J'ai aussi fais cette procédure de passer par XL d'abord et d'enregistrer ensuite en txt et je suis d'accord que cela fonctionne!

Le soucis justement, c'est que je dois faire ce traitement uniquement pas PS... Je dois aller récupérer des données spécifiques pour une ligne spécifique en PS, sans passer par XL.

C'est pour ça que je me demandais si, comme pour XL, il y moyen d'ajouter un \&quot;identificateur de texte\&quot; ou une autre solution... Car dans XL lorsqu'on importe le fichier on peut lui donner un séparateur et justement cet identificateur de texte!<br><br>Message édité par: florian.helfer, à: 22/01/14 12:46

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

Plus d'informations
il y a 12 ans 2 mois #16799 par Helfer Florian
Réponse de Helfer Florian sur le sujet Re:Split fichier text
Voilà, par exemple, essaies ce code et tu verras le problème à la sortie... :(

[code:1]$reader = [System.IO.File]::OpenText(\&quot;cheminVersExemple.txt\&quot;«»)
$reader.ReadLine() &gt; $null
try {
while (($line = $reader.ReadLine()) -ne $null) {
$data = $line.split(\&quot;:\&quot;«»)
Foreach($cells in $data){
if($cells -eq \&quot;\&quot;«»){
$cells = \&quot;$\&quot;
$cells
}else{
$cells
}

}
}
}
finally {
$reader.Close()
}[/code:1]

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

Plus d'informations
il y a 12 ans 2 mois #16800 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Split fichier text
florian.helfer écrit:

J'ai aussi fais cette procédure de passer par XL d'abord et d'enregistrer ensuite en txt et je suis d'accord que cela fonctionne!

Une information importante qui nous manque...
florian.helfer écrit:

Le soucis justement, c'est que je dois faire ce traitement uniquement pas PS

Oui, ça j'ai bien compris :lol:
florian.helfer écrit:

C'est pour ça que je me demandais si, comme pour XL, il y moyen d'ajouter un \&quot;identificateur de texte\&quot; ou une autre solution... Car dans XL lorsqu'on importe le fichier on peut lui donner un séparateur et justement cet identificateur de texte!

Je n'ai pas compris.
Il faut déjà savoir transformer ton fichier pour l'utiliser avec la v2, si tu as la v3, il faut 'juste' transformer les simple guillemets.

Tutoriels PowerShell

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

Plus d'informations
il y a 12 ans 2 mois #16801 par Helfer Florian
Réponse de Helfer Florian sur le sujet Re:Split fichier text

Laurent Dardenne écrit:

florian.helfer écrit:
J'ai aussi fais cette procédure de passer par XL d'abord et d'enregistrer ensuite en txt et je suis d'accord que cela fonctionne!

Une information importante qui nous manque...


Désolé... j'ai vraiment pas pensé à précisé cela.. :(

Je suis en V2 mais j'ai quand même essayer avec les \&quot;vrai\&quot; guillemets :P Mais cela ne fonctionne encore pas.. ^^
Voilà le code avec le changement de guillemets, mais toujours même problème... :/
[code:1]
$reader = [System.IO.File]::OpenText(\&quot;cheminExemplt.txt\&quot;«»)
$reader.ReadLine() &gt; $null
try {
while (($line = $reader.ReadLine()) -ne $null) {
$lineReplace = $line.Replace(\&quot;'\&quot;,'\&quot;')
$data = $lineReplace.split(\&quot;:\&quot;«»)
Foreach($cells in $data){
if($cells -eq \&quot;\&quot;«»){
$cells = \&quot;$\&quot;
$cells
}else{
$cells
}

}
}
}finally {
$reader.Close()
}[/code:1]

Je dois faire comment donc pour le transformer correctement? :whistle:<br><br>Message édité par: florian.helfer, à: 22/01/14 13:22

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

Plus d'informations
il y a 12 ans 2 mois #16803 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Split fichier text
Une solution de reformatage du code
[code:1]#fichier d'origine
$Lines=Get-Content 'c:\temp\ExemplePrn-0.txt' -Encoding UTF8
$Lines[0]=$Lines[0] -replace ':$',''
$New=$Lines|% { $_.Replace(\&quot;'\&quot;,'\&quot;') }
#Fichier reformaté
$New|Set-Content 'c:\temp\ExemplePrn-1.txt' -Encoding UTF8
Import-csv 'c:\temp\ExemplePrn-1.txt' -Delimiter ':'[/code:1]

Un truc qui tombe en marche :
[code:1]
$s=\&quot;'e' a 'e'. c'est d'un j'ai l'être m'appelle, n'est-ce pas s'assurer? T'as s'y 'guillemets'? S'arrimer: réel.:'blablabla'::'none'::'trucs':'asdfsdf':'1s'\&quot;
#negative lookbehind, (?&lt;!()\)', recherche les apostrophes qui ne sont pas précédées par un caractère d'élision.
#negative lookahead, '(?!()) permet de trouver une apostrophe qui n'est pas suivie par un caractère déclenchant l'élision.
$s -replace \&quot;(?&lt;!(c|d|j|l|m|n|s|t))'\&quot;,'\&quot;' -replace \&quot;'(?!(a|e|i|o|u|y|ê|ë|î|ï|ô))\&quot;,'\&quot;'
[/code:1]
Un pis-aller, avant de trouver le Saint-Graal...<br><br>Message édité par: Laurent Dardenne, à: 23/01/14 10:34

Tutoriels PowerShell

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

Plus d'informations
il y a 12 ans 1 mois #16804 par Helfer Florian
Réponse de Helfer Florian sur le sujet Re:Split fichier text
Wow un joli bout de code là! :D Merci beaucoup! :D

Bon maintenant plus qu'à trouver comment stopper le split(\&quot;:\&quot;) lorsque je suis dans un texte \&quot;\&quot;...!!!!!!
PS: Je pense qu'il faut encore ajouter un champ à ton exemple pour mon cas('09:35:00'):
[code:1]$s=\&quot;'e' a 'e'. c'est d'un j'ai l'être m'appelle, n'est-ce pas s'assurer? T'as s'y 'guillemets'? S'
arrimer: réel.:'blablabla'::'none':'09:35:00':'trucs':'asdfsdf':'1s'\&quot;
#negative lookbehind, (?&lt;!()\)', recherche les apostrophes qui ne sont pas précédées par un
caractère d'élision.
#negative lookahead, '(?!()) permet de trouver une apostrophe qui n'est pas suivie par un caractère
déclenchant l'élision.
$s -replace \&quot;(?&lt;!(c|d|j|l|m|n|s|t))'\&quot;,'\&quot;' -replace \&quot;'(?!(a|e|i|o|u|y|ê|ë|î|ï|ô))\&quot;,'\&quot;'[/code:1]

Message édité par: florian.helfer, à: 23/01/14 09:06<br><br>Message édité par: florian.helfer, à: 23/01/14 10:38

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

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