Supprimer des line feed dans des colonnes

Fermé
DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 - 16 janv. 2016 à 10:16
DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 - 18 janv. 2016 à 23:46
Bonjour à tous et toutes

Je viens vers vous car j'ai un gros problème et je n'arrive pas à le résoudre.
Je me suis rendue compte que dans le documents sur lequel je dois faire des scripts il y a des line feed dans certaines colonnes.

Quand j'exécute un script çà me coupe la ligne où il y a les feed line et donc après çà cause des erreurs.

Si j'ouvre mon document avec nopad++ dans les lignes où il y a des line feed j'ai

2K45.23";"ARC CA 125
";"4";"0";"103";"2222"
"2K45.28";"ARC CA 12
";"4";"0";"30" ;"412"
"2K46.01";"ARC
" ;"4";"440";"11 626"
"2K46.10";"ARC TG
";"4";"740";"8 483"


au lieu de ceci (même lignes sans les line feed)

2K45.23";"ARC CA 125";"4";"0";"103";"2222"
"2K45.28";"ARC CA 12 ";"4";"0";"30" ;"412"
"2K46.01";"ARC " ;"4";"440";"11 626"
"2K46.10";"ARC TG ";"4";"740";"8 483"



J'ai essayer de supprimer les LF présents dans les colonnes mais je dois garder les CRLF

Voilà ce que j'ai essayé
@echo off
setlocal enabledelayedexpansion
for /F "delims=" %%a in (articles.txt) do (
set a=%%a
set a=!a: char(10)=!
echo !a!
echo !a! >>resultat.txt
)


Si vous avez une idée de commet je dois procéder, un coup de main serait la bienvenue.

Merci d'avance pour votre aide.
A voir également:

2 réponses

Utilisateur anonyme
16 janv. 2016 à 20:44
Salut.

Il serait largement plus simple de le faire en AutoIt.
Je sais le faire.

Je remplace @LF (c'est une macro AutoIt) par "" : ce qui correspond à une suppression.


Bref, es-tu d'accord de le faire en AutoIt ?


++
0
DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 1 999
17 janv. 2016 à 08:55
Bonjour tonton_83

je ne connais pas du tout le AutoIt.
De plus, il faut que j'exécute une suite de script pour formater le document avant de réaliser une insertion dans la database.
0
Utilisateur anonyme
17 janv. 2016 à 11:26
Dommage pour toi

Peut-être qu'un expert en batch aura la solution et viendra t'aider.

@++
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
17 janv. 2016 à 12:37
hello
on teste si ligne ne termine pas par ", on la concatène avec la ligne suivante
C:> cc
"2K45.23";"ARC CA 125";"4";"0";"103";"2222"
"2K45.28";"ARC CA 12 ";"4";"0";"30" ;"412"
"2K46.01";"ARC " ;"4";"440";"11 626"
"2K46.10";"ARC TG ";"4";"740";"8 483"

C:> type cc.bat
@echo off
echo [^^^"]$>f2
set l2=
setlocal enabledelayedexpansion
for /F "delims=" %%a in (fichier.txt) do (
set l=%%a
echo !l!| findstr /r /G:f2>NUL
if !ERRORLEVEL! EQU 0 (
set l2=!l!
) else (
echo !l2!!l!
set l2=
)
)
0
DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 1 999
17 janv. 2016 à 22:20
Bonjour dubcek

je ne comprends pas pourqui tu mets dans le else
else (
echo !l2!!l!
set l2=
)


De plus, je n'arrive pas à afficher le résultat du script :(
Je retourne à mes autres scripts

@+
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
18 janv. 2016 à 08:55
echo !l2!!l! on affche la ligne précédente et la courante sur une seule ligne
set l2= on efface l2 si l y a une ligne entière qui suit on affichera que l1
0
DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 1 999
18 janv. 2016 à 23:46
Ok

Merci
:)
0