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

Souci de conception dans mon appli [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 464
    Par défaut Souci de conception dans mon appli
    Salut !

    J'ai un souci avec mon appli; je ne parviens pas à coder ce dont j'ai besoin.

    Je vous explique le rôle de l'appli et le passage périlleux :

    L'appli doit lire une liste de fichiers mp3 dans un répertoire x, en extraire les artistes et les titres. Ensuite, ça remplit une série de textbox avec les artistes et titres mentionnés :

    Nom : 1231.png
Affichages : 171
Taille : 14,9 Ko

    (Pour la suite de l'histoire : Ensuite, via le bouton 4 ("Trier et zipper" ci-dessus (géré dans la Form6)), l'appli copie les fichiers vers un sous-dossier de x, enlève les tags, et renomme les fichiers en 01, 02, 03,... .mp3, zippe le tout et crée un fichier playlist.txt. Mais tout ça fonctionne correctement !)

    Là, où ça coince, c'est que le user a la possibilité de renommer les artistes et les titres via les textbox. Et en conséquence, les noms de fichiers mp3 dans les dossiers x et sous-dossier de x correspondants doivent être renommés également.
    Et autre complication en vue, le user peut modifier l'ordre des extraits; image ci-dessous :

    Nom : 1232.png
Affichages : 166
Taille : 24,2 Ko

    Je poste ci-dessous, le code du bouton 4 ("Trier et zipper" dans la 1ère image ci-dessus).

    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
    private void button4_Click(object sender, EventArgs e)
            {          
                int j = 0;            
                String[] files2 = Directory.GetFiles(folder);
                foreach (String f2 in files2)
                {
                    if (f2.EndsWith(".mp3"))
                    {
                        String morceau = f2.Substring(f2.LastIndexOf("\\") + 1);
                        for (j = 0; j < _nbrextrait; j++)
                        {
                            if (morceau == tabtb[j, 0].Text + " - " + tabtb[j, 1].Text + ".mp3")
                            {
                                File.Copy(folder + @"\" + morceau, folder + @"\Programme BT\" + tabtb[j, 0].Text + " - " + tabtb[j, 1].Text + ".mp3", true);
                                File.Move(folder + @"\" + morceau, folder + @"\" + tabtb[j, 0].Text + " - " + tabtb[j, 1].Text + ".mp3");                            
                            }
                        }
     
                    }
                }
    }
    'tabtb' est un tableau à 2 dimensions qui contient les artistes et les titres.
    Les lignes 10 et 12 gèrent le changement de l'ordre des extraits; ce code fonctionne.
    Et c'est bien dans les lignes 14 et 15 qu'il manque qqch pour que ça fonctionne (comment trouver le bon indice 'j' qui corresponde à 'morceau', bien que 'tabtb[j,0]' ne corresponde plus à 'morceau'). Lors du premier passage tout se passe bien, mais s'il y a plus d'une modification, ça coince ! En gros, la prise en compte de la modification des artistes/titres bugue...
    Et je ne vois vraiment pas comment faire pour résoudre ça

    Merci d'avance pour votre aide.

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,

    Je te conseillerais de travailler en objet et non pas avec un tableau. Cela te permettra de mieux séparer les choses.
    Un objet Mp3file pourrait comporter le nom de l'artiste, le titre, etc.. et le nom de fichier associé. Tu aurais du coup une liste de Mp3file.
    De plus tu peux remplacer tes Texbox par des UserControls comportant 2 TextBox. Un UserControl par Mp3file (Il peut y avoir une propriété dans le UserControl pour stocker le Mp3file). Cela te permettrait de gérer ton Mp3file si une modification est effectuée au niveau des Textbox. Ensuite pour la copie, toutes les infos sont correctes et présentes dans chaque Mp3file.

    Pour info, tu as dans la classe System.IO.Path tout ce qu'il faut pour gérer les noms de fichier ce qui évitera l'utilisation de ce genre de chose qui pique un peu les yeux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    f2.Substring(f2.LastIndexOf("\\") + 1)
    // peut être remplacé par 
    Path.GetFileName(f2)
    // de même : 
    // folder + @"\" + morceau <=> Path.Combine(folder,morceau)
    En espérant t'avoir un peu éclairé...

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 464
    Par défaut
    Je prends bonne note de tout ce que tu me dis !

    A quoi penses-tu quand tu parles de "UserControls" ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 464
    Par défaut
    En fait, vu que j'ai 'nbrextrait' extraits, il me faudrait 'nbrextrait' usercontrols alors ?

    Je ne suis pas habitué aux usercontrols (je ne les ai jamais utilisés pour dire vrai)...

    Pourrais-tu également expliciter cette phrase :

    Il peut y avoir une propriété dans le UserControl pour stocker le Mp3file
    Merci !

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 464
    Par défaut
    Okay, je vois à peu près ce que tu voulais dire; je modifie mon code et je reviens vers vous !

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    464
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2003
    Messages : 464
    Par défaut
    Je suis quand même un peu perdu avec les usercontrols...

    J'ai créé le usercontrol qui contient 2 textbox; la classe est donc créée aussi, mais je ne vois pas trop ce que je dois mettre dedans...

    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
     
    public partial class UCExtrait : UserControl
        {
            public UCExtrait()
            {
                InitializeComponent();
            }
     
            private void UCExtrait_Load(object sender, EventArgs e)
            {
     
            }
     
           ??????
     
        }
    Edit : Je pense avoir saisi; j'ai rajouté ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    public String Txtb1 { get => textBox1.Text; set => textBox1.Text = value; }
            public String Txtb2 { get => textBox2.Text; set => textBox2.Text = value; }

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

Discussions similaires

  1. Importer data HTML dans mon appli ?
    Par omarter dans le forum VB.NET
    Réponses: 6
    Dernier message: 20/05/2007, 13h16
  2. [ICS HTTPCli] Implémenter un TimeOut dans mon appli
    Par Bruno13 dans le forum Delphi
    Réponses: 3
    Dernier message: 20/12/2006, 21h31
  3. Réponses: 2
    Dernier message: 04/10/2006, 13h52
  4. [Framework] que des SELECT dans mon appli Web.
    Par ohyes_ dans le forum JDBC
    Réponses: 16
    Dernier message: 03/08/2006, 19h25
  5. Réponses: 3
    Dernier message: 03/04/2006, 18h30

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