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

Langage Pascal Discussion :

[Débutant] Interclassement fichiers triés


Sujet :

Langage Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Par défaut [Débutant] Interclassement fichiers triés
    Bonjour,
    Je n'ai pas trouvé dans les tutoriels et FAQ d'explications sur les interclassements - dites-moi si je me trompe.
    J'ai 2 fichiers de départ: déjà trié par ordre alphabétique. Je voudrais, à la fin de mon programme, n'en avoir plus qu'un contenant toutes les données des 2 autres, triées.
    Comment puis-je faire?
    Merci par avance pour vos réponses.

  2. #2
    Membre émérite
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Par défaut
    Tu peux utiliser un fichier comme un array avec le module Tie::File. Voici un script qui fait ce que tu veux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    use strict;
    use warnings;
     
    use Tie::File;
     
    tie my @lignes1, 'Tie::File', '1.txt' or die("Peut pas ouvrir fichier: $!");
    tie my @lignes2, 'Tie::File', '2.txt' or die("Peut pas ouvrir fichier: $!");
     
    push @lignes1, @lignes2;
    @lignes1 = sort @lignes1;
    untie @lignes1;
    untie @lignes2;
    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
     
    {14:38}[vince@vincent: perl/dpn]% cat 1.txt 
    Allo
    Ciao
    {14:38}[vince@vincent: perl/dpn]% cat 2.txt 
    Bonjour
    Degage
    {14:38}[vince@vincent: perl/dpn]% perl sort2files.pl 
    {14:38}[vince@vincent: perl/dpn]% cat 1.txt 
    Allo
    Bonjour
    Ciao
    Degage
     
    {14:38}[vince@vincent: perl/dpn]%

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Par défaut
    recu en message privé:
    Citation Envoyé par apprenti doc
    Merci !
    Mais pour l'instant je connais et ne peux utiliser que des formules basiques comme les while et les if/else. Pas même les elsif ! Et sans tableau.
    Je dois me débrouiller avec ça…
    Si tu as une idée, elle sera la bienvenue.
    merci de repondre dans le topic, pour pouvoir avoir plus de reponses, et qu'eventuellement d'autres puissent profiter des reponses.

    Si c'est un exercice que tu dois faire alors je te conseil de regarder le code des modules cités, et de tenter d'imiter leur fonctionnement en tenant compte de tes contraintes

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 33
    Par défaut Merci
    Merci pour la réorientation vers le topic… Je le saurai !
    Pour l'adaptation, c'est pas gagné ! Mais j'y réfléchis.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    427
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 427
    Par défaut
    en gros le principe est assez simple avec deux fichiers triées:

    - tu ouvre tes deux fichiers en lecture et un nouveau en ecriture
    - tu lis une ligne dans chaque fichier, chacune dans une variable differente, genre $l1 et l$2;
    - si ($l1 lt $l2) alors tu ecris $l1 dans le nouveau fichier et tu reamplace $l1 par une nouvelle ligne lue dans le fichier 1, et ca continue...
    - des que l'une des deux variables est undef apres la lecture d'une ligne ca veut dire que le fichier en question est fini, donc tu ecris l'autre variable restante puis l'ensemble de l'autre fichier dans le nouveau

Discussions similaires

  1. Réponses: 11
    Dernier message: 06/11/2007, 13h01
  2. [Débutant(e)] fichier properties
    Par bfb dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 25/11/2005, 15h27
  3. [Débutant] Petit probleme try catch
    Par Terminator dans le forum Langage
    Réponses: 16
    Dernier message: 30/06/2005, 13h21
  4. [débutant][Swing] Fichier d'aide
    Par Invité dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 02/06/2004, 15h19
  5. [débutant]Quel fichier à joindre pour directdraw ?
    Par lvdnono dans le forum DirectX
    Réponses: 3
    Dernier message: 31/05/2004, 12h01

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