Question Supprimer un retour à la ligne

Plus d'informations
il y a 11 ans 4 semaines #19580 par rocketter
Voici le fichier, j'suis encodé en ANSI.

Par contre pourquoi faire appel à une méthode statique pour lire un fichier, les méthodes conventionnelles de PowerShell ne suffissent pas ?

Et le transtypage est-il utile ?

Désolé de toutes ces questions lol, mais comme j'suis débutant en PowerShell et que je veux apprendre, j'aime bien comprendre :)

La pièce jointe test-93047b4bc2543f12acdd4c4ff0a44202.txt est absente ou indisponible

<br><br>Message édité par: rocketter, à: 28/04/15 08:25

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

Plus d'informations
il y a 11 ans 4 semaines #19581 par xyz
Réponse de xyz sur le sujet Re:Supprimer un retour à la ligne
La regex fonctionne avec ton fichier.
rocketter écrit:

Par contre pourquoi faire appel à une méthode statique pour lire un fichier, les méthodes conventionnelles de PowerShell ne suffissent pas ?

Pas toujours, ici on peux utiliser ceci :
[code:1]
[string]$s=Get-Content -Path 'C:\temp\test2.txt' -ReadCount 0
[/code:1]
Il faut transtyper la variable $s en string sinon on récupère un tableau d'objets.
rocketter écrit:

Et le transtypage est-il utile ?

Uniquement si tu souhaites visualiser les caractères dans le format décimal ( [char]65 ).<br><br>Message édité par: Laurent Dardenne, à: 28/04/15 12:12

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 4 semaines #19582 par rocketter
Merci Laurent, je vais essayer de comprendre ça.

Donc mon code d'origine ne fonctionnait pas à cause du type de mon fichier, d'où la nécessité de passer par une variable de type string c'est ça ?

Par contre, malgré ton lien, j'ai du mal à comprendre ta regex : (\n|\r|\r\n)A\|

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

Plus d'informations
il y a 11 ans 4 semaines #19585 par xyz
Réponse de xyz sur le sujet Re:Supprimer un retour à la ligne
rocketter écrit:

Donc mon code d'origine ne fonctionnait pas à cause du type de mon fichier, d'où la nécessité de passer par une variable de type string c'est ça ?

Non, selon les versions de PS les cmdlets proposent des paramètre supplémentaire (-Raw), pour ce cas je ne me souvenais plus si cela avait une importance...
rocketter écrit:

Par contre, malgré ton lien, j'ai du mal à comprendre ta regex : (\n|\r|\r\n)A\|

\n : line feed -&gt; chr(10)
\r : carriage return -&gt; chr(13)

Le métacaractère pipe | est une alternative (soit ceci, soit cela, ou bien ceci ou cela) afin de prendre en compte les différentes constructions de fin de ligne.

Tutoriels PowerShell

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

Plus d'informations
il y a 11 ans 4 semaines #19589 par rocketter
Merci pour l'explication de la regex Laurent ; par contre excuse moi mais je ne comprends pas, tu n'as pas utilisé la variable de type string pour contourner le type de fichier ?

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

Plus d'informations
il y a 11 ans 4 semaines #19591 par xyz
Réponse de xyz sur le sujet Re:Supprimer un retour à la ligne
Il existe plusieurs manières de faire.
Le résultat à obtenir est une string et ce à partir d'un fichier :
[code:1]
$t=(gc 'C:\temp\test2.txt')
$t.GetType()
#System.Array

$s=$t -as [string] #transtypage explicite
$s.GetType()
#String
#ou
[string]$s=gc 'C:\temp\test2.txt' #transtypage implicite
$s.GetType()
#String

$s=[IO.File]::ReadAllText('C:\temp\test2.txt')
$s.GetType()
#String

#Affiche le détail de la méthode
[IO.File]::ReadAllText
# OverloadDefinitions
#
# static string ReadAllText(string path)
# static string ReadAllText(string path, System.Text.Encoding encoding)

#ICI on utilise la première signature
[/code:1]
Le résultat est identique...

Tutoriels PowerShell

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

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