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 :

Tableau de String


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 5
    Par défaut Tableau de String
    Bonjour à tous et a toute

    J'aimerai avoir une petite aide sur un soucis.Voila je m'explique:
    Je suis en train d'essayer de faire un petit programme pour transférer un fichier vers un autre mais en testant chaque fichier dans un dossier pour modifier le nom aussi. Du coup j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim fileEntries2 As String() = Directory.GetFiles(targetDirectory2)
    et donc comme vous pouvez le voir je récupère un tableau de string du coup j'ai le soucis quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each fileName2 In fileEntries2
    il va faire 1 puis le 10 11 12 13 14 15 16 17 18 19 2 20 ainsi de suite alors que je veux 1 2 3 4 5 6 7 8 9 10 11 etc connaissez vous un moyen pour que l'ordre soit croissant en utilisant mon fileEntries2?

    En vous remerciant d'avance

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Tu peux stocker tous les noms de fichiers qui sont numériques dans une collection d'entiers ou de longs et ensuite faire la recherche en utilisant cette liste de nombres.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 5
    Par défaut
    Salut merci de ta réponse.
    J'ai justement penser à prendre la longueur de la collection de string et à boucler par rapport mais je restais bloquer avec le même soucis.

    Donc si j'ai bien compris il faut que je crée une collection d'entier en ajoutant chaque fichier dedans?Puis je boucle dans la nouvelle collection créer?

  4. #4
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Je suis pas bon en VB, mais ça donnerait quelque chose comme :

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim sortedList As New SortedList(Of integer, String)
     
    For each fileName in Directory.GetFiles(targetDirectory2)
        sortedList.Add(Short.Parse(fileName.Substring(0,2).Trim()), fileName)
    Next fileName 
     
    For Each kvp As KeyValuePair(Of integer, String) In sortedList 
        Console.WriteLine(kvp.Value)
    Next kvp

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 5
    Par défaut
    Ree et merci d'avoir répondu

    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        sortedList.Add(Short.Parse(fileName.Substring(0,2).Trim()), fileName)
    J'ai une erreur avec cette ligne du coup j'ai fait un try catch pour voir le soucis et l'erreur qui est rétournée est que le format de la chaîne d'entrée est incorrect
    ca m'éjecte du programme

  6. #6
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    C'est sans doute que le parse échoue...

    J'ai mis ça en supposant que seuls les deux premiers caractères de ton fileName étaient des chiffres...c'est peut-être une mauvaise hypothèse !

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 5
    Par défaut
    hehehe effectivement je n'ai pas assez fourni d'information.

    Donc plus précisemment je prends tous les fichiers d'un dossier pour les renommer de cette maniere

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim rep As String = targetDirectory2 & "\" & madate2 & "-" & i & Path.GetExtension(fileName)
    puis je les déplace vers un autre dossier.Tout ceci marche correctement si le dossier est vide car ca ne pose aucun soucis.
    Par contre si le dossier n'est pas vide et que j'ai déja déplacé des fichiers suivant mon programme cela risque de coller les nouveaux sur les anciens du coup je perdrais les autres fichiers.
    C'est pourquoi je teste et je vérifie tous les fichiers du dossier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    If IsVide(targetDirectory) = "Vide" Then
                    i = i
            Else
                    For Each fileName2 In fileEntries2
                       If fileName2 = rep Then
                           i = i + 1
                       Else
                           i = i
                       End If
                       rep = targetDirectory2 & "\" & madate2 & "-" & i & Path.GetExtension(fileName)
                    Next
    end if
    Et ca marcherait bien si dans le fileentries il compte les fichiers dans l'ordre croissant^^

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

Discussions similaires

  1. Tester si une String fait partie d'un tableau de String
    Par laloi dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 23/04/2005, 16h47
  2. [J2SE] tableau de string
    Par Jules82 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 17/03/2005, 14h35
  3. Ranger un tableau de String dans ma HashMap
    Par jeyce dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 26/08/2004, 22h41
  4. [Collections] Conversion de Vector en tableau de String
    Par java_math dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 06/06/2004, 12h55
  5. [Collections] Tableau de String
    Par gexti dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 02/06/2004, 15h42

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