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 :

Fichier avec grand nombre de lignes et lenteur de traitement [Batch]


Sujet :

Scripts/Batch

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 32
    Points : 27
    Points
    27
    Par défaut Fichier avec grand nombre de lignes et lenteur de traitement
    Bonjour.

    J'utilise le Batch suivant pour récuperer les 400 premieres lignes d'un fichier DEPART.csv et les sauvegarder dans un fichier RESULTE.CSV.

    Code bat : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @echo off
     
    echo RECUPERTATION 400 LIGNES DU FICHIER DEPART
     
    for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . depart.csv') do if %%i geq 1 if %%i leq 400 echo %%j >> resulte.csv

    Cela fonctionne rapidement sur des fichiers DEPART de centaines de lignes à quelques milliers.

    Il m'arrive cependant de lancer le batch sur des fichiers DEPART de 300 000 à 500 000 lignes, et la cela prend beaucoup de temps.

    Est'il possible d'optimiser la vitesse de traitement, sachant que finalement, il n'est pas nécessaire de boucler sur toutes les lignes du fichier DEPART dans bien des traitements que j'effectue ?

    Vous remerciant de toute astuce.

  2. #2
    Membre éclairé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2012
    Messages
    359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2012
    Messages : 359
    Points : 738
    Points
    738
    Billets dans le blog
    2
    Par défaut
    le problème de ton script, c'est que tu effectue une recherche pour récupérer le numéro de ligne qui match sur chaque ligne non-vide puis tu découpe ta ligne. Ça fait beaucoup de code exécuté pour juste un numéro de ligne. De plus, tu lit des fichiers de 500 000 lignes pour 400 lignes récupéré, si tu place la boucle for dans une fonction, tu peux en sortir au bout des 400 lignes (un peu comme un break).

    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
    15
    16
    @echo off
    setlocal enabledelayedexpansion
     
    echo RECUPERTATION 400 LIGNES DU FICHIER DEPART
     
    call :ReadFile
    exit /b
     
    :ReadFile
    for /f "delims=" %%i in ('type depart.csv') do (
      set /a "CounterLine+=1"
      if !CounterLine! leq 400 (
        echo %%i >> resulte.csv
      ) else exit /b
    )
    exit /b
    Le gourou dicte la ligne (de commande) à suivre ...

    Penser à lire le Tutoriel Batch ou a consulter la FAQ Batch et ses contributions,
    ainsi que le Cour sur la ligne de commande et des scripts

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Bonjour.

    Merci InitSreen, pour l'exemple et les explications.
    Je vais étudier cela .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2000] Meilleure méthode pour insérer un grand nombre de lignes
    Par nicodev24 dans le forum Développement
    Réponses: 11
    Dernier message: 31/10/2016, 11h25
  2. Macro Solver pour un grand nombre de ligne
    Par hochimi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/07/2007, 23h20
  3. [javascript - formulaire] select avec grand nombre d'enregistrements
    Par mussara dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 28/02/2007, 14h20
  4. vue récupérant un grand nombre de lignes
    Par pointe dans le forum Requêtes
    Réponses: 5
    Dernier message: 10/12/2006, 19h29
  5. Lecture fichier texte avec un nombre de lignes à ignorer
    Par TravelMate dans le forum Langage
    Réponses: 20
    Dernier message: 02/08/2006, 11h59

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