Bonjour,
J'ai en effet un problème avec l'imbrication de mes boucles. J'essaie donc de créer un programme qui recherche quel élément parmi les exécutables de même nom est le plus récent, et de l'installer.. Alors attention, comme on me l'a fait remarquer, ça pique les yeux (âmes sensibles s'abstenir)
Le problème intervient au niveau de l'imbrication des deux boucle: Ce qui m'intéresse c'est que le while récupère la valeur du j qui s'incrémente, or quand on rentre dans le while, je perds totalement sa valeur (Le print m'affiche 0 , alors que la boucle for en est à j =1,2,3,4,5,6... enfin vous aurez compris). Du coup ma boucle while refait sans arrêt la même chose, 360 fois (c'est la valeur de mon i ).
Donc si vous avez des solutions à me proposer j'en serait ravie et surtout reconnaissante sachant que ça fait 1 jour que je galère !Donc Merci d'avance
PS: Pour ceux qui auraient le temps ou l'envie de me montrer à quoi ressemblerait un programme différent qui fait la même chose ( fait par un pro quoi) J'en serais ravie.
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121 Imports System.IO Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim i As Integer = 0 For Each file As String In Directory.GetFiles("P:\CTRL_Projets\DTM_Repository", "*.exe", System.IO.SearchOption.AllDirectories) Dim lStr As String = file Dim lDossierNom As String = IO.Path.GetFileName(IO.Path.GetDirectoryName(lStr)) Dim startIndex As Integer = 30 Dim length As Integer = 20 Dim substring As String = file.Substring(startIndex, length) Dim LaDate As Date = IO.File.GetLastWriteTime(file) i = i + 1 ListBox2.Items.Add(LaDate) ListBox1.Items.Add(substring) ListBox5.Items.Add(lDossierNom) ListBox6.Items.Add(file) Next Dim nosame As String Dim k As Integer = 0 Dim m As Integer = 0 Dim j As Integer = m Dim nomentier As String = 0 Dim value As String = ListBox1.Items.Item(j) Dim time As Date = ListBox2.Items.Item(j) For m = 0 To i While k < i ListBox7.Items.Add(j) Dim t1 As Date = ListBox2.Items.Item(j) Dim t2 As Date = ListBox2.Items.Item(k) Dim s1 As String = ListBox1.Items.Item(j) Dim s2 As String = ListBox1.Items.Item(k) Dim n1 As String = ListBox6.Items.Item(j) Dim n2 As String = ListBox6.Items.Item(k) s1 = value t1 = time n1 = nomentier ListBox3.Items.Add(nomentier) ListBox3.Items.Add(time) If String.Compare(s1, s2) = 0 Then 'Compare le premier substring au deuxième If DateTime.Compare(t1, t2) < 0 Then value = s2 nomentier = n2 time = t2 'Si t2 est plus jeune, il remplace la valeur du premier substring par le deuxième pour le comparer à son tour' ElseIf DateTime.Compare(t1, t2) > 0 Then value = s1 nomentier = n1 time = t1 't1 est plus jeune, donc on garde le même substring et on implémente k pour trouver un autre fichier plus jeune ' Else value = s1 nomentier = n1 time = t1 End If ElseIf String.Compare(s1, s2) <> 0 Then nosame = 0 value = s1 time = t1 nomentier = n1 End If k = k + 1 s1 = value t1 = time n1 = nomentier End While ListBox4.Items.Add(nomentier) Next End Sub End Class
Partager