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

WinDev Discussion :

Suppression doublons dans un fichier texte de plus de 1 Go


Sujet :

WinDev

  1. #41
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    La demande, c'est des fichiers de plus de 1 Go d'après le titre du sujet. Donc plus de 3 Go ça commence à faire, vous ne trouvez pas ?
    C'est un fait, mais tout dépend de l'usage de l'application, restreinte au développeur pour des imports ponctuels ou diffusable à un grand nombre et dans ce cas c'est difficilement envisageable.

    La remarque pour la valeur de la clé a mettre à 1 est tout à fait justifié.

    Concernant les sgbd, la plupart monte le maximum d'information en mémoire. L'article suivant en décrit les grandes lignes bien mieux que je ne pourrais le faire : http://sqlpro.developpez.com/sqlserv...isation/intro/
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  2. #42
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Oui, mais rentabiliser la mémoire disponible c'est autre chose qu'allouer une quantité en fonction des données. Un SGBD ne va pas tenter d'allouer 4 Go s'il n'y a que 1 Go disponible, simplement parce qu'il va parcourir une table de 4 Go.

    J'ai fait un test BULK INSERT Vs. HImporteTexte :
    J'ai testé d'abord avec un petit fichier, je crois 25 Mo, avec des lignes de 25 caractères. La table c'est une seule colonne PK de 100 caractères maxi. Je me souviens pas de tous les chiffres, je crois 27s à froid puis 10s à chaud pour SQL Server, et 330s à froid puis 180s à chaud pour HF.

    Ensuite j'ai testé 1 Go, 38 000 000 de lignes de 25 caractères.
    21 minutes pour SQL Server.
    Plusieurs heures pour HF, j'ai abandonné au bout de 3h environ.

    Il me reste à tester avec le tableau associatif, je pense qu'avec un fichier de 500 Mo ça devrait suffire pour faire planter l'application.

  3. #43
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Ca y est j'ai testé : à 256 Mo, fChargeTexte renvoie une chaîne vide (sans rien dans ErreurInfo, et après avoir quand même alloué les 256 Mo, bravo PC Soft !), et le remplissage du tableau associatif plante l'appli (GPF).
    Et en prime mon PC rame, maintenant.
    Ici, c'est un XP 32 bits avec 2 Go de RAM. Mais même en extrapolant...

    PS. Et pour enfoncer le clou : pour 81 Mo de texte ça prend 700 Mo de RAM, soit 8.6x.
    J'avais dit entre 3 et 10 fois avant de supprimer la valeur et le fChargeTexte (soit 2x de plus), donc 8.6 + 2 = 10.6x, j'étais en dessous de la réalité !

  4. #44
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Points : 1 100
    Points
    1 100
    Par défaut
    3 pages de réponses pour un problème de dédoublonnage...
    Il serait peut-être temps de faire un point sur la situation non ?
    • fChargeTexte est effectivement à proscrire, il faut mieux faire de l'accès séquentiel
    • Tu dis vouloir dédoublonner un fichier texte, mais tu n'en donnes pas les caractèristiques.
      - As-tu une ou plusieurs rubriques dedans ?
      - Est-ce toute la ligne qui est en doublon ? Ou bien le dédoublonnage doit-il se faire sur une seule rubrique ?
      - Les données dans ton fichier sont-elles triées ? (ça permettrait un dédoublonnage rapide à la main...)
    • Où dois-tu placer les données dé-doublonnées ? Dans un autre fichier texte ?

  5. #45
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Ca serait drôle qu'il nous dise que c'est trié. Parce que là c'est vraiment très facile.
    Autrement je vois pas plus simple et plus fiable que de passer par MySQL par exemple.

  6. #46
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 576
    Points
    2 576
    Par défaut
    Le fichier exemple que j'ai intégré avec MySQL était trié

  7. #47
    Membre éprouvé
    Inscrit en
    Avril 2008
    Messages
    1 129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 1 129
    Points : 1 283
    Points
    1 283
    Par défaut
    Merci à tous pour le temps que vous dépensez

    Le fichier texte possède une seule rubrique

    exemple :

    andre:lenoir
    Paul: Dupont
    Lavoisier
    coucou:123456

    la ligne ne dépassera jamais 40 caractères

    andre:123456 et andre:andre ne sont pas des doublons

    Le résultat est affiché dans un champ texte multiligne, mais j'ai remarqué que ce temps de chargement est excessif, donc la sauvegard du résultat dans un autre fichier texte fera l'affaire!

    Bien sûr le fichier n'est pas trié!!!

    Merci

  8. #48
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Citation Envoyé par zouzoukha Voir le message
    Le résultat est affiché dans un champ texte multiligne, mais j'ai remarqué que ce temps de chargement est excessif, donc la sauvegard du résultat dans un autre fichier texte fera l'affaire!
    On parle toujours d'1 Go ? Quel taux de doublons ?
    Parce que ça ferait au minimum 27 millions de lignes, et franchement je ne vois pas l'intérêt d'afficher dans une IHM des millions de lignes.

Discussions similaires

  1. [WD12] Chercher les doublons dans un fichier texte
    Par matt1704 dans le forum WinDev
    Réponses: 17
    Dernier message: 11/06/2009, 09h31
  2. Suppression blocs dans un fichier texte
    Par julie20 dans le forum C
    Réponses: 1
    Dernier message: 17/10/2007, 13h23
  3. Vérifier les doublons dans un fichier texte
    Par Shyboy dans le forum Langage
    Réponses: 2
    Dernier message: 11/07/2007, 10h34
  4. suppression de ^@ dans un fichier texte
    Par lulu70 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 27/04/2007, 12h03
  5. recherche de doublons dans un fichier texte
    Par portu dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 07/10/2003, 15h13

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