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 Java Discussion :

découpage d'un ficher en bloc


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut découpage d'un ficher en bloc
    bonjour à tous.

    je suis nouveau sur le forum. on m'a dit que ici il y avait des gars super douées en java. voilà je suis débutant ingénieur dans la POO java. je travaille sur une applliquation de taritement des données.
    l'objectif de mon message est de savoir si quelqu'un a une idée pour ce problème:

    j'arrive à faire un lecture de contenu d'un fichier mais je voudrais lorsque je lis une valeur définit récupérer les 387 valeures suivantes dans un tableau afin te pouvoir travailler dessu.

    le type des valeur sont des int qui remontent d'un FileInputStream.

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour et bienvenue, pourrais-tu donner un peu de code (en utilisant la balise CODE (le #)), histoire de voir ce que tu as fait, comment lis-tu le fichier?

    Si tu arrives à lire le fichier, qu'est-ce que tu n'arrives pas à faire ensuite?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    oui c'est vrai qu'il manque du code. donc voici le code de lecture du fichier. il remplit dynamiquement un tableau. le truc est que je cherche à faire une lecture continue et lorsque je tombe sur la valeur hexa ff. je veux extraire un bloc de 387 octets.
    Code java : 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
     
    public void lecture(File fichiersource) throws IOException{
                in = new BufferedInputStream(new FileInputStream(fichiersource));
                String lec = null;
                String lec2 = null;
                String dtrame = "ff";
                for(j=0;j<fichiersource.length();j++){
                    for(i=0;i<386;i++){
                        tabs[i] = Integer.toHexString(in.read());
                        tabi[i] = Integer.parseInt(tabs[i], 16);
                        if(tabi[i]==255 && tabi[i+1]==255){
                            posantenne = Integer.parseInt((tabs[i+1]+tabs[i+2]), 16);
                            System.out.println(posantenne);
                            break;
                        }
                    }
                }
     
        }

  4. #4
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Tu peux faire :
    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
    public void lecture(File fichiersource) throws IOException{
                in = new BufferedInputStream(new FileInputStream(fichiersource));
                String lec = null;
                String lec2 = null;
                String dtrame = "ff";
                for(j=0;j<fichiersource.length();j++){
                    for(i=0;i<386;i++){
                        tabs[i] = Integer.toHexString(in.read());
                        if(tabs[i].equals(dtrame) {
                            byte[] valeurs = new byte[387];
                            in.read(valeurs, 0, 387);
                        }
                        tabi[i] = Integer.parseInt(tabs[i], 16);
                        if(tabi[i]==255 && tabi[i+1]==255){
                            posantenne = Integer.parseInt((tabs[i+1]+tabs[i+2]), 16);
                            System.out.println(posantenne);
                            break;
                        }
                    }
                }
     
        }
    J'ai juste insérer le if et la lecture de la taille que tu veux, pour la suite, je ne sais pas ce que tu souhaites faire, je te laisse ordonner ça.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    Merci pour l'idée je n'y avais pas pensé. je vais bosser dessus et je te tiens au courant .car la suite est de faire un extraction de valeur pour ensuite les utiliser dans une animation graphique.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    bon j'ai essayé le code mais en fait je m'excuse je me suis mal exprimé car avec cette méthode je récupère un tableau de de byte mais je cherche à récupérer un tableau d'hexa. j'ai fait un code que converti du byte à l'int. mais bon je n'arrive pas à passer de du byte à l'hexa.

    Code java : 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
    37
     
    public int[] lecturefichier(File fichiersource) throws IOException{
            try {
                finst = new FileInputStream(fichiersource);//on connecte un flux de lecture sur le fichier source.
                insc = new FileReader(fichiersource);
                tab = new int[388];
                tba = new String[600];
                valeurs = new byte[387*8];
                valeurs2Int = new int[387*8];
                while(i<=386){
                    i++;
                    tab[i]=finst.read();
                    tba[i]=Integer.toHexString(finst.read());
                    if(tba[i].equals("ff")) {
                            finst.read(valeurs, 0, 387*8);
                            byteToInt(valeurs[i]);
     
                            System.out.println(valeurs[i]);
                        }
                }
     
            } catch (FileNotFoundException ex) {
                Logger.getLogger(Traitementanimation.class.getName()).log(Level.SEVERE, null, ex);
            }return Traitementanimation.tab;
        }
     
    public int byteToInt(byte bIn){
            if((bIn > 127) || (bIn < -128))
            return 0;
            else{
                if(bIn >= 0)
                return (int)bIn;
                else{
                    return (-(-(int)bIn) & 0xff);
                }
            }
       }

  7. #7
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    J'ai trouvé cette fonction en faisant une petite recherche sur google, je ne l'ai pas testé mais ça me parait correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        public static String asHex(byte buf[])
            {
                    StringBuffer strbuf = new StringBuffer(buf.length * 2);
     
                    for(int i=0; i< buf.length; i++)
                    {
                            if(((int) buf[i] & 0xff) < 0x10)
                                    strbuf.append("0");
                            strbuf.append(Long.toString((int) buf[i] & 0xff, 16));
                    }
                    return strbuf.toString();
            }

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    merci cela me semble pas mal, je vais la tester et je te dit ...

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    j'ai essayé le code fonctionne je vais me débrouiller avec .si j'ai besoin je te fait signe merci pour le coup de main.

Discussions similaires

  1. Découpage d'une image en blocs
    Par steal dans le forum Images
    Réponses: 11
    Dernier message: 18/08/2021, 13h55
  2. [gnuplot] Découpage d'un fichier en plusieurs blocs
    Par KTARIK dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 17/07/2014, 10h18
  3. [Débutant] Découpage d'une matrice en petits blocs
    Par macErmite dans le forum MATLAB
    Réponses: 5
    Dernier message: 31/12/2011, 18h54
  4. Découpage d'une image pour Insertion bloc
    Par Addict` dans le forum Mise en page CSS
    Réponses: 13
    Dernier message: 24/02/2009, 17h12
  5. DCT & Découpage en bloc 8*8
    Par meera dans le forum Visual C++
    Réponses: 3
    Dernier message: 15/11/2006, 18h14

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