IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Retirer tous les line feed d'un document


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Janvier 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Janvier 2016
    Messages : 23
    Par défaut Retirer tous les line feed d'un document
    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.

    Quand j'exécute un script çà me coupe la ligne où il y a les feed line et donc après parfois çà cause des erreurs.
    Exemple si je dois appliquer une multiplication sur une colonne


    Voilà un exemple de ce que j'ai dans le document original
    Vu avec bloc notes
    Nom : lineFeed.PNG
Affichages : 695
Taille : 7,3 Ko

    Si je l'ouvre avec nopad++ par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    "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"
    Si vous pouvez m'aider çà serait sympa.
    Merci d'avance pour l'aide que vous pourrez m'apporter.

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Pour commencer, il faut être absolument certain de ce avec quoi tu bosses, donc il serait intéressant de voir ce que donne ton fichier dans un éditeur hexadécimal.

    Si on prend au pied de la lettre ce que tu dit, par contre, ça voudrait dire que tu veux supprimer tous les LF ('\n' = 0x0A) qui ne suivent pas un CR ('\r' = 0x0D) (car il faut laisser les CRLF intacts sinon tu auras une seule ligne dans ton document).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre averti
    Femme Profil pro
    Technicien Help Desk
    Inscrit en
    Janvier 2016
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Janvier 2016
    Messages : 23
    Par défaut
    Bonjour Médinoc

    Le document sur lequel je bosse est créé automoatiquement. C'est le résultat d'une requête sql.

    Des utilisateurs ont mis des saut de ligne dans des colonnes depuis le programme.
    Du coup, les sauts de lignes sont enregistrés et présents dans le document sur lequel je dois faire des modifiaction avant d'intégrer les données sur une autre base de données.

    La solution à mon problème srait de trouver le moyen de refirer tous les LF (seulement les LF) mais de garder intact les CRLF.

    J'ai essayé ce code en code asci 10 pour line feed mais çà ne marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @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
    )
    Tu aurais une idée de comment je dois m'y prendre?
    Merci d'avance pour les conseils tu m'apporteras

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Un bête programme en C devrait pouvoir faire l'affaire, qui lirait le fichier caractère par caractère, mais garderait le caractère précédent en mémoire. Et si le dernier caractère lu est un LF et que le précédent n'est pas un CR, on saute l'étape "écrire le caractère dans le fichier de sortie"...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Hello,

    Une solution toute simple :

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @echo off & cls
     
    Set "$c=1"
    setlocal enabledelayedexpansion
     
    (for /f "delims=" %%a in (input.txt) do (
      if !$c!==1 (
        set $l=%%a
        set /a $c+=1
        ) else (
        echo !$l!%%a
        set "$c=1"
      )
    ))>sortie.txt

    On ne s'intèresse pas de savoir si on a un LF ou un CR.

    On incrèmente juste un compteur pour chaque ligne. Si la valeur du compteur = 1 on garde la variable si il est à 2 on lie la variable avec la nouvelle ligne
    et on reset le compteur à 1.


  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Cela ne suppose-t-il pas que toutes les lignes contiennent exactement un (1) caractère LF à supprimer ? Je doute que cela soit garanti dans le fichier...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/04/2014, 13h08
  2. [E-03] Macro qui se lance tous les jours sans ouvrir le document excel ?
    Par doublenico dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/10/2008, 10h06
  3. [VB.NET][2.0]retirer en une fois tous les objets d'un panel
    Par Golzinne dans le forum Windows Forms
    Réponses: 5
    Dernier message: 14/03/2006, 15h06
  4. Trouver tous les objets d'un certain type dans un document?
    Par kobe dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 03/11/2005, 17h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo