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

Scripts/Batch Discussion :

Nombre de lignes d'un fichier ?


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 157
    Par défaut Nombre de lignes d'un fichier ?
    (Re)Bonjour

    J'essaie de recopier le contenu d'un fichier, en omettant sa dernière ligne.

    J'ai commencé par chercher avec un for, mais il n'y a pas de paramètres (comme skip) qui permette d'ignorer les dernières lignes d'un fichier.

    J'ai donc essayé de calculer le nombre de lignes en le parcourant une première fois, et en ajoutant '+1' à une variable. En fin de boucle, j'aurais eu le nombre de lignes... Mais soit je suis encore plus boulet que je ne l'aurais cru, soit ya psa d'addition de nombre via le DOS/CMD

    J'avoue que je ne sais pas comment m'y prendre... Auriez-vous un indice, une piste, ou même un soluton s'il vous plait ?

  2. #2
    Membre éprouvé
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Par défaut
    C'est comme sa:

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 157
    Par défaut
    Merci beaucoup, du coup je devrais pouvoir m'en sortir !

  4. #4
    Membre éprouvé
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Par défaut
    Si tu arrive a supprimer la dernière ligne montre moi comment tu fait

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 157
    Par défaut
    Rah je bloque, c'est dommage

    Mon fichier de bookmarks fait 93 lignes, en commencant à la ligne 1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SET nombre_lignes=1
    FOR /F "tokens=* usebackq delims= " %%n IN ("bookmarks_mairie.html") DO set /a nombre_lignes+=1
    
    echo Nombre de lignes : %nombre_lignes%
    Ce petit bout de code me confirme que le compteur est à 93 lignes.
    Jusque là, tout va bien.

    Maintenant je vais essayer de relire ce fichier, ligne par ligne.
    Si la ligne que je lis n'est pas la n°83, alors je la recopie dans mon nouveau fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SET num_ligne=0
    FOR /F "tokens=* usebackq delims= " %%r IN ("bookmarks_mairie.html") DO set /a num_ligne+=1 & IF NOT "%num_ligne%"=="%nombre_lignes%" echo %%r >> "bookmarks_complet.html"
    Et là... Ca ne m'en recopie qu'environ 75...
    Je regarde donc plus attentivement la structure du fichier bookmarks :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <!DOCTYPE NETSCAPE-Bookmark-file-1>
    <!-- This is an automatically generated file.
         It will be read and overwritten.
         DO NOT EDIT! -->
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
    <TITLE>Bookmarks</TITLE>
    <H1 LAST_MODIFIED="1178880106">Bookmarks</H1>
    
    <DL><p>
        <DT><A HREF="http://intranet" ADD_DATE="1129204579" LAST_VISIT="1129204778" LAST_MODIFIED="1129204849"  LAST_CHARSET="ISO-8859-1" ID="rdf:#$rKEcG1">Intranet</A>
        <DT><H3 ADD_DATE="1129206086" LAST_MODIFIED="1129206221" ID="rdf:#$wkFLm2">Documentation</H3>
            <DL><p>
            <DT><A HREF="http://www.pagesjaunes.fr/" ADD_DATE="1129205678" LAST_MODIFIED="1129206589" LAST_CHARSET="ISO-8859-1" ID="rdf:#$kkFLm2">Pages jaunes : annuaire téléphonique</A>
            <DT><A HREF="http://www.voyages-sncf.com/" ADD_DATE="1129205721" LAST_CHARSET="ISO-8859-1" ID="rdf:#$mkFLm2">SNCF</A>
            <DT><A HREF="http://www.airfrance.fr/" ADD_DATE="1129205747" LAST_CHARSET="UTF-8" ID="rdf:#$nkFLm2">Air France</A>
            <DT><A HREF="http://www.viamichelin.com/" ADD_DATE="1129205688" LAST_MODIFIED="1129206595" LAST_CHARSET="ISO-8859-1" ID="rdf:#$lkFLm2">ViaMichelin : Itinéraire, Route, Plan, Carte de France, Plan de Ville, Carte Europe</A>
            <DT><A HREF="http://www.mappy.fr/" ADD_DATE="1129205811" LAST_VISIT="1129205815" ICON="data:image/x-icon;base64,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" LAST_CHARSET="ISO-8859-1" ID="rdf:#$pkFLm2">Mappy - plans, itinéraires, guide d'adresses en Europe</A>
        </DL><p>
        ...
    On note deux choses :
    - Il peut y avoir des sauts de lignes
    - Il peut y avoir des ligne extrêmement longues (Encodage des icones au format base64)

    D'une part je ne sais pas supprimer le paramètre ICON qui est trop long.
    Si je pouvais le supprimer via mon .BAT, ca serait parfait...

    D'autre part, après avoir supprimé les paramètres ICON manuellement, je me suis attaqué au problème des sauts de lignes. Je me suis dit qu'il suffisait de modifier la boucle FOR et d'ajouer un echo. lorsque %%r serait vide...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SET num_ligne=0
    FOR /F "tokens=* usebackq delims= " %%r IN ("bookmarks_mairie.html") DO set /a num_ligne+=1 & IF NOT "%num_ligne%"=="%nombre_lignes%" echo %%r >> "bookmarks_complet.html" || IF "%%r%a"=="a" echo. >> "bookmarks_complet.html"
    Mais au final, je ne parviens pas à écrire ma boucle correctement. Le saut de ligne n'est jamais ajouté

    Je pense que je vais devoir laisser tomber, car même si il me semble possible de résoudre le problème du saut de ligne, je ne vois pas comment résoudre le problème des paramètres ICON.

    Merci pour toute cette aide

  6. #6
    Membre éprouvé
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Par défaut
    Citation Envoyé par Nyphel
    Rah je bloque, c'est dommage

    Mon fichier de bookmarks fait 93 lignes, en commencant à la ligne 1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SET nombre_lignes=1
    FOR /F "tokens=* usebackq delims= " %%n IN ("bookmarks_mairie.html") DO set /a nombre_lignes+=1
    
    echo Nombre de lignes : %nombre_lignes%
    Que fait le usebackq dans cette boucle ?

Discussions similaires

  1. [C#] Nombre de lignes d'un fichier xls (Excel)
    Par BouB dans le forum Windows Forms
    Réponses: 8
    Dernier message: 30/03/2009, 10h58
  2. Nombre de lignes d'un fichier
    Par sygale dans le forum Linux
    Réponses: 2
    Dernier message: 20/04/2005, 17h45
  3. Nombre de ligne d'un fichier
    Par charliejo dans le forum MFC
    Réponses: 4
    Dernier message: 07/04/2005, 10h10
  4. [Fichier] Nombre de ligne dans un fichier texte
    Par NewSer dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 10/11/2004, 16h58
  5. Réponses: 2
    Dernier message: 02/03/2004, 19h38

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