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

Format d'échange (XML, JSON...) Java Discussion :

probleme buffer [SAX]


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 7
    Par défaut probleme buffer
    voila j'utilise sax1 pour parser un fichier xml

    lors de la lecture des caractere(avec fonction character(char[] buff, int offset, int len) au bout d un momnet j ai un probleme
    c a dire que le buff est de taille 8193, offset 8175 donc le len =18, hors la chaine de caractere que je lis a une taille superieur a 18 (la taille restant dans le buffer, donc il en prend que les 18 premiers caracteres ce qui fausse le traitement de l information et me leve une exception du a l erreur de traitement.

    Comment faire pour reinitialiser ce buffer manuellement ou lui dire de la faire je n ai pas trouver sur le forum ni dasn les javadocs j ai peut etre loupe un truc

    merci d avance

  2. #2
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    bonjour,

    ce comportement est normal. La fin du tableau est atteinte. Il va donc appeler ta méthode characters deux fois de rang.

    La première fois avec les premiers caractères, la deuxième avec les derniers.

  3. #3
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Par défaut
    SAX1 ca commence a dater .. tu ne peux pas passer a SAX2 deja :
    Perso j'ai deja fait la conversion yen a pour 5 min montre en main avec un bon editeur (eclipse pour ne pas le citer)

    Pour ce qui est du probleme, tu es sur que c'est pas un bug du parser que tu utilises ..

    Tu n'as normalement pas a t'occuper du buffer, c'est le parser qui gere ca, toi tu as juste a extraire les donnees grace a offset et length

    au hasard montre ta methode character.. ya peut-etre un truc qui cloche ...

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 7
    Par défaut
    ben la fonction est un peu enorme avec switch et dasn chaque case jor 300 ligne, enfin ej reprend un code
    mais voici la ligne qui recuper l information

    String s = new String(buf, offset, len);
    et apres j utilise s;

    Sinon je vais voir comment passer a sax2 rapidement car ya enormment de traitement fait dasn le fichier et je voudrais pas tout refaire

    Sinon j use Jbuilder ca devrai faire affaire aussi non ?(pour le faire rapidement)

  5. #5
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    ok regarde plus haut : le comportement est normal ...

    Fias tes test sur la fermeture de la balise.

  6. #6
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    dans la javadoc :

    SAX parsers may return all contiguous character data in a single chunk, or they may split it into several chunks
    http://java.sun.com/j2se/1.4.2/docs/...entHandler.htm

  7. #7
    Rédacteur
    Avatar de bulbo
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2004
    Messages
    1 259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2004
    Messages : 1 259
    Par défaut
    yann2 a raison (pour une fois Nan je plaisante, je me la pete juste un peu avec ma quatrieme etoile toute neuve )

    Ce que tu dois faire c'est mettre tout ce que tu lis grace a character dans un StringBuffer par exemple, et lors de l'appel a endElement pour l'element contenant le texte, tu fais le traitement du texte et tu vides le StringBuffer ..

    Passer a SAX2, meme si c'est bien, peut regler ton probleme ou pas (tout dependra du parser utilise et de sa politique)

    Bulbo
    [Java] [NetBeans] [CVS]
    La FAQ Java
    Merci de ne pas me poser de questions techniques par MP.

  8. #8
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    yann2 a raison (pour une fois
    C'était pas la première fois ........








    J'ai réussi à résoudre le problème de conversion de réel vers entier

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 7
    Par défaut
    lol

    bon c bon j ai resolu mon probleme, merci beaucoup a vous j ai compris d ou venait erreur ce qui ma permeit de traiter et ..... ca marche

    au moment ou je fait character je regarde la taille de offst+len si superieu ou egale a la taille du buff je fais juste sauvgearder le string et rien d autre et quand la fonction character est rapellé ben je concatenne les deux string, ca ma eviter de deplacer ts les traitement dasn endelement(qui a aussi un traitement qui lui est propre ) masi plus j y pense plus je me demande ce que fais le traitement a cette endroit la(vu comment est programmer le truc, enfin bref ej verrais ca quand j aurai un peu de temp)

    pour passer a sax2, faudra j en parle avec responsable

    encore merci a tous :!)

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

Discussions similaires

  1. Probleme Buffer Size avec DAQmx write
    Par cedji dans le forum LabVIEW
    Réponses: 0
    Dernier message: 16/06/2010, 11h34
  2. Probleme "buffer overrun detected"
    Par gwenagan dans le forum Windows Vista
    Réponses: 1
    Dernier message: 03/09/2007, 00h49
  3. probleme avec le stencil buffer
    Par conrad dans le forum DirectX
    Réponses: 7
    Dernier message: 05/08/2005, 21h48
  4. Probleme avec le vertex buffer
    Par nicoo dans le forum DirectX
    Réponses: 12
    Dernier message: 19/10/2004, 21h45
  5. Probleme Stencil Buffer
    Par supergrey dans le forum DirectX
    Réponses: 14
    Dernier message: 20/07/2004, 20h54

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