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

VB.NET Discussion :

Modifier les propriétés d'un fichier


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 34
    Points : 17
    Points
    17
    Par défaut Modifier les propriétés d'un fichier
    Bonjour à tous !

    Mon problème paraît pourtant simple, mais je n'y parviens pas : je voudrais modifier les propriétés d'un fichier (par exemple pour les musiques : titre, album...), quel que soit son type (Musique, Texte...).

    Je cherche depuis plusieurs heures, et tout ce que j'ai trouvé, c'est un 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
    Sub Test()
        infosClasseurBuiltinDocumentProperties ActiveWorkbook
    End Sub
     
     
    Sub infosClasseurBuiltinDocumentProperties(Wb As Workbook)
        Dim Valeur As DocumentProperty
        Dim i As Byte
     
        On Error Resume Next
     
        'Boucle sur la collection de propriétés prédéfinies
        For Each Valeur In Wb.BuiltinDocumentProperties
            i = i + 1
            'Insère le nom des propriétés dans la colonne A
            ThisWorkbook.Worksheets(1).Cells(i, 1) = Valeur.Name
            'Insère le contenu de la propriété dans la colonne B
            ThisWorkbook.Worksheets(1).Cells(i, 2) = Valeur.Value
        Next
     
        ThisWorkbook.Worksheets(1).Columns("A:B").AutoFit
    End Sub
    Malheureusement, il me semble qu'il soit en Excel.

    Serait-il possible de le "traduire" en Visual Basic .NET ?

    Ou alors, peut-être avez-vous une astuce ou une autre solution à me proposer ?

    Merci de m'aider !

    Syrl

  2. #2
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir syrll,

    Au vue de se que tu as écris supra, il faut reconnaître que tu n'es absolument pas sur la bonne piste et que le manque de connaissance dans les spécificité des langages de programmation te font dire des aberrations !

    Avant toute chose :

    0- Le langage Excel n'existe pas ! C'est du VBA (Visual Basic pour Applications) : c'est du vb Macro.
    Le langage vbNet permet de faire la même chose que le VBA grace aux librairies Office.

    1- Quel est le type de fichier sur lequel tu veux extraire les soit dis-antes propriétés ?
    2- Qu'entends-tu par propriétés de fichier exactement ?
    3- As-tu vraiment des notions en VbNet ??


    A+

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Bonsoir,
    Merci d'avoir répondu, je commençait à désespérer
    Oui, j'ai des certaines connaissances en Visual Basic.net (mon dernier programme était un chat, et j'ai suivi un tutoriel), mais je ne savais pas que Excel correspondait à VBA, c'est bon à savoir.
    Je voudrais extraire les propriétés (ou tag, si je ne dis pas de bêtises... ?) premièrement d'un fichier MP3, mais si possible d'autres fichiers également.
    Par propriétés de fichier, j'entends tout ce que je peux trouver lorsque je suis dans l'onglet "détails" de la fenêtre des propriétés du fichier (clic droit puis propriétés), c'est-à-dire titre, artistes, notation, commentaires, année, dernière modification...

  4. #4
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    L'idéal c'est d'utiliser des librairies existantes car contrairement à ce que tu disais dans ton 1er post ce n'est pas qqch de simple à implémenter :

    Googlized :

    http://id3.org/
    http://glassocean.net/perrys-id3-tag-library/
    http://id3lib.sourceforge.net/
    http://www.codeproject.com/Articles/...g-MP-ID-v-tags

    ....etc.....

    Attention : selon la version de l'ID3 (v1 v2) tu ne pourras pas lire certains Tag Mp3 !!

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Ok, merci beaucoup !
    Oui, comme je l'ai dit dans mon premier post, cela parait simple
    Je verrai cela demain, là, je n'ai pas les idées bien claires...
    Encore merci !
    Syrl

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Ce n'est pas pantoute pour changer les propriétés des fichiers; mais tu peux t'inspirer de cela pour les lire:

    http://dotnet.developpez.com/telecha...s-multi-medias

    Quant à savoir si les dll utilisées permettent de modifier les propriétés, je ne sais pas.

    Mais, la leçon, si leçon il y a, c'est que ce ne sont pas toutes les propriétés qui sont renseignées, et elles ne sont pas forcément toutes implantées dans tous les formats de fichiers multimédia.

    Si cela t'intéresse, j'ai aussi en chantier un programme pour énumérer les propriétés des fichiers Excel, Word et PowerPoint. Le programme est quelque peu brouillon, pas commenté mais fonctionnel.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Merci de votre aide !
    Lire les propriétés, facile ! J'avais déjà trouvé Microsoft Shell Controls and Automation, qui fonctionne à merveille
    Quant à ta dernière proposition, encore merci, mais puisque ce programme a principalement pour but de m'entraîner, je préfère tout faire de A à Z.

    ÉDITÉ :
    Wallace1, me code du dernier lien (sur www.codeproject.com) de fonctionne pas, je l'avais déjà vu (il date de 2003)

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    J'ai essayé avec "Perry’s ID3 Tag Library" avant de me rendre compte que... on ne peut pas modifier les tags... >.<
    Seulement, en regardant le code source, j'ai remaqué que la fonction qui permet de récupérer les tags est en réalité plutôt simple :

    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
    Sub New(ByVal argFileInfo As IO.FileInfo)
     
            Dim mReader As IO.FileStream = argFileInfo.OpenRead
     
            Dim mFileIdentifier(2) As Byte
            Dim mTitle(29) As Byte
            Dim mArtist(29) As Byte
            Dim mAlbum(29) As Byte
            Dim mYear(3) As Byte
            Dim mComment(29) As Byte
            Dim mGenre(0) As Byte
     
            ' start at the last 128 bytes of the file, which is where an ID3v1 tag is supposed to be
            mReader.Position = mReader.Length - 128
     
            ' read the file identifier and make sure the value equals "TAG" which indicates an ID3v1 tag
            mReader.Read(mFileIdentifier, 0, 3)
            Me.FileIdentifier = BytesToText(mFileIdentifier, True).Trim
     
            ' read the rest of the tag if it is an ID3v1 tag
            If Me.FileIdentifier = "TAG" Then
     
                Me.TagVersion = "1.0"
     
                mReader.Read(mTitle, 0, 30)
                mReader.Read(mArtist, 0, 30)
                mReader.Read(mAlbum, 0, 30)
                mReader.Read(mYear, 0, 4)
                mReader.Read(mComment, 0, 30)
                mReader.Read(mGenre, 0, 1)
     
                Me.Title = BytesToText(mTitle, True).Trim
                Me.Artist = BytesToText(mArtist, True).Trim
                Me.Album = BytesToText(mAlbum, True).Trim
                Me.Year = BytesToText(mYear, True).Trim
                Me.Comment = BytesToText(mComment, True).Trim
                'Me.Comment = RemoveChars(Me.Comment, New Integer() {0, 1, 32})
                Me.Genre = mGenre(0)
     
            Else
     
                'MsgBox("Could not find an ID3v1 tag!")
     
            End If
     
            ' close the file handle (remove the lock)
            mReader.Close()
            mReader.Dispose()
     
        End Sub
    C'est là que je me suis dit : pourquoi ne pas tout simplement faire l'inverse de cette fonction ?
    Tout ce que fait cette fonction, c'est simplement : lire une certaine partie du fichier (notemment les 128 derniers octets).
    Serait-il possible d'écrire dans les 128 derniers octets du fichier, afin de modifier les tags ?
    Merci de m'aider !
    Syrl

  9. #9
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par syrll Voir le message
    ..... j'ai remaqué que la fonction qui permet de récupérer les tags est en réalité plutôt simple :
    Citation Envoyé par syrll Voir le message
    ....C'est là que je me suis dit : pourquoi ne pas tout simplement faire l'inverse de cette fonction ?
    Citation Envoyé par syrll Voir le message
    Tout ce que fait cette fonction, c'est simplement : lire une certaine partie du fichier (notemment les 128 derniers octets).

    ...Te rends-tu compte que tout te parait simplement simple ?????


    PS 1 : si le raisonnement dans un projet de développement était aussi simple, les développeurs ne seraient pas obligés de s'immerger dans le domaine du projet en lisant les ressources afin de mieux appréhender le concept du futur projet :

    http://fr.wikipedia.org/wiki/ID3
    http://id3.org/id3v2.3.0
    http://en.wikipedia.org/wiki/ID3_algorithm

    PS 2 : Lis bien les commentaires du code source car ca traie uniquement de la v1 (ID3v1 tag) et il y a d'autres version .....


    Citation Envoyé par syrll Voir le message
    Serait-il possible d'écrire dans les 128 derniers octets du fichier, afin de modifier les tags ?
    Je pense qu'il te faudrait envisager d'ouvrir 1 gitHib ou 1 Bitbucket ou 1 Codplex....et nous montrer comment tu comptes t'y prendre en toute simplicité !


    A très bientôt alors.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Non, je ne m'en rendais pas compte, mais c'est vrai que ça paraît logique, non ?
    Donc, toujours aussi logiquement, si on lit une donnée à un endroit, la donnée est stockée à cet endroit donc il faut modifier la donnée à cet endroit !
    Personnellement, je trouve cela logique !
    Bref, je vais aller faire mes tests et je reviens...

    ÉDITÉ :
    Recherche de "simple" sur la page :
    Nom : Img.jpg
Affichages : 875
Taille : 3,5 Ko

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Finalement, j'essaie d'installer id3lib, mais il semble être en c/c++... Y a-t-il une solution ?

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    YEEEEESSSS !!
    J'ai réussi! !!!
    Bon, il faut bien dire que j'ai galéré, mais c'est fini !
    J'ai pu enfin installer TagLib, et ça a fonctionné !!
    Merci à tous !
    Syrl

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

Discussions similaires

  1. Modifier les propriétés d'un fichier en Java
    Par khalidlyon dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 25/05/2010, 11h12
  2. Modifier les propriétés de plusieurs fichiers en un seul coup
    Par 00Dexter00 dans le forum SharePoint
    Réponses: 4
    Dernier message: 08/12/2009, 09h12
  3. Modifier les propriétés d'un fichier Excel
    Par LudwigVon88 dans le forum Général Java
    Réponses: 1
    Dernier message: 09/04/2008, 17h28
  4. Comment modifier les propriétés d'un fichier NTFS
    Par ChristopheG dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 04/12/2006, 18h40
  5. Modifier les propriétés d'un fichier
    Par manu1407 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 09/11/2005, 10h39

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