ID3Tag V2

ID3Tag V2 - VB/VBA/VBS - Programmation

Marsh Posté le 07-10-2002 à 01:13:14    

Quequ'un arrive à déterminer la taille du tag à partir des 4 derniers bits du header ?

Reply

Marsh Posté le 07-10-2002 à 01:13:14   

Reply

Marsh Posté le 08-10-2002 à 01:46:07    

uh ?? bein a partir d'un membre size ... exemple :
 

Code :
  1. ' exemple pour les tags 2.3x (10 bytes)
  2. Private Type ID3_V2
  3.     Identifeur As String * 3
  4.     Major      As Byte
  5.     Minor      As Byte
  6.     Flags      As Byte
  7.     Size(3)    As Byte  ' <--- c lui :)
  8. End Type


 
dans ton code :
 

Code :
  1. ' conversion byte vers long (a quand les shifts en VB !!! grrr)
  2. Public Function ByteToLong(ByRef byteArray() As Byte) As Long
  3. Dim index As Integer
  4. On Error GoTo ErrHandler
  5.     ByteToLong = 0
  6.     For index = 0 To 3
  7.         ByteToLong = ByteToLong + (byteArray(index ) * (2 ^ ((3 - index ) * 7)))
  8.     Next index
  9. NormalExit:
  10. On Error GoTo 0
  11. Exit Function
  12. ErrHandler:
  13. Err.Raise Err.Number, "ByteToLong erreur", Err.Description
  14. End Function
  15. Dim tagHeader As ID3_V2
  16. dim iFilenum  as integer
  17. dim a_sfile   as string
  18. dim  tagSize  as long
  19.  
  20.    a_sfile = "c:\foo.mp3"
  21.    iFilenum = FreeFile
  22.    Open a_sfile For Binary As iFilenum
  23.    Get iFilenum, 1, tagHeader
  24.    tagSize = ByteToLong(tagHeader.Size)


 
En gros ...

Reply

Marsh Posté le 08-10-2002 à 02:04:21    

Kyle_Katarn a écrit a écrit :

Quequ'un arrive à déterminer la taille du tag à partir des 4 derniers bits du header ?




 
4 bits  :heink:  
 
A propos kyle, essaie Delphi, y a déjà des compos pour ca dans la JVCL  [:ddr555]  
 
(D'ailleurs tu pourrais l'exporter en activex et le récupérer en VB, mais bon)


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 08-10-2002 à 02:20:36    

Ouais m'enfin pkoi pas sortir la tronçonneuse pour ceuillir des fleurs ;)

Reply

Marsh Posté le 08-10-2002 à 02:23:56    

MagicBuzz a écrit a écrit :

Ouais m'enfin pkoi pas sortir la tronçonneuse pour ceuillir des fleurs ;)




 
1. Ma tronconneuse est en panne
2. J'aime pas les fleurs
3. VBCAPUDUCU (tm)
4. Me semblait qu'il avait déjà dit plusieurs fois qu'il allait se convertir à la bonne parole, c'est le moment  :D  
5. C'est pas plus bourrin d'utiliser un composant ActiveX créé en Pascal qu'un autre, c'est le principe hein  :p  
D'ailleurs y a énormément de composants pascal qui sont utilisés par des développeurs VB :/


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 08-10-2002 à 02:24:43    

je dis pas le contraire, mais pour lire 3 octets dans un fichier, ça faut un peu bourrin je trouve ;)

Reply

Marsh Posté le 08-10-2002 à 02:27:10    


Clairement  :ange:  
 
Mais bon, le compo de la JVCL (tiens mais euh... c'est mon compo), t'as tous les champs, de plus j'en avais fait un autre visuel avec toutes les infos, donc 2 clics et tu avais tout sur un form, juste à compiler.


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 08-10-2002 à 02:34:23    

ok, je retiens la chose :)
 
d'ailleurs, j'ai lu dans MSDN Library (mais non, te sauve pas, reviens :D) qu'on pouvait crééer des modules pour Index Server.
 
mais j'ai pas vraiment trouvé la doc pour en créer un...
 
t'as pas un piti composant dans ta JVCL qui fait ça ? :D
 
ou un lien qui me permette de trouver comment faire ?
 
en effet, Index Server, ça a beau être du M$, c'est super puissant, et indexer des MP3 avec ça serait trop puissant...
 
notamment, pendant un moment (là, j'ai arrêté net les devs, mais je pourrais m'y remettre) j'avais entrepris de faire un site et un soft permettant d'interroger une liste de MP3 d'un serveur, et le passage par Index Server m'aurais simplifié la vie énormément...Et surtout ça aurait été incomparablement plus rapide, que ce soit pour les rechercher ou pour l'indexation...
 
quand on voit que ce dernier est capable d'indexer quelques 10 go de fichier texte en à peine plus d'une vingtaine de seconde, et que les requêtes, aussi complexes soient-elles sont ensuite totalement instantannées, ça pourrait être une bonne solution...
surtout pour l'aspect indexaion en temps réel des modifications apportées aux fichiers...

Reply

Marsh Posté le 08-10-2002 à 02:38:26    

MagicBuzz a écrit a écrit :

 
quand on voit que ce dernier est capable d'indexer quelques 10 go de fichier texte en à peine plus d'une vingtaine de seconde




 
donc 10240mb en 20s, donc 512mb/s
mais oui bien sur  [:banzai]  
 
sinon non je connais pas ce truc  :sweat:


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 08-10-2002 à 08:13:04    

Honnetement, je suis pas un ferru des composants (ocx, com ou autre vcl) des lors que l'on peut le faire soit même le code recherché. Par contre, il est plutot interessant de récupérer les sources de ces composants pour y glaner des informations (comme celle que je viens de donner par exemple). Je vois ca comme ca :)
 
zion>a choisir entre un (j)vcl en delphi et une dll pure en C/C++, y a pas photo :]

Reply

Marsh Posté le 08-10-2002 à 08:13:04   

Reply

Marsh Posté le 08-10-2002 à 08:47:25    

ça vai, j'ai réussi à le faire par le code entre temps !  
 
Merci

Reply

Marsh Posté le 08-10-2002 à 14:22:40    

KarLKoX a écrit a écrit :

 
zion>a choisir entre un (j)vcl en delphi et une dll pure en C/C++, y a pas photo :]




 
tu compares n'importe quoi toi  :ouch:  
 
la JVCL c'est un ensemble de composants, rien à voir avec la VCL, et  tu sous entends quoi par ton DLL pur C/C++, il fait du code plus pur le C++?  :lol:  
 
Tu sors  :kaola:


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 08-10-2002 à 14:25:58    

le DLL faut le faire en Fortran, vu que c'est un vieux langage il est plus mûr et plus stable :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 08-10-2002 à 18:05:12    

Si ça t'intéresse, je t'envoie les sources d'un prog que j'ai fait en C++ pour exporter les ID3 v2 en CSV  ;)

Reply

Marsh Posté le 08-10-2002 à 18:12:16    

merci mais c'est bon j'ai presque fini de résoudre mon problème ;-)
 
Pour ceux que ça interesse, c'est pour K-MP3, mon taggeur / renommeur de fichiers son (tout formats)
 

Reply

Marsh Posté le 08-10-2002 à 19:26:40    

zion a écrit a écrit :

 
 
donc 10240mb en 20s, donc 512mb/s
mais oui bien sur  [:banzai]  
 
sinon non je connais pas ce truc  :sweat:  




Bah réellement, chuis d'accord avec toi, techniquement, la vitesse est impossible.
Mais le résultat est là.
 
La meilleur preuve est d'activer le catalogue système (celui qui va indexer TOUS les fichiers de TOUS les disques) quisert notamment à accélérer les rechercher quand on fait F3 dans Windows.
 
Ben y fini l'indexation en quelques minutes, même si t'as des HD complètement blindés de fichiers.
 
Sinon, pour résumer Index Server, c'est un service de Windows (intégré à Windows depuis NT 4) et très fortement amélioré dans Windows 2000, qui va indexer les fichiers dans des catalogues.
Il indexe par mots-clés, reconnais les headers de n'importe quel type de fichier Office, PDF, HTML et XML de base, et permet ensuite d'y faire des recherches sur le contenu, l'auteur, etc.
La rapidité est extraordinaire, et les catalogues très petits (moins de 10 Mo pour quelques Go de fichiers texte)
 
Il supporte soit son langage natif d'interrogation, assez chiant, soit un environnement d'abstraction, le faisant se comporter comme une base de données SQL. Tu fait des requêtes sur des fonctions qui te retournent des résultats sous forme de vue, que tu peux ensuite filtrer avec tout les filtres classiques SQL.
 
Un truc extrêment agréable c'est qu'il supporte l'analyse sémantique, avec reconnaissance de la langue :
 
Par exemple, la fonction "ISABOUT()" recherche un document qui "parle de". Tu n'as qu'à indiquer ensuite une phrase et zou !
Il recherche aussi les mots de la même famille, avec orthographe similaire ou même les synonymes. Et surtout, à côté d'un LIKE en SQL, y'a pas photo, c'est extrêment rapide.
 
Sinon, SQL Server, depuis la version 7.0 supporte de se faire indexer par ce système. C'est ce que j'utilise sur mon site pour faire des recherches dans les articles : très rapide, et résultats pertinents. Oracle vends aussi un module permettant de faire la même chose, mais c'est pas intégré de base, c'est bien domage.
 
Pour un exemple de ce que ça donne :
 
http://www.manga-torii.com
=> Tapes un truc dans "rechercher". Utilisation d'Index Server dans un base SQL Server
 
http://optic200001.heb.fr.colt.net (je crois que c'est ça l'url :D)
=> Sur la HP, tapes un truc. Utilisation d'index server pour indexer les fichiers du site.
 
Pour info, les deux moteurs de recherche (pas très évoluées, je te l'accorde, mais permettant déjà des fonction avancées), je les ai développé en une journée pour mon site, et en 2h pour Optic 2000 :)
C'est surtout ça l'avantage : c'est rapide et simple :D


Message édité par MagicBuzz le 08-10-2002 à 19:27:35
Reply

Marsh Posté le 09-10-2002 à 00:23:52    

Quand je dit pur, je parle pas des actives x ou autre objet COM(+).
Pour le reste, c'est chacun son truc.

Reply

Marsh Posté le 09-10-2002 à 00:39:29    

KarLKoX a écrit a écrit :

Quand je dit pur, je parle pas des actives x ou autre objet COM(+).
Pour le reste, c'est chacun son truc.




 
 :heink:


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 09-10-2002 à 00:42:52    

on s'éloigne de mon sujet d'origine là ...

Reply

Marsh Posté le 09-10-2002 à 00:52:28    

Oui et?
 
T'as dit toi même que tu l'avais résolu  :ange:


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 09-10-2002 à 10:41:31    

Kyle>c'est pour ca que j'ai fait cours ;)
Si tu as besoin d'info pour ton player, hésite pas, j'en ai bien chié pour en faire un plus ou moins complet ( screenshots : http://starnetasso.free.fr/Upload/FmodPlayer.zip )

Reply

Marsh Posté le 19-10-2002 à 20:49:58    

Merci. Maintenant K-MP3 (http://www.katarncorp.com/french) gère parfaitement les ID3TagsV2)

Reply

Marsh Posté le 21-10-2002 à 15:29:59    

Tranquille, t'applique rapidement les documents que tu lis, chapo :)

Reply

Marsh Posté le 21-10-2002 à 19:46:06    

merci.
Sans votre aide précieuse ça n'aurait pas pu être possible

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed