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

Java Discussion :

Lire jusqu'à un motif précis


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    BTS IRIS
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : BTS IRIS

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Par défaut Lire jusqu'à un motif précis
    Bonjour,

    Voici une partie mon code :
    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
    try 
    				{
    					String ligneComplet = null;
    					int nbrsMatcher = 0;
     
    					for(int i=0 ; i<11 ; i++)
    						{
    							line = buff.readLine() ;
    							Pattern pattern = Pattern.compile("(.*?)=");
    							Matcher matcherLine = pattern.matcher(line);
     
    							while(matcherLine.find())
    							{
    								ligneComplet = ligneComplet + matcherLine.group();
    								nbrsMatcher++;
    							}	
    						}
     
    					/*
    					 * TANT QUE tag trouvés
    					 */
    					String str[]=ligneComplet.split("\0\0\0");
     
    					for(int j = 0; j<=nbrsMatcher+1; j++)
    					{
    						System.out.println(str[j]);
    					}
    Voici ce qu'il me retourne :
    ARTIST=Sampler Jazz
    TITLE=Three Of A Kind - Panacea
    ALBUM=Back to Basics ! - Vol. 2
    DATE=1996
    TRACKNUMBER=
    .
    .
    .
    etc...

    Quelle méthode utiliser pour lire chacune des lignes du tableau str jusqu'au "=" et stocker la première partie dans un tableau et la deuxième partie dans un autre tableau ?

    Il faudrait que j'arrive a stocker ce que je lis dans une variable tant qu'on ne lit pas de "="

    Je ne demande pas forcement le code fait. Mais la methode que vous me conseillez

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Il serait bien plus simple de faire un split() sur le =

    line.split("=", 2) va te donner un tableau de deux Strings : avant et après le =
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Homme Profil pro
    BTS IRIS
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : BTS IRIS

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Par défaut
    Ok je vais essayer, merci pour ta réponse rapide

  4. #4
    Membre habitué
    Homme Profil pro
    BTS IRIS
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : BTS IRIS

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Par défaut
    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
    {
    							line = buff.readLine() ;
    							Pattern pattern = Pattern.compile("(.*?)=");
    							Matcher matcherLine = pattern.matcher(line);
     
    							while(matcherLine.find())
    							{
    								ligneComplet = ligneComplet + matcherLine.group();
    								nbrsMatcher++;
    							}
    						}
     
    						String tab[]=ligneComplet.split("\0\0\0",20);
     
    						for(int i=0; i<=nbrsMatcher+1; i++)
    						{
    							System.out.println(tab[i]);
    							//str[] = tab[i].split("=",2);<==Problème here. "str cannot be resolved to a type"
    						}
    Le souci c'est que je suis dans sur fichier .flac(donc full caractères spéciaux), du coup je dois d'abord trouver les chaines "TAG=Values" ce qu'y est fait.
    Je voudrais pouvoir reprendre ce que j'ai dans tab[](les chaines trouvées juste avant) et le split à nouveau...
    C'est possible ?
    Je sais pas trop ce que veux dire l'erreur qu'il affiche

    Mon fichier text ressemble à ca :
    [NUL][NUL][NUL]nom1=valeur1[caractère spécial][NUL][NUL][NUL]nom2=valeur2[caractère spécial][NUL][NUL][NUL]...etc...

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Houlà. Si c'est un fichier binaire il vaut mieux le parcourir en binaire. Après tout rien ne te protège d'avoir des "=" et des "\0" au milieu des données audio. C'est plutôt le contraire qui serait étonnant.

    Oublie ton idée de "motif" et de "Reader" et fais un vrai système de lecture de fichier FLAC binaire - en ne t'intéressant quand même qu'aux métadonnées, ce qui est facile.
    Pour ça tu auras déjà besoin d'un RandomAccessFile qui te permette de faire seek() pour passer d'un METADATA_BLOCK à l'autre, jusqu'à tomber sur celui de type METADATA_BLOCK_VORBIS_COMMENT.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre habitué
    Homme Profil pro
    BTS IRIS
    Inscrit en
    Avril 2014
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : BTS IRIS

    Informations forums :
    Inscription : Avril 2014
    Messages : 10
    Par défaut
    Oula alors je connais pas du tout ! Je vais me renseigner et j'essaye cette methode !
    Merci thelvin pour le conseil

Discussions similaires

  1. Restore d'anciens backups jusqu'à un Timestamp précis
    Par Fabby dans le forum Recovery Manager
    Réponses: 2
    Dernier message: 11/02/2010, 16h49
  2. Réponses: 5
    Dernier message: 14/11/2008, 16h04
  3. Réponses: 7
    Dernier message: 12/10/2007, 18h05
  4. Comment lire jusqu'au caractère CTRL-D EOF ?
    Par AsmCode dans le forum C
    Réponses: 9
    Dernier message: 08/02/2007, 21h27
  5. Réponses: 2
    Dernier message: 29/01/2007, 14h14

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