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. #1
    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 Suppression doublons dans un fichier texte de plus de 1 Go
    Bonjour à tous!


    J'ai besoin de supprimer des doublons dans plusieurs fichiers texte.

    Jusqu'à présent je m'en sortais bien avec le procédé suivant :

    1°) Chargement du fichier dans une chaine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sListeChaine= fChargeTexte(MonFichierTexte)
    2°) Vidage de mon fichier Hyperfile

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    HSupprimeTout(MALISTE)
    SI ErreurDétectée ALORS
    	Erreur("File creation failed!")
    	RETOUR
    FIN
    3°) Pour chaque ligne UneLigne de sListeChaine séparée par RC, je recherche dans mon Fichier MALISTE, si pas trouvé, Hajoute UneLigne dans le fichier MALISTE (j'en profite pour ajouter UneLigne dans la Chaine sListeChaineSansDoublon)

    En fin de traitement je récupère ainsi une liste sans doublon.
    Tout fonctionne parfaitement jusqu'au moment ou j'ai eu des fichiers texte de1 Go à traiter.

    Le résultat s'affiche au bout de plusieurs minutes (voir 5 à 6 mn)

    Est ce la bonne manière? Existe t-il un moyen d'optimiser?
    D'autres outils sur le net traitent ce type de fichier en une vingtaine de secondes

    Merci d'avance pour toute aide...

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Si tu as un index unique sur ton fichier, tu peux simplement "tenter" d'insérer tous les enregistrements. Si tu as une erreur d'intégrité, c'est un doublon.

    Tatayo

  3. #3
    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
    Salut Tatayo! et merci d'avance

    euuuh j'ai peur d'être largué...

    J'ai au départ un fichier txt de 1 Go.
    Tu veux dire que la méthode utilisée est bonne? et que je devrais simplement éliminer les Hlitrecherche et tenter d'ajouter l'enregistrement et contrôler l'erreur?

    Ce serait vraiment

  4. #4
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Analyste programmeur senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Points : 4 681
    Points
    4 681
    Billets dans le blog
    22
    Par défaut
    Pour optimiser un programme il faut savoir le ou les traitements qui prennent le plus de temps à s'exécuter.

    Pour cela tu peux lancer une analyse de performances dans Windev.
    En résultat, tu auras la liste des fonctions les plus utilisés et leur temps de traitements.

    Si c''est ta fonction de recherche, je suis d'accord avec la solution de tatayo.
    ------------------------------------------------------------------------------------------------------------------------------------------
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag
    ------------------------------------------------------------------------------------------------------------------------------------------
    Site perso : Formation, Expérience, Réalisations, ...
    Blog : Le Blog de DSR57 - Programmation WinDev

  5. #5
    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
    Salut,

    J'ai testé sur un fichier texte de 686 000 lignes mais je n'ai pas d'amélioration significative... : 1 mn 57 s



    L'analyseur de performance m'indique que HAjoute() est mon plus grand consommateur et incontournable! En enlevant le HRaz je gagne 3 secondes environ.

    Voici le code utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    HSurErreur(DUPS,hErrDoublon,"")
    POUR TOUTE CHAÎNE UneLigne DE sListeChaine SEPAREE PAR RC
    	DUPS.Ligne=UneLigne
    	SI PAS	HAjoute(DUPS) ALORS
    		SI HErreurDoublon() ALORS
     
    		SINON
     
    		FIN
    	FIN
    FIN
    Est - il envisageable d'utiliser plusieurs threads pour HAjoute() ???

    Merci d'avance pour l'aide...

  6. #6
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Question : pourquoi ne pas faire la recherche de doublons en mémoire sur la chaine sListeChaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    NouvelleChaine = ""
    POUR TOUTE CHAÎNE UneLigne DE sListeChaine SEPAREE PAR RC
     
    	SI Position(NouvelleChaine,UneLigne) = 0 ALORS
     
    		NouvelleChaine+=UneLigne
     
    	FIN
    FIN
    A tester, c'est du brut de fonderie...

    Note : tu lis un fichier de 1Go : ça met un minimum de temps.

    Après, je ne sais pas ce que tu fais de ta liste...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  7. #7
    Rédacteur/Modérateur

    Avatar de dsr57
    Homme Profil pro
    Analyste programmeur senior
    Inscrit en
    Octobre 2003
    Messages
    1 139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Analyste programmeur senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 139
    Points : 4 681
    Points
    4 681
    Billets dans le blog
    22
    Par défaut
    Super la capture d'écran de l'analyseur de performances, ça nous permet de déterminer exactement ce qui prend du temps.

    Et dans ton cas, Hajoute, et comme tu le dis si bien fonction incontournable dans ton code

    Je suis d'accord avec frenchsting :
    Note : tu lis un fichier de 1Go : ça met un minimum de temps.
    Si tu fais le ratio nombre du temps passé par Hajoute on arrive a environ : 0.001 sec par ajout dans le fichier.

    En revanche HRAZ, le nombre d'appel à cette fonction est énorme.
    Question ton fichier DUPS contient une seule colonne ?

    Autres questions : Ton problème, c'est le temps total du traitement ou le fait que tu ne vois rien se passer à l'écran pendant le traietement ?
    ------------------------------------------------------------------------------------------------------------------------------------------
    Mon message vous a aidé, pensez à remercier . La discussion est résolue, n'oubliez pas le tag
    ------------------------------------------------------------------------------------------------------------------------------------------
    Site perso : Formation, Expérience, Réalisations, ...
    Blog : Le Blog de DSR57 - Programmation WinDev

  8. #8
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Bonjour,

    Ce qui te prend le plus de temps c'est de passez par un fichier HyperFile.
    Pour moi la solution de frenchsting sera la plus rapide.
    en gros tu lis ta ligne si elle ne fait par partie de ta chaîne sans doublons tu la rajoute (attention il faut penser aussi à ajouter un RC).

    Tu peux aussi passer par un tableau de chaine, à voir si la différence de vitesse entre position et tableaucherche est significative
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  9. #9
    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
    A tester parce que niveau perf, on est parfois surpris avec WD, mais pourquoi ne pas se servir des fonctions existantes ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sListeChaine= fChargeTexte(MonFichierTexte)
    ChaîneVersTableau(sListeChaine, MonTableau, RC)
    TableauSupprimeDoublon(MonTableau)
    Ensuite, ajout dans la BDD, sans contrôle puisque tout est déjà OK...
    HAjoute, ou plus rapide (en théorie au moins), HEcrit puis HReindexe.

  10. #10
    R&B
    R&B est déconnecté
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2005
    Messages : 571
    Points : 1 263
    Points
    1 263
    Par défaut
    ce que je ferais :
    - créer un fichier HF (déclaration de fichier + source de donnée ...) conforme à la structure du fichier texte.
    - cela marche mieux si le fichier texte a des séparateur, sinon il faut prévoir la programmation pour faire une copie avec séparateur (ligne à ligne en séparant les rubriques selon les positions dans les lignes).

    Ensuite sur sort l'arme qui tue : himportetexte() dans ton fichier hf décrit précédement.

    tu va tuer les temps de tes hajoute !

    enfin un classique parcours selon clé (à déterminer dans la description du fichier HF) "à la remontée" (du dernier au premier sur la clé) pour savoir si l'enregistrement est un doublon de clé par rapport à la ligne précédement lue.

    au lieux de supprimer : utiliser hraye et réorganise ton fichier ensuite (avec suppresion des enregistrement rayés.

    Un parcours final du HF pour sortir les données en txt permettra d'avoir un fichier dédoublonné : le tout en une seule passe !

  11. #11
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    pour ce genre de traitement, je ne passe plus par Windev mais par Talend qui est très performant pour la gestion des fichiers.

    à bientôt,

    Nicolas

  12. #12
    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
    J'aurais tendance, personnellement, à passer par un tableau associatif :

    http://doc.pcsoft.fr/fr-FR/?tableau-...-type-variable

    L'avantage c'est que tout se passe en mémoire, donc pas de HAjoute sur un fichier HF.

    Par contre, il est certain que si tes fichiers texte continuent à grossir, la solution de passer par un tableau mémoire sera un jour ou l'autre non fonctionnelle, par le fait que la mémoire à une taille limité. Cette remarque doit tenir compte de la taille de la clé discriminante de ton fichier pour avoir une indication de la taille du fichier texte que tu peux traiter (information que je n'ai pas)

    D'un autre coté, il faut pas oublier que de lire un fichier prend du temps, si l'on part sur une machine entrée de gamme avec un débit moyen du disque de 33Mo cela fait tout de même 33 sec incompressible pour lire 1Go.
    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.

  13. #13
    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
    Salut à Tous!

    Ben dis donc, si avec tout cela je ne m'en sors pas, je suis bon pour la poubelle

    Merci pour tout, je reviendrai vers vous!

  14. #14
    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
    Salut les amis!

    Désolé pour le retard, mais petits soucis de famille à régler avant!

    @frenchsting et dsr57

    J'avais déjà tenté avec les fonctions de recherche dans la chaine et vite abandonné! Au départ c'est rapide mais la vitesse est inversement proportionnelle à la taille du fichier NouvelleChaine!

    J'ai stoppé car au bout de 5 mn il n'avait pas fini pour le même fichier texte de 686000 lignes

    @mail.spam et Bowen

    idem pour le tableau de chaines! 6 mn et toujours pas fini

    @RNB et Delphi

    Je vais tester vos suggestions...

    @Nico

    Est ce bien de ce site qu'il sagit? Talend

    Il a l'air lourd plus de 500 Mo!!!
    Est il possible de l'intégrer à une appli WD?

    A tout hasard je mets un exemple de fichier texte : Fichier texte de 686000 lignes

    Merci encore une fois pour vos réactions

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 217
    Points : 487
    Points
    487
    Par défaut
    Salut Zouzoukha,

    Avec la solution que je t'ai conseillée, à savoir tableauassociatif+hecrit+réindexation, j'obtiens moins de 55 secondes sur un pc qui a l'air moins puissant que le tiens d'après ton analyse de performance.
    35s de HEcrit
    8s de HReindexe
    et le reste pour enlever les doublons avec le tableau associatif.

    PS : je n'ai toujours pas eu le temps de regarder ton md5

    Cordialement

    Madsl@nD

  16. #16
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Comme je le disais et le précisaient également dsr57 et DelphiManiac, traiter 1Go de données prend du temps. Si tu arrives à 55s, solution de Madsland, c'est déjà excellent.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  17. #17
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Citation Envoyé par zouzoukha Voir le message
    @Nico

    Est ce bien de ce site qu'il sagit? Talend

    Il a l'air lourd plus de 500 Mo!!!
    Est il possible de l'intégrer à une appli WD?
    Oui il s'agit bien de cette application mais uniquement Data Integration. Elle est lourde mais elle est destinée à ce genre de traitement. Si tu as des bases de données à transférer de technologies différentes, des données à transformer, des fichiers plats à traiter (son point fort) alors tu peux t'y pencher et tu verras que le temps de traitement est vraiment excellent.

    On peut passer des commandes pour lancer des scénarii et donc le lancer à partir de Windev.

    à bientôt,

    Nicolas

  18. #18
    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 579
    Points
    2 579
    Par défaut
    Test rapide avec la la commande de chargement de fichier sous MySQL. 7,9s sans optimisation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    mysql> load data infile 'c:/mdl_combo1.txt'
    ->  ignore
    ->  into table t1
    ->  fields terminated by ':' ;
    Query OK, 228063 rows affected (7.90 sec)
    Records: 686511  Deleted: 0  Skipped: 458448  Warnings: 0
    Sous MySQL, d'après mon expérience, la vitesse de chargement est de 5 millions de lignes à la minute. C'est une estimation, ça dépend de plusieurs facteurs.

  19. #19
    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
    Salut les DevMen !!!

    @MadsLand

    Désolé je n'avais pas vu ta réponse, je vais tenter cette voie de suite

    @Nico

    J'abandonne cette solution car c'est une petite appli gratuite mise à disposition d'une petite communauté. Et je me vois mal en train de souffrir à mettre cette solution en place et la distribuer

    @vmolines

    Bonne tentative de découragement Moins de 8 secondes!!! je suis blazé. Mais je me vois mal à mon âge me lancer dans sql
    Seulement, j'obtiens en réalité environ 6000 doublons!
    Ici tu en as 228063 ??? ou 458448 ???

    Merci pour toutes ces remontées

  20. #20
    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
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    NomCheminFichier est une chaîne = "G:\temp\mdl_combo1\mdl_combo1.txt"
    IdFichier est un entier
    LigneLue est une chaîne
    nbrLigne est un entier = 1
     
    tabRes est un tableau associatif de chaînes
    cle est une chaîne
     
    ChronoDébut(1)
    IdFichier = fOuvre(NomCheminFichier)
    SI IdFichier = -1 ALORS
    	Erreur(ErreurInfo(errMessage))
    SINON
    	LigneLue = fLitLigne(IdFichier)
    	TANTQUE LigneLue <> EOT
    		nbrLigne++
    		cle = ExtraitChaîne(LigneLue, 1, ":")
    		SI tabRes[cle]..Occurrence = 0 ALORS
    			tabRes[cle] = cle
    		FIN
    		LigneLue = fLitLigne(IdFichier)
    	FIN
    	fFerme(IdFichier)
    	Trace (ChaîneConstruit("%1 ligne(s) / %2 lignes(s) sont uniques", tabRes..Occurrence, nbrLigne))
    	duree est un réel
    	duree = ChronoFin(1)
    	duree = duree / 1000
    	Trace(ChaîneConstruit("Le traitement a duré %1 seconde(s)", duree))
    FIN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    228064 ligne(s) / 686512 lignes(s) sont uniques
    Le traitement a duré 6.491 seconde(s)
    6.5 secondes sur mon pc mais le fichier d'exemple ne fait pas 1go c'est sûr

    [edit]Correction d'une grosse borde :p
    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.

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, 08h31
  2. Suppression blocs dans un fichier texte
    Par julie20 dans le forum C
    Réponses: 1
    Dernier message: 17/10/2007, 12h23
  3. Vérifier les doublons dans un fichier texte
    Par Shyboy dans le forum Langage
    Réponses: 2
    Dernier message: 11/07/2007, 09h34
  4. suppression de ^@ dans un fichier texte
    Par lulu70 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 27/04/2007, 11h03
  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, 14h13

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