Partager
Affiche les résultats de 1 à 10 sur 10

Sujet : detecter l'emplacement d erreur ....java

  1. #1
    Inscrit
    décembre 2011
    Lieu
    404 not found
    Messages
    479
    Remerciements
    444
    Remercié(e) 102 fois dans 70 messages
    Pouvoir de réputation
    8

    detecter l'emplacement d erreur ....java

    bonjour a tout les geek/ette;
    j ai un TP d un simple compilateur (analyseur lexical + syntaxique) en java .....IDE : eclipse
    je lit le code apartire d une variable String (qui prend le code apartire d'un JTextArea) exemple :
    program test;
    debut
    fin.
    je lit caractère par caractère (current = charAt(i)) Tant que (i < text.lenght())
    ma question : exits-il une méthode pour savoir la ligne et la colonne du variable i question d affiché l emplacement de l'erreur s'il exits
    je crois que c est tou
    MERCI
    Que dit un geek qui se noie ?

    F1 ! ! F1! F1 ! ! F1

  2. # ADS
    Inscrit
    Toujours
    Lieu
    Monde des annonces
    Messages
    Plusieurs






     
  3. #2
    Inscrit
    décembre 2011
    Lieu
    404 not found
    Messages
    479
    Remerciements
    444
    Remercié(e) 102 fois dans 70 messages
    Pouvoir de réputation
    8

    Re : detecter l'emplacement d erreur ....java

    Que dit un geek qui se noie ?

    F1 ! ! F1! F1 ! ! F1

  4. #3
    Inscrit
    septembre 2010
    Lieu
    Alger
    Messages
    1 768
    Remerciements
    599
    Remercié(e) 893 fois dans 585 messages
    Pouvoir de réputation
    18

    Re : detecter l'emplacement d erreur ....java

    hmm, je ne sais pas s'il existe une méthode sous java. Le concept serait de définir deux variables k et j tels que k : numéro de ligne et j : numéro de colonne, on incrémente le j et une fois un nombre de caractères atteint (nombre de caractères maximum pour chaque ligne) tu remets à 0 le j et tu incrémentes le k(k++).

    Je ne sais pas si t'as saisi l'idée, si t'as d'autres question n'hésite pas à me les poser
    Dernière édition par Slown; 04/02/2012 à 17h26

  5. [Les 2 membres suivants remercient Slown pour cet excellent message :


  6. #4
    Inscrit
    décembre 2011
    Lieu
    404 not found
    Messages
    479
    Remerciements
    444
    Remercié(e) 102 fois dans 70 messages
    Pouvoir de réputation
    8

    Re : detecter l'emplacement d erreur ....java

    re
    merci slown j ai bien saisi ..... j ai pensé aussi a ça
    mais ...... je suis tombé sur un autre probleme
    Je veut lire caractere par caractere et a chak fois j ajoute le caractere lut au variable loadedString Tant que le caractere lut est soit un digit ou lettere
    dans l exemple précedent loadedString aura comme valeur "program" ........... normalement
    ps : les methodes Character.isDigit() et Character.isLetters() m en pas aidé
    merci ...
    Que dit un geek qui se noie ?

    F1 ! ! F1! F1 ! ! F1

  7. #5
    Inscrit
    septembre 2010
    Lieu
    Alger
    Messages
    1 768
    Remerciements
    599
    Remercié(e) 893 fois dans 585 messages
    Pouvoir de réputation
    18

    Re : detecter l'emplacement d erreur ....java

    C'est Character.isLetter(), les deux méthodes que t'as citées retournent un booléen, t'as une boucle for à l’intérieur tu fais un if (Character.isLetter('loadedString') || Character.isDigit('loadedString')), si ça retourne true tu stockes le caractère.

    PS : J'ai essayé de résumer, le mieux serait de prendre deux booléens a et b et de stocker dedans les valeurs que retournent les méthodes citées précédemment.
    Dernière édition par Slown; 04/02/2012 à 20h31

  8. Les membres suivants ont remercié Slown pour cet excellent message :


  9. #6
    Inscrit
    décembre 2011
    Lieu
    404 not found
    Messages
    479
    Remerciements
    444
    Remercié(e) 102 fois dans 70 messages
    Pouvoir de réputation
    8

    Re : detecter l'emplacement d erreur ....java

    while (Character.isDigit(current) || Character.isLetter(current)){
    loadedString += currenr;
    i++;
    current=charAt(i);
    }
    current c pour stoker le charactere courent .loadedString c est le mot qu aprés je verifié si c un mot-clet , identificateur ou constante
    alors normalement dés qu il tombe sur un espace ou un caratere special il sort de la boucle et il retourne loadedString ................. mai sa marche pas il ignore l espace

    slown ..encore merci
    Que dit un geek qui se noie ?

    F1 ! ! F1! F1 ! ! F1

  10. #7
    Inscrit
    septembre 2010
    Lieu
    Alger
    Messages
    1 768
    Remerciements
    599
    Remercié(e) 893 fois dans 585 messages
    Pouvoir de réputation
    18

    Re : detecter l'emplacement d erreur ....java

    Mettre un while ici c'est pas vraiment juste, au premier espace rencontré il s'arrête, il ne parcourt pas tout le texte, pense à une boucle for combinée avec un if. Ensuite, l'emplacement de i++ est faux, i vaudra i+1, essaye donc de mettre ça :
    {
    loadedString += charAt(i) ;
    i++;
    }
    Dernière édition par Slown; 04/02/2012 à 21h46

  11. #8
    Inscrit
    décembre 2011
    Lieu
    404 not found
    Messages
    479
    Remerciements
    444
    Remercié(e) 102 fois dans 70 messages
    Pouvoir de réputation
    8

    Re : detecter l'emplacement d erreur ....java

    re ........... fatigué
    1 - le problem de l espace est resolu ...merci ^^
    2 - je stock le type de jeton (Id keyword cosnt ou caratére) et son index (pour les keyword ca sera son emplacement a la table des mot clé) dans une linkedlist exemple : (keyword 2) (Identificateur 0) (keywords 7) (identificateur 1) ...normalement il affiche tel qu elle est .mais ..il affiche 4 fois (la langeur de la list) (identificateur 1) c comme si le pointeur ne bouge pas !! solutio ??..
    3 - les erreurs : et si je boucle tq j ai pas arrivé a la fain de la chaine (commme en pascal le End Of File) et une autre boucle tq je suis pa arrivé la fin de la ligne (le End Of Line) é j incrimente mes 2 variable (ligne et colonne) .... mais comment faire ca je c pas !!
    encore merci slown
    Que dit un geek qui se noie ?

    F1 ! ! F1! F1 ! ! F1

  12. #9
    Inscrit
    septembre 2010
    Lieu
    Alger
    Messages
    1 768
    Remerciements
    599
    Remercié(e) 893 fois dans 585 messages
    Pouvoir de réputation
    18

    Re : detecter l'emplacement d erreur ....java

    Pour ta deuxième question, c'est difficile de juger sans voir le code. Mais je suis sûr que le problème se trouve au niveau du stockage, il faudra penser à faire ça en alternance, un caractère suivi de son emplacement. Pour parcourir, il faudra utiliser cette boucle :
    for(int i = 0; i < al.size(); i++)
    {
    System.out.println("caractère à l'indice " + i + " = " + al.get(i));
    }
    La troisième question, oui c'est correct. La première boucle while contiendra la condition principale : while (i < text.length()), par la suite tu devras passer par des boucles for pour lire les caractères et stocker leurs emplacements, évite d'imbriquer trop de boucles while car ça peut t'embrouiller.
    Dernière édition par Slown; 05/02/2012 à 10h52

  13. #10
    Inscrit
    décembre 2011
    Lieu
    404 not found
    Messages
    479
    Remerciements
    444
    Remercié(e) 102 fois dans 70 messages
    Pouvoir de réputation
    8

    Re : detecter l'emplacement d erreur ....java

    mdr re
    le mdr ...psque j ai resté avec le problem de l affichage de la list presque 52 minutes alors que les variable (type ligne , colonne et index du jeton) qui forment le noed de la list jeton étaient declarer static ahhhhhh .........grave
    - j aussi reussir a donné la ligne et la colonne de l erreur ....... le code :
    if (current == (char)13){
    i++
    ligne++;
    colonne=1;
    }
    else if (current = (char)10) || (current = (char)9) {//pour evité les TAB
    i++
    ligne++;
    colone=1;
    }
    else erreur = new erreur(ligne,colonne,"votre erreur par exemple");
    Erreur.addlast(erreur);
    et tout marche nickel
    autre chose comment rendre ce sujet resole ....???? c tout
    encore merci slown
    bon8......................viVe les geek
    Dernière édition par lixtoon; 06/02/2012 à 22h38
    Que dit un geek qui se noie ?

    F1 ! ! F1! F1 ! ! F1

  14. Les membres suivants ont remercié lixtoon pour cet excellent message :


Sujets similaires

  1. Une caméra pour détecter les cellules cancéreuses
    Par TeamWorK dans le forum Paranormales & Insolites
    Réponses: 0
    Dernier message: 22/07/2012, 02h40
  2. erreur lors de l'execution d'un programme sur delphi
    Par lalla dans le forum Programmation
    Réponses: 18
    Dernier message: 30/06/2012, 11h04
  3. Erreur Rectifié dans un passeport Algérien !!
    Par la3reche dans le forum Discussions Libres
    Réponses: 6
    Dernier message: 29/02/2012, 19h02
  4. Ou est l'erreur?
    Par Xaru5 dans le forum Vannes
    Réponses: 16
    Dernier message: 18/12/2011, 14h43
  5. [Résolu] Erreur 720 lors d'une tentative de connexion
    Par lalla dans le forum Fournisseurs d'accès à Internet
    Réponses: 6
    Dernier message: 17/08/2011, 00h49

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas modifier vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé



Liens annexes