Question Tronquage de chaine (Résolu)

Plus d'informations
il y a 16 ans 6 mois #1173 par didine
C'est passionnant mais alors ....
très difficile ...pour moi
JANEL , ARNAUD , A TOUS MERCI

le code suivant ;
Extraire dans test.txt
les chaines de caractéres débutant par {POLYLINE]
Conprenant [GR] ou [GRP]
Et finissant par [END]
En remplaçant :Type=**** par Type=0x13

[code:1]get-content c:\test.txt -delimiter \"[END]\"
|foreach {$_ -replace \"Type=.*\",\"Type=0x13 \"}
|select-string \"[GR][GRP]\"|select-string \"POLYLINE\" > c:\Rest.txt[/code:1]

fonctionne bien \"à vue\" extraction et écriture
cependant

1: test.txt est au format \"ANSI\"
alors que \"Rest.txt\" est au format \"Ucs 2 Little ENDIAN\"

Ce qui génère une impossibilité pour l'appli qui doit
lire les données

Je la résout avec notepad++ qui effectue la conversion
je n'y arrive pas autrement ...

2:Beaucoup plus grave

[code:1]
Dans \"test.txt\"

Data1=(49.34329,1.13108),(49.34269,1.13194),(49.34209,1.13348),(49.34071,1.13382),(49.34063,1.13417),(49.34029,1.13434),(49.33900,1.13442),(49.33737,1.13477)

Dans \"Rest1.txt\"

Data1=(49.34329,1.13108),(49.34269,1.13194),(49.34209,1.13348),(49.34071,1.13382),(49.34063,1.13417),(49.34029,1.13434)
,(49.33900,1.13442),(49.33737,1.13477)
[/code:1]


Avec ou sans la conversion du 1
Powershell écrit les data1 en incluant un retour à la
ligne !
Là c'est terrible car tout ce qui est \"mis à la ligne\"


,(49.33900,1.13442),(49.33737,1.13477)

apparaît bien dans Rest.txt mais n'est pas lu par
l'appli ce qui conduit a des \"vides\"dans les courbes tracées (les coordonnées des points)
mis a la ligne .....


Là c'est dur , dur ,dur ,je planche
Et comme le dit Arnaud encore une nuit blanche

MERCI

Message édité par: newt, à: 17/10/07 17:12

Message édité par: newt, à: 17/10/07 17:14

Message édité par: newt, à: 17/10/07 17:21

Message édité par: newt, à: 17/10/07 17:27<br><br>Message édité par: Arnaud, à: 30/11/07 10:06

NEWTON_
Pièces jointes :

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

Plus d'informations
il y a 16 ans 6 mois #1174 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Re:TRONQUAGE DE CHAINE
Bonjour Newton,

Par défaut PowerShell génère des fichiers Unicode UTF16. Pour forcer le type d'encodage il faut que tu passes par la commandelette Out-File en lui précisant le paramètre -encoding ASCII.

Soit le code suivant :
[code:1]
get-content c:\test.txt -delimiter \&quot;[END]\&quot; `
|foreach {$_ -replace \&quot;Type=.*\&quot;,\&quot;Type=0x13 \&quot;} `
|select-string \&quot;[GR][GRP]\&quot;|select-string \&quot;POLYLINE\&quot; `
|Out-File -encoding ASCII c:\rest.txt
[/code:1]

Sinon pour ce qui concerne le retour charriot, je pense qu'il a du être ajouté par ton éditeur de texte car je n'ai pas ce problème. Et il n'y a pas de raison pour que PowerShell en rajoute s'il n'y en a pas dans ton fichier de départ.

Courage... ;)

Arnaud
PS: j'ai ajouté des backtits \&quot;`\&quot; aux fins de ligne pour indiquer à PowerShell que la ligne n'est pas terminée. Ainsi tu peux copier/coller ton code lorsqu'il s'affiche sur plusieurs lignes.

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 16 ans 6 mois #1178 par didine
Réponse de didine sur le sujet Re:TRONQUAGE DE CHAINE
Merci Arnaud

l'encodage a réussi ;)

mais rien à faire pour le retour chariot
je ne comprends pas
il place au delà du

PARDON,PARDON, 120ième

je les ai compté !!!
un retour chariot !

Y'a t il un moyen de dire a Powershell \&quot;d'annuler'
le retour chariot , ou de supprimer DONC le 121 iéme!!!
caractère ???

Merci<br><br>Message édité par: newt, à: 17/10/07 18:04

NEWTON_

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

Plus d'informations
il y a 16 ans 6 mois #1182 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Re:TRONQUAGE DE CHAINE
Est-ce que tu pourrais poster ton fichier dans le forum (sous forme zippée) afin que je puisse y jeter un oeil ?

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 16 ans 6 mois #1183 par didine
Réponse de didine sur le sujet Re:TRONQUAGE DE CHAINE
Merci Arnaud

La pièce jointe test.zip est absente ou indisponible



Attention Arnaud
dans notepad ils paraissent semblables ..
or c'est faux
regarde la ligne Data1 de fin de fichier
dans rest1.txt

Avec notepad++ on vois bien
l'apparition du retour chariot

ENCORE MERCI<br><br>Message édité par: newt, à: 17/10/07 18:37

NEWTON_
Pièces jointes :

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

Plus d'informations
il y a 16 ans 6 mois #1185 par didine
Réponse de didine sur le sujet Re:TRONQUAGE DE CHAINE
Arnaud merci

j'ai trouvé je crois
grâce au blogue de JANEL
25 mars 2006 à 9h38 !!!!!!!!!!

[code:1]get-content c:\test.txt -delimiter \&quot;[END]\&quot; |foreach {$_ -replace \&quot;Type=.*\&quot;,\&quot;Type=0x13 \&quot; }|
select-string \&quot;[GR][GRP]\&quot;|select-string \&quot;POLYLINE\&quot; |
Out-File -encoding ASCII c:\rest.txt|
type c:\rest.txt |%{$line=$_.split(\&quot;;”) | %{$_.trim()}; [string]::join(“;”,$line)}[/code:1]

je crois que c'est bon

ARNAUD , JANEL MIRACLE

merci merci

NEWTON_

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

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