begin process at 2008 08 21 14:54:55
1 229 428 membres
248 nouveaux aujourd'hui
14 263 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

GÉNÉRATEUR DE RÉPERTOIRES


Information sur la source

Catégorie :Fichier / Disque Source .NET ( DotNet ) Classé sous : générateur, répertoire Niveau : Débutant Date de création : 14/03/2007 Date de mise à jour : 26/03/2007 18:27:33 Vu / téléchargé: 4 612 / 465

Note :
Aucune note

Commentaire sur cette source (5)
Ajouter un commentaire et/ou une note

Description

Petite application héritée de VB6 et convertie en VB 2005. Générateur de répertoires jusqu'à 20 combinaisons de sous-répertoires. Sauvegarde de la config dans la base de registres. Création de dossiers avec contrôle si existant. Affichage des répertoires.
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

26 mars 2007 14:40:04 :
Nouvelle version améliorée (merci MHenry), mais c'e n'est encore pas tout à fait çà: comment créer un tableau de TextBox proprement afin de pouvoir l'exploiter avec des boucles For...Next (nouvelle classe?)?
26 mars 2007 18:27:33 :
Bon, voilà-voilà, la sources est plus propre MAIS toujours héritée de la même applic en VB6...... car je na'i pas encore tout pigé sur les tableaux d'objets et leur usage ;-|
  • signaler à un administrateur
    Commentaire de NHenry le 14/03/2007 12:38:13

    Bonjour,

    Dans FormApp.vb, j'ai vu que tu fais plusieurs fois le même code pour la même chose :

    Private Sub TextDir_TextChanged(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles TextDir1.TextChanged,TextDir2.TextChanged 'à toi de compléter
        Dim lTxt as TextBox=directcast(sender,TextBox)
    '        On Error Resume Next 'PAS DE ON ERROR en VB.NET
        try
            If Me.IsInitializing = True Then
                Return
            Else
                TmpChar = VB.Right(lTxt.Text, 1)
                TextFilter()
                lTxt.Text = VB.Left(lTxt.Text, Len(lTXT.Text) - 1) + TmpChar
                lTxt.SelectionStart = Len(lTxt.Text)
            End If
        Catch ex as Exception
        End Try
    End Sub


    A la place de tes SubDir1, SubDir2, ... utilise un tableau : Public SubDir(20)

    Ne déclare des variables externe à ta classe (un form est une classe) qui si c'est strictement nécessaire.

    Tu peux placer tes textbox dans un tableau pour y accéder plus facilement.

    l'API MakeSureDirectoryPathExists est inutile, utilise IO.Directory.* 'regarde la doc

    Met Option Strict à On, et transtype avec DirectCast, CType, TryCast

    Recode ta foction TextFilter :

    Private Function TextFilter() As String
        dim lReplace () as string=new string(){",",":","/";"<",">","*",".","+","-","?","!","%"}
        For Each lStr as String in lReplace
            TmpChar = Replace(TmpChar, lStr, "")
        Next
        Return TmpChar
    End Function

    Ta fonction DirectoryExist est inutile : IO.Directory.Exists

    PAS DE GOTO DANS UNE APPLICATION VB.NET ni VB6 d'ailleur
    Utilise Exit, Continue, Return à la place

    Bon c'est déjà pas mal (mais pas fini, j'ai mon train à prendre), rebosse tout ça et reposte le tout.

  • signaler à un administrateur
    Commentaire de Bitmapking le 14/03/2007 16:08:49

    Merci pour les remarques.

    On Error est toujours supporté par VB2005:
    Visual Basic 2005
    Dans Visual Basic 2005, vous pouvez appeler des procédures avec l'instruction Call et l'instruction GoSub n'est pas prise en charge. Vous pouvez exécuter plusieurs branchements avec les instructions Select...Case et les constructions On ... GoSub et On ... GoTo ne sont pas prises en charge. Toutefois, Visual Basic 2005 prend encore en charge l'instruction On Error.

    C'est bien pratique quand on a un code existant...

    OK pour le tableau SubDir, mais je voulais garder la compatibilité avec une structure existante de la base de registres.

    Pour le reste, merci des conseils :-)

  • signaler à un administrateur
    Commentaire de Drikce06 le 15/03/2007 09:44:55

    Salut en VB2005 utilisation de try catch ... au lieu de GoTo etc.
    Sinon l'idée de la source est bonne d'autant plus qu'il y a pas longtemps je me suis tappé une vingtaine de répertoire à créer!

  • signaler à un administrateur
    Commentaire de NHenry le 15/03/2007 12:09:51

    Bonjour,

    Que Goto ou On Error soit toujours supporté pas VB.NET2 m'est indiférent, VB offre des méthodes plus simples et plus claires pour les utiliser (Continue, Exit, Return; Try Catch).

    Ce n'est pas futile, regarde sur VBFrance les source en .NET en général, tu trouvera tres tres rarement une source avec un GTOT ou On Error.

  • signaler à un administrateur
    Commentaire de NHenry le 27/03/2007 12:54:29

    Bonjour,

    Un conseil, poste un message quand tu met à jour, sinon on risque de ne rien voir.

    Je repart :
    - VB.Right(TextDir(i).Text, 1)
    équivalent à
    TextDir(i).Text.SubString(0,1)
    C'est plus framwork

    - Un peu de code qui ne sert à rien
        Catch ex As Exception
            Exit Sub 'Ligne inutile, tu peux la retirer.
        End Try
    End Sub

    - Regarde du coté de IO.Path pour les caractères interdis dans les noms de dossier/fichier.

    - #  Private Function DirectoryExist(ByRef MyDir As String) As Boolean
    est inutile, IO.Directory.Exists fait le même chose.

    - Beaucoup de For i = 0 To 19
    au lieu de 19 utilise SubDir.Count-1

    - Utilise une structure ou un contrôle personnalisé pour
    # SubDir(i) =
    # TextDir(i).Text =
    # Check1(i).CheckState =

    public Structure SFrmItem
        public SubDir as String
        public TextDir as TextBox
        public Check as CheckBox
        public sub New(byval pSubDir as string,byval pText as TexBox, byval pCheck as CheckBox)
            SubDir=pSubDir
            TextDir=pText
            Check=pCheck
        End sub
    end structure

    Puis au lieu de
    #  Private SubDir(20) As String
    ,
    private mLstDir as new list(of SFrmItem)

    Dans le Load :
    mLstDir.add(new SFrmItem("Dir",_TextBox_1, _Check1_1))
    mLstDir.add(new SFrmItem("Dir",_TextBox_2, _Check1_2))
    ...

    Comme cela tu sera plus souple (passage de 20 à 15 éléments, 5 lignes à supprimer et c'est tout.

    - Met : Option Strict On !!!!!!!!!!!!!!!

    - Utilises les 3 ', ''' pour documenter tes méthodes et tes attributs.

    Sinon, je note que ton code est plus concis, plus lisible, même s'il peut encore être améliorer.

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS