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

Free Pascal Discussion :

Détecter les lignes identiques dans deux tableaux de texte [Free Pascal]


Sujet :

Free Pascal

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 21
    Points : 17
    Points
    17
    Par défaut Détecter les lignes identiques dans deux tableaux de texte
    Si quelqu'un a un peu de temps j'aimerai qu'il regarde cette petite partie du programme et qu'il me dise éventuellement pourquoi j'ai toujours un retour de la variable "count" qui est égal à 0 !
    Aucun problème lors de la compilation !

    L'objectif est de comparer deux tableaux de texte ! et de savoir combien de lignes sont identiques !
    Mais ça ne marche malheureusement pas !

    mon programme est un vrai bordel mais j'essaie de faire avec des choses "simple"

    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
    30
    31
    32
    33
    34
    35
    36
     
     
    i:=0;
    count:=0;
    j:=0;
     
    while not eof(f) do
     
    begin
     
            while not eof(p) do
     
            begin
     
                    if ((pipi[i])='begin') or ((pipi[i])='end;') or ((pipi[i])='end.') then
                    begin
                            count:=count+0;
                    end
     
                    else if  (pipi[i]) = (tab[j]) then
                    begin
                            count:=count+1;
                    end
     
                    else if (tab[j]) <> (pipi[i]) then
                    begin
                            count:=count+0;
                    end;
     
                    i:=i+1;
     
            end;
     
            j:=j+1;
     
    end;
    Sachant que quand je tape : "writeln (tab[1]);" ou encore " writeln(pipi[2]);" le programme m'affiche bien la bonne ligne correspondante donc ce n'est pas un problème venant de la !

    Voila merci bien !

    Peu être que le problème réside peu être dans le fait qu'on ne peut pas enchainer des boucles et des conditions ? ou quelque chose du genre ?

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 663
    Points
    5 663
    Par défaut
    Kie,

    Mets-nous des copier/coller de ton code, c'est plus simple.

    Si tu ne sais pas comment faire, cherche un peu sur le forum, on en a parlé plusieurs fois, assez récemment (ce qui ne signifie pas : ces 2 ou 3 derniers jours).

    Présente ton code correctement : indentation, etc. bref, leitmotiv habituel.

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Meo,

    J'ai lu le post ou vous parlez de copier coller un programme en pascal :

    http://www.developpez.net/forums/d64...-turbo-pascal/

    mais quand je le fais et que je le colle dans mon message ça ne garde pas l'indentation effectuée !

    Voili voilou !

    A bientôt !

  4. #4
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Points : 2 501
    Points
    2 501
    Par défaut
    Citation Envoyé par jeanmich Voir le message
    Meo,

    J'ai lu le post ou vous parlez de copier coller un programme en pascal :

    http://www.developpez.net/forums/d64...-turbo-pascal/

    mais quand je le fais et que je le colle dans mon message ça ne garde pas l'indentation effectuée !

    Voili voilou !

    A bientôt !
    La methode que j'avais donnée reste de loin la meilleur
    La truc c'est d'ouvrir le fichier *.pas avec un editeur de texte (bloc note, pspad, ...). Si tu es sous windows, un click droit -> ouvrir avec->ensuite tu choisis l'editeur.
    Le copier/coller devient tout naturel

  5. #5
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 663
    Points
    5 663
    Par défaut
    Keo,

    Et c'est aussi d'encadrer le code par les balises [*code] [/*code] (sans les *, qui ne servent qu'à les invalider), au lieu de quote.

  6. #6
    Expert confirmé
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Points : 4 015
    Points
    4 015
    Par défaut
    Bonjour
    Citation Envoyé par darrylsite Voir le message
    La methode que j'avais donnée reste de loin la meilleur
    La truc c'est d'ouvrir le fichier *.pas avec un editeur de texte (bloc note, pspad, ...). Si tu es sous windows, un click droit -> ouvrir avec->ensuite tu choisis l'editeur.
    Le copier/coller devient tout naturel
    Ta méthode est une solution mais de loin la meilleure non puisque la méthode initialement utilisée par jeanmich permet de garder l'indentation, ça ne s'est pas fait remarqué parce qu'il avait mis les balises quote à la place des code comme l'a rappelé droggo

    Bonnes fêtes à tous.

  7. #7
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 663
    Points
    5 663
    Par défaut
    Joi,

    Oups, je n'avais pas remarqué ça :
    Citation Envoyé par jeanmich Voir le message
    mon programme est un vrai bordel mais j'essaie de faire avec des choses "simple"
    Dans tous les cas, même pour de petits programmes, ne pas se laisser entraîner dans ce genre de situation.

    La rigueur dans la conception et écriture du code supprime la plus grande partie des erreurs, ne serait-ce que parce qu'on se retrouve avec un code clair et lisible.

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    oga,

    Vous avez jeté un coup d'œil quand même or not ?

    Il est trop bordélique ou ça passe quand même ??

    Sinon vous me conseillez de chercher une autre manière pour arriver à mes fins ? avec moi de "if" et de "else" et de "while not" ? ^^

  9. #9
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 663
    Points
    5 663
    Par défaut
    Jeo,

    Que viennent faire des boucles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while not eof(f) do
     
    begin
     
            while not eof(p) do
    alors qu'il n'y a pas trace fichier dans tes boucles.

    À quoi peuvent servir des lignes comme
    Comme tu l'as dit, c'est un vrai bordel.

    Quand on s'est laisser entraîner à faire un truc comme ça, la meilleure solution est de reprendre à zéro, en évitant de faire des copier/coller depuis l'ancien code vers le nouveau, sinon le bordel sera toujours là.

    Cette remarque n'est pas une plaisanterie, c'est ainsi qu'on retrouve très fréquemment ce qui ne va pas.

  10. #10
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par droggo Voir le message
    Jeo,

    Que viennent faire des boucles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while not eof(f) do
     
    begin
     
            while not eof(p) do
    alors qu'il n'y a pas trace fichier dans tes boucles.
    Se sont des fichiers que j'ai ouvert et affiché précédemment dans mon programme !
    Et "eof" j'ai trouvé que ça pour arrêter ma boucle au bon moment !


    Citation Envoyé par droggo Voir le message

    À quoi peuvent servir des lignes comme
    J'ai en faite représenté les 3 solutions possible pour la structures conditionnelle,
    la ligne count:=count+0; est une façon de ne rien faire ! vu que je ne savais pas trop quoi mettre ...

    Je vais suivre ton conseil et essayer de le refaire ! mais je pense pas que ça va changer grand chose !
    Le code mis sur ce forum est déjà le fruit de plusieurs recommencement !
    Le premier été largement pire que ça

  11. #11
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 949
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 949
    Points : 5 663
    Points
    5 663
    Par défaut
    Qoe,
    Citation Envoyé par jeanmich Voir le message
    Se sont des fichiers que j'ai ouvert et affiché précédemment dans mon programme !
    Et "eof" j'ai trouvé que ça pour arrêter ma boucle au bon moment !
    Relis ce que j'ai écrit, et trouve la contradiction avec ta réponse.

    Citation Envoyé par jeanmich Voir le message
    Je vais suivre ton conseil et essayer de le refaire ! mais je pense pas que ça va changer grand chose !
    Parce que tu continues à écrire du code sans avoir correctement réfléchi au problème.

    Il faut, avant de coder, savoir comment résoudre le problème. En clair, il faut avoir trouvé l'algorithme à appliquer.

    Coder plus ou moins au hasard comme tu sembles le faire ne sert à rien, et conduit seulement à
    Citation Envoyé par jeanmich Voir le message
    Le code mis sur ce forum est déjà le fruit de plusieurs recommencement !
    Le premier été largement pire que ça

  12. #12
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Laissez tomber tout ça ! désolé de vous avoir fait perdre votre temps !
    Je vais essayer autre chose !
    on m'a appris que ce que je voulais faire n'était pas vraiment possible.

    J'espère que certaines personnes lisent encore ce sujet parce que j'ai une petite question pour vous !

    Je voudrais savoir ce qu'il y a dans un tableau lorsque la case est vide ?
    Il y a normalement quelque chose mais je n'arrive pas à trouver!
    J'espère avoir été clair !

    Merci !

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

Discussions similaires

  1. [Gestion de fichiers] Lister les lignes identiques entre deux fichiers
    Par |Psk| dans le forum Utilitaires et Sécurités
    Réponses: 0
    Dernier message: 11/02/2015, 09h09
  2. détecter les lignes parallèles dans une image
    Par clynda dans le forum ImageJ
    Réponses: 4
    Dernier message: 17/06/2010, 01h28
  3. suprimer une ligne identique sur deux tableaux
    Par bosk1000 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 02/03/2009, 09h22
  4. Trouver les éléments identiques dans deux listes
    Par ricololo dans le forum MATLAB
    Réponses: 4
    Dernier message: 29/01/2009, 13h25
  5. Détecter les lignes identiques entre deux matrices
    Par totovich dans le forum MATLAB
    Réponses: 5
    Dernier message: 17/04/2007, 09h42

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