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

C++Builder Discussion :

Recupere les tag d'entete d'un fichier mp3


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 11
    Points : 9
    Points
    9
    Par défaut [Résolu] Recupere les tag d'entete d'un fichier mp3
    Bonjour,


    comment puis je faire pour recuperer les tag d'entete d'un fichier mp3?

    quand j'utilise la fonction TStringList je recupere que les 3 premier caractere suivi d'un caractere special.


    mais le | est plus petit et plus large.

    merci

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Points : 4 240
    Points
    4 240
    Par défaut
    je vienx po souvent souvent sur le forum, mais j'ai deja du voir cette question une 10n de fois, suffi de cherché et tu trouve

    pis o pire ya toujours google !

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    meme en cherchant dans les post du forum et google , je n'arrive pas avec TStringList

  4. #4
    Membre chevronné
    Avatar de Geronimo
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 156
    Points : 1 969
    Points
    1 969
    Par défaut
    Tu ne peux pas récupérer un fichier MP3 dans un TStringList !!!

    Une TStringList est une liste de chaînes de caractères, elle ne permet que de stocker des fichiers au format texte. Un fichier MP3 n'est pas au format texte, donc il faut y accéder par des méthodes standard de lecture de fichiers. Regarde un peu du coté de la librairie ID3Tag...

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2003
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    J'ai fait ça il y a quelque temps mais je n'ai pas fini, si ça peut t'aider
    ms je pense qu'il ya beaucoup mieux
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
     
      FILE *fichierMP3;
      fpos_t pos; 
      unsigned char buf[10];        //Tampon
      unsigned char a,b,c,d;
      char buf2[50];        //Tampon
      char buf3[50];        //Tampon
      char TAG[10];         //contient le tag en cour
      int i,j;              //compte les blancs
      bool fin=false;       //fin de boucle
      bool tagfound;
      unsigned long size;   //taille du tag globale
      unsigned long tagsize;//Taille du tag en question
     
      OpenDialog1->Execute();
      //Tentative d'ouverture du fichier en lecture seule
      if ((fichierMP3=fopen(OpenDialog1->FileName.c_str(),"rb"))==NULL)
        //le fichier n'a pas pu etre ouvert
        Application->MessageBox("Le fichier n'a pa pus être ouvert","Erreur",MB_ICONEXCLAMATION);
      else
        {//On se place en début de fichier
         fseek(fichierMP3,0,SEEK_SET);
     
         //Lecture de la présence ou nom d'un tag ID3
         fread(buf,3,1,fichierMP3);
         //Si pas d'ID3 on affiche une boite de dialoque
         if (strcmp(buf,"ID3"))
            Application->MessageBox("Le fichier indiquer ne contient aucune information","Erreur",MB_ICONEXCLAMATION);
         else
           {//lecture de la taille du TAG
            fseek(fichierMP3,6L,SEEK_SET);
            fread(buf,4,1,fichierMP3);
            size=((((unsigned short)buf[0])<<21)|(((unsigned short)buf[1])<<14 )|(((unsigned short)buf[2])<<7 )|((unsigned short)(buf[3])));
     
            //on lit les éléments jusqu'a la fin du tag
            pos=0;
     
            while (pos<size)
    	 { tagfound=true;
               //Lecture du nom du champ
    	   fread(TAG,0x4, 1, fichierMP3);//On lit le nom du tag
               TAG[4]=NULL;
               // lire la largeur du champs
               fread(buf,0x6L, 1, fichierMP3);
               a=buf[0];
               b=buf[1];
               c=buf[2];
               d=buf[3];
               tagsize=a << 21 |b << 14 | c << 7 | d;
     
               //On passe les drapeaux
     
               //On lit le contenu du tag
    	   fread(buf2,tagsize,1,fichierMP3);
     
               //Supprimer les caratères en trop au début s'il y'en a
               if (tagfound)
                 {i=0;
                  while (buf2[i]==0x00)
                   {for (j=0;j<tagsize;j++)
                      buf2[j]=buf2[j+1];
                    i++;
                   }
                  buf2[tagsize-1]=0;
                 }
     
               //Affiche l'information correspondante
               if (!strcmp(TAG, "TPE1"))   //Si tag artiste
    	 Lb_Artiste->Text=buf2;
               if (!strcmp(TAG,"TYER"))   //Si tag année
    	     Lb_Annee->Text=buf2;
               if (!strcmp(TAG, "TALB"))  //Si tag album
                 Lb_Album->Text=buf2;
               if (!strcmp(TAG, "TIT2")) //...
                 Lb_Titre->Text=buf2;
               if (!strcmp(TAG, "TCON"))
                 ComboBox1->Text=buf2;
     
                // regarder ou nous somme dans le fichier
                fgetpos(fichierMP3, &pos);
     
     
     
    	   }
     
           }
           fclose(fichierMP3);
          }

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 11
    Points : 9
    Points
    9
    Par défaut
    merci Mushi, c'est ce que je voulais pour debuter, je vais tester ca.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 145
    Points : 99
    Points
    99
    Par défaut
    Bonjour, y aurrait-il moyen de dire quelles librairie il faut inclure ?
    Car j'obtiens une dizaine d'erreurs

    Merci d'avance,
    FluidBlow

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    145
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 145
    Points : 99
    Points
    99
    Par défaut
    Finalement je viens de trouver, désolé, il faut rajouter un

    Dans le .h

    Et il faut comme composant un TOpenDiaglog, TComboBox et 4 TEdit .

    Voilà

    Cordialement,
    FluidBlow

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/02/2014, 20h55
  2. Recuperer les données de webbrowser dans un fichier excel
    Par sihammaster dans le forum VB.NET
    Réponses: 0
    Dernier message: 01/03/2011, 17h09
  3. Changer le tag/id "GENRE" d'un fichier MP3
    Par rambc dans le forum Programmation multimédia/Jeux
    Réponses: 3
    Dernier message: 21/04/2010, 15h29
  4. Recupere les 10 dernières ligne d'un fichier
    Par Rem693 dans le forum Langage
    Réponses: 4
    Dernier message: 29/10/2009, 13h56
  5. [vb6]:Recuperer les caracteres qui sont dans un fichier text
    Par flav66 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 23/10/2006, 08h44

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