Bonjour,
Voici mon problème :
J'ai une variable que j'apelle numchantier, qui prend une valeur de type XXX1045704, après sélection dans une datagrid.
A l'aide d'un répertoire définit précédemment, que je vais parcourir pour connaître le nombre total de fichiers qu'il contient, je vais faire une recherche du type : je recherche dans le nom de chacun des fichiers (********.rpi, **********.rpx etc), la chaîne de caractère définit par la variable numchantier. Si le test est positif, alors je vais enregistrer le chemin d'accès du fichier en question dans une table.
Mon soucis, bien que cela marche parfaitement :
- je ne comprend pas pourquoi l'opération est si longue
- j'ai mis en place une progressbar, pour que l'utilisateur voit la progression de la tâche mais cela ne fonctionne pas
Ci-dessous mon code :
Merci d'avance,
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 Public Sub BtSel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtSel.Click 'Déclaration des variables Dim RowSelect As Integer Dim NomFichier As String Dim Test1, Test2 As Integer Dim j As Integer 'Gestion de l'interface DataGridView1.Visible = False ProgressBar1.Visible = True BtSel.Visible = False Me.Hide() 'Vidange des list box Lb1.Items.Clear() 'Affichage du chantier sélectionné précédement dans la liste et enregistrement dans la variable NumChantier RowSelect = DataGridView1.CurrentCell.RowIndex NumChantier = DataGridView1.Item(1, RowSelect).Value.ToString Lbl1.Text = "Numéro de chantier :" Lbl2.Text = NumChantier 'Configuration de la progressbar ProgressBar1.Minimum = 1 ProgressBar1.Maximum = My.Computer.FileSystem.GetFiles(CheminRapports).Count - 1 ProgressBar1.Value = 1 ProgressBar1.Step = 1 'On parcours le répertoire CheminRapports et on met dans le tableau "FichierTab" les chemins d'accès dont l'extension est rpx et qui contiennent le numchantier sélectionné For i As Integer = 0 To My.Computer.FileSystem.GetFiles(CheminRapports).Count - 1 NomFichier = My.Computer.FileSystem.GetFiles(CheminRapports).Item(i) Test1 = InStr(NomFichier, NumChantier, [Compare]) Test2 = InStr(NomFichier, Extension, [Compare]) If Test1 <> 0 And Test2 <> 0 Then FichierTab(j) = My.Computer.FileSystem.GetFiles(CheminRapports).Item(i) j = j + 1 ReDim Preserve FichierTab(j) End If ProgressBar1.PerformStep() Next i 'Détermine et affiche le nombre de rapports associés au chantier sélectionné NbRapports = FichierTab.GetUpperBound(0) Lbl3.Text = "Nombre de fichiers trouvés :" Lbl4.Text = NbRapports 'Affiche les chemins des fichiers sélectionnés dans la ListBox1 For i As Integer = 0 To NbRapports - 1 Lb1.Items.Add(FichierTab(i)) Next i Me.Show() BtValider.Visible = True Lbl2.Visible = True Lbl1.Visible = True Lbl3.Visible = True Lbl4.Visible = True Lb1.Visible = True End Sub
Partager