Besoin AIDE pour listbox en VB ??
Fermé
Hunzimmer
Messages postés
63
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
1 juillet 2010
-
23 juin 2010 à 08:34
commentcamarcheeay Messages postés 666 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 30 mars 2020 - 24 juin 2010 à 16:24
commentcamarcheeay Messages postés 666 Date d'inscription mercredi 24 février 2010 Statut Membre Dernière intervention 30 mars 2020 - 24 juin 2010 à 16:24
A voir également:
- Besoin AIDE pour listbox en VB ??
- Vb cable - Télécharger - Audio & Musique
- Vb - Télécharger - Langages
- Vb editor - Télécharger - Langages
- Vb runtime - Télécharger - Divers Utilitaires
- Win32:vb-ojq ✓ - Forum Virus
6 réponses
commentcamarcheeay
Messages postés
666
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
23 juin 2010 à 08:45
23 juin 2010 à 08:45
Bonjour,
Il parait logique qu'il faut faire une boucle qui envoi les fichiers un par un jusqu'au dernier. La boucle doit se faire sur les éléments de la liste ( = 0 to ListBox1.Items.Count -1).
Si tu mets le code qui te permet de copier un seul fichier on pourra essayer ensemble de trouver une solution pour envoyer tous les fichiers au même temps.
Salutations!
Il parait logique qu'il faut faire une boucle qui envoi les fichiers un par un jusqu'au dernier. La boucle doit se faire sur les éléments de la liste ( = 0 to ListBox1.Items.Count -1).
Si tu mets le code qui te permet de copier un seul fichier on pourra essayer ensemble de trouver une solution pour envoyer tous les fichiers au même temps.
Salutations!
Hunzimmer
Messages postés
63
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
1 juillet 2010
1
23 juin 2010 à 08:48
23 juin 2010 à 08:48
Voila mon code qui me permet de copier
'chemin d'origine des fichiers
Dim sourceDir As String = "C:\Documents and Settings\Mes documents\test"
'chemin où sont copier les fichiers
Dim backupDir As String = "\\Poste1\ia"
Try
Dim txtList As String() = Directory.GetFiles(sourceDir, "*.txt")
For Each f As String In txtList
Dim fName As String = f.Substring(sourceDir.Length + 1)
Try
File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName))
MsgBox("Votre fichier s'est correctement envoyé ! ")
Catch copyError As IOException
MessageBox.Show("Erreur pour la copie des fichiers ! " & copyError.Message)
End Try
Next
Catch dirNotFound As DirectoryNotFoundException
MessageBox.Show(" Erreur de copie ! " & dirNotFound.Message)
End Try
'chemin d'origine des fichiers
Dim sourceDir As String = "C:\Documents and Settings\Mes documents\test"
'chemin où sont copier les fichiers
Dim backupDir As String = "\\Poste1\ia"
Try
Dim txtList As String() = Directory.GetFiles(sourceDir, "*.txt")
For Each f As String In txtList
Dim fName As String = f.Substring(sourceDir.Length + 1)
Try
File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName))
MsgBox("Votre fichier s'est correctement envoyé ! ")
Catch copyError As IOException
MessageBox.Show("Erreur pour la copie des fichiers ! " & copyError.Message)
End Try
Next
Catch dirNotFound As DirectoryNotFoundException
MessageBox.Show(" Erreur de copie ! " & dirNotFound.Message)
End Try
commentcamarcheeay
Messages postés
666
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
23 juin 2010 à 09:07
23 juin 2010 à 09:07
Bonjour,
Dans le code que tu utilises, on ne dispose que d'une seule information sur le dossier source. Or, les fichiers peuvent parvenir de plusieurs dossiers. Il est indispensable d'avoir une liste comportant tous les chemins des répertoires concernés.
Il est possible dans ce cas d'utiliser une liste
Avec sourceDirs une liste que tu dois avoir informé au préalable.
Dans le code que tu utilises, on ne dispose que d'une seule information sur le dossier source. Or, les fichiers peuvent parvenir de plusieurs dossiers. Il est indispensable d'avoir une liste comportant tous les chemins des répertoires concernés.
Il est possible dans ce cas d'utiliser une liste
Dim sourceDirs as String() ' = Liste des chemins concernés For Each sourceDir as String In sourceDirs .... ' Le code que tu met pour un seul chemin (que tu as présenté ci-haut ) Next
Avec sourceDirs une liste que tu dois avoir informé au préalable.
commentcamarcheeay
Messages postés
666
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
23 juin 2010 à 09:09
23 juin 2010 à 09:09
Je ne sais pas si c'est possible à l'utilisateur de connaitre au préalable les chemins à copier au réseau local.
Hunzimmer
Messages postés
63
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
1 juillet 2010
1
23 juin 2010 à 09:10
23 juin 2010 à 09:10
je comprend pas trop l'histoire de la liste des chemin concerné :/
Hunzimmer
Messages postés
63
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
1 juillet 2010
1
23 juin 2010 à 09:12
23 juin 2010 à 09:12
je viens d'en parler avec mon maitre de stage et oui mes chemins sont connu d'avance
Hunzimmer
Messages postés
63
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
1 juillet 2010
1
23 juin 2010 à 09:15
23 juin 2010 à 09:15
les fichiers quil faudra copier seront toujours au meme endroit
commentcamarcheeay
Messages postés
666
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
23 juin 2010 à 09:26
23 juin 2010 à 09:26
On peut écrire le code de cette manière :
'chemin d'origine des fichiers Dim sourceDirS As String( [Nombre de chemins concernés] ) 'chemin où sont copier les fichiers Dim backupDir As String = "\\Poste1\ia" 'information des chemins concernés sourceDirS(0) = "chemin1" sourceDirS(1) = "chemin2" ... sourceDirS( [Nombre de chemins concernés] -1) = "chemin [Nombre de chemins concernés]" Try For Each sourceDir As String In sourceDirs Try Dim txtList As String() = Directory.GetFiles(sourceDir, "*.txt") For Each f As String In txtList Dim fName As String = f.Substring(sourceDir.Length + 1) Try File.Copy(Path.Combine(sourceDir, fName), Path.Combine(backupDir, fName)) MsgBox("Votre fichier s'est correctement envoyé ! ") Catch copyError As IOException MessageBox.Show("Erreur pour la copie des fichiers ! " & copyError.Message) End Try Next Catch dirNotFound As DirectoryNotFoundException MessageBox.Show(" Erreur de copie ! " & dirNotFound.Message) End Try End Try
Hunzimmer
Messages postés
63
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
1 juillet 2010
1
23 juin 2010 à 09:34
23 juin 2010 à 09:34
et comment le programme saura que le 1e fichier de la liste correspond a tel ou tel chemin ??
commentcamarcheeay
Messages postés
666
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
Modifié par commentcamarcheeay le 23/06/2010 à 10:13
Modifié par commentcamarcheeay le 23/06/2010 à 10:13
Directory.GetFiles(sourceDir, "*.txt") remplit la liste avec tous les fichiers "*.txt" qui se trouvent dans le dossier indiqué.
Le code qu'on a mis permet de copier tous les fichiers contenus dans la liste des répertoires.
Le code qu'on a mis permet de copier tous les fichiers contenus dans la liste des répertoires.
commentcamarcheeay
Messages postés
666
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
Modifié par commentcamarcheeay le 23/06/2010 à 10:14
Modifié par commentcamarcheeay le 23/06/2010 à 10:14
Si on a envie de sélectionner un nombre restreint de fichier, il faut le préciser dans les conditions.
Ce qui est possible de faire si on ne veut pas copier tous les fichiers, c'est de créer deux liste parallèles, une qui contient le nom du fichier, et l'autre le chemin où il se trouve.
Tout dépend de la manière avec laquelle les fichiers sont 'parcourus'.
Ce qui est possible de faire si on ne veut pas copier tous les fichiers, c'est de créer deux liste parallèles, une qui contient le nom du fichier, et l'autre le chemin où il se trouve.
Tout dépend de la manière avec laquelle les fichiers sont 'parcourus'.
Hunzimmer
Messages postés
63
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
1 juillet 2010
1
23 juin 2010 à 10:19
23 juin 2010 à 10:19
pk dans mon code il me dit que sourceDirS n'est pas declarer?
commentcamarcheeay
Messages postés
666
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
23 juin 2010 à 10:21
23 juin 2010 à 10:21
Pour qu'on encadre mieux la problématique, peux tu décrire clairement ce que tu veux que l'algorithme fasse. Répondre surtout aux questions suivantes :
- Sur quel critère les fichiers sont-ils sélectionnés.
- Comment ces fichiers sont-ils sélectionnés (pour savoir comment la liste des fichiers est remplie)
- Sur quel critère les fichiers sont-ils sélectionnés.
- Comment ces fichiers sont-ils sélectionnés (pour savoir comment la liste des fichiers est remplie)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
commentcamarcheeay
Messages postés
666
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
23 juin 2010 à 10:58
23 juin 2010 à 10:58
Suite à ta dernière réplique, je peux te proposer de travailler directement avec la liste que l'utilisateur remplit au fur et à mesure.
Supposons que cette liste soit nommée ListBox1 :
J'espère que j'ai bien compris ce qui est demandé!
Supposons que cette liste soit nommée ListBox1 :
'chemin d'origine des fichiers Dim sourceList As String(ListBox1.ListCount) 'En sachant que la ListBox1 contient tous les fichiers avec leur chemins complets 'chemin où sont copier les fichiers Dim backupDir As String = "\\Poste1\ia" Try ' On copie le contenu de la ListBox dans un tableau ' On aurait pu travailler directement avec la ListBox, mais celà fait plus propre dim i as integer For i = 0 to ListBox1.ListCount - 1 sourceList(LBound(sourceList) + i) = ListBox1(i) Next i End Try Try For Each f As String In sourceDirs 'Dim fName As String = f.Substring(sourceDir.Length + 1) Try File.Copy(f, Path.Combine(backupDir, Path.GetFileName(f))) MsgBox("Votre fichier s'est correctement envoyé ! ") Catch copyError As IOException MessageBox.Show("Erreur pour la copie des fichiers ! " & copyError.Message) End Try Next f Catch dirNotFound As DirectoryNotFoundException MessageBox.Show(" Erreur de copie ! " & dirNotFound.Message) End Try End Try
J'espère que j'ai bien compris ce qui est demandé!
commentcamarcheeay
Messages postés
666
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
23 juin 2010 à 11:00
23 juin 2010 à 11:00
Fais quand même attention à la syntaxe de quelques contrôles tels que la liste box car j'utilise une version de VB antérieure à celle que tu utilises.
Hunzimmer
Messages postés
63
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
1 juillet 2010
1
23 juin 2010 à 11:03
23 juin 2010 à 11:03
oui tu a bien compris ce que je dois faire =)
par contre j'ai mi le code dans mon prog mais il me souligne tjrs " sourceList" en me disant quil n'est pas déclaré .
comment sa se fait ? alors qu'il ya bien " Dim sourceList As String(ListBox1.ListCount) "
par contre j'ai mi le code dans mon prog mais il me souligne tjrs " sourceList" en me disant quil n'est pas déclaré .
comment sa se fait ? alors qu'il ya bien " Dim sourceList As String(ListBox1.ListCount) "
Hunzimmer
Messages postés
63
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
1 juillet 2010
1
23 juin 2010 à 11:30
23 juin 2010 à 11:30
bon j'ai resolu cette erreur
cependant , j'en est d'autre :/
sourceList(LBound(sourceList) + i) = LB_ListeFichier(i)
il me souligne ce que je tes souligné et me dit comme erreur " une valeur de type string ne peut pas etre converti en system.array"
cependant , j'en est d'autre :/
sourceList(LBound(sourceList) + i) = LB_ListeFichier(i)
il me souligne ce que je tes souligné et me dit comme erreur " une valeur de type string ne peut pas etre converti en system.array"
commentcamarcheeay
Messages postés
666
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
23 juin 2010 à 11:55
23 juin 2010 à 11:55
Cette syntaxe doit être relative aux version antérieures du VB.
Ce que je voulais faire c'est copier l'objet ListBox dans la tableau sourceList()
LBound(sourceList ) est sensée donner l'index de la toute première case (généralement égal à 0). Il faut trouver l'équivalent de LBound dans VB 9.
Ce que je voulais faire c'est copier l'objet ListBox dans la tableau sourceList()
LBound(sourceList ) est sensée donner l'index de la toute première case (généralement égal à 0). Il faut trouver l'équivalent de LBound dans VB 9.
commentcamarcheeay
Messages postés
666
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
23 juin 2010 à 12:06
23 juin 2010 à 12:06
Dim sourceList As String(ListBox1.ListCount)
sourceList est bien un tableau de String (de type String()) dont le nombre de cases est égale au nombre d'élément dans la ListBox1. Je ne vois pas pourquoi il la considère comme une String.
sourceList est bien un tableau de String (de type String()) dont le nombre de cases est égale au nombre d'élément dans la ListBox1. Je ne vois pas pourquoi il la considère comme une String.
commentcamarcheeay
Messages postés
666
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
23 juin 2010 à 16:30
23 juin 2010 à 16:30
Voici une application écrite en VB qui répond à la problématique contenant :
- Les fichiers du code
- Un exécutable
Pour télécharger
- Les fichiers du code
- Un exécutable
Pour télécharger
commentcamarcheeay
Messages postés
666
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
23 juin 2010 à 16:35
23 juin 2010 à 16:35
Tu dois trouver la présentation un peu vielle et barbare. Tel est le vieux VB6.
Je ne pense pas que tu trouvera des difficultés à comprendre le code, il est simple. Il faut tout simplement trouver son équivalent en .net
Je ne pense pas que tu trouvera des difficultés à comprendre le code, il est simple. Il faut tout simplement trouver son équivalent en .net
Hunzimmer
Messages postés
63
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
1 juillet 2010
1
24 juin 2010 à 08:35
24 juin 2010 à 08:35
salut
je suis en train de regarder ce que tu ma passer
c'est assez compliquer quand meme , surtout que je ne connais pas le moindre truc en vb6 Lol
je suis en train de regarder ce que tu ma passer
c'est assez compliquer quand meme , surtout que je ne connais pas le moindre truc en vb6 Lol
commentcamarcheeay
Messages postés
666
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
24 juin 2010 à 09:00
24 juin 2010 à 09:00
J'ai trouvé une conversation concernant la transformation du code vb en vb.net
Hunzimmer
Messages postés
63
Date d'inscription
vendredi 18 juin 2010
Statut
Membre
Dernière intervention
1 juillet 2010
1
24 juin 2010 à 09:07
24 juin 2010 à 09:07
ué j'avais vu sa sur le forum
mais jvois pas comment l'ouvrir en Vb.net comme ils disent
si je comprend la ce que tu ma envoyé le form1 je les ouvert avec visual basic 2008
donc la c'est bon c'est converti alors ?
mais jvois pas comment l'ouvrir en Vb.net comme ils disent
si je comprend la ce que tu ma envoyé le form1 je les ouvert avec visual basic 2008
donc la c'est bon c'est converti alors ?
commentcamarcheeay
Messages postés
666
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
30 mars 2020
86
24 juin 2010 à 16:24
24 juin 2010 à 16:24
S'il a eu la gentillesse de bien vouloir s'exécuter en l'ouvrant avec vb.net alors il a bien été converti. En fait, les syntaxes des deux langages n'est pas éloignée. Il est possible, si on comprends un, de comprendre l'autre.