Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 5 juil. 2008 à 22:00
mea culpa, tu as raison pour le +1
au petit reveil, je suis excusable ^^
sorry si j'ai pu paraitre mal luné.
concernant l'optimisation, ca ne viendra probablement pas, dans cette source, j'ai fait ca vite fait, pour gagner du temps au boulot... vu le temps gagné, ca se compte pas en secondes ^^
et ca me laisse du temps pour autr chose que le boulot :P
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 5 juil. 2008 à 14:22
euh..trié ?! pas forcément
Si je compares M avec F, pourquoi recomparer F avec M ?
Et puis comme tu dis: ça marche ça marche ..Et combien même on
aura à traiter une liste de 90 000 items, quelques secondes de plus
ou de moins, ne changera pas grand chose au cours de l' histoire.
Renfield, je te sens irrascible ce matin.
Alors qoui ? t' as pas encore fini tes cinq fruits ? ;)
Sur ce, je me barre :-)
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 5 juil. 2008 à 06:51
dans un monde ou les items seraient triés peut-être bien ^^
(For k = i+1 To UBound(xsItems))
pour les cas particuliers (0, 1, ou deux elements...) j'ai pas traité. je l'ai dit: les algos fonctionnent, point barre.
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 4 juil. 2008 à 21:41
Salut,
Pas encre tester l' ensemble.
Il n' y a pas de doute que ça fonctionne.
J'ai parcouru le code, et j' avoue que je m' y perd un peu.
Mais pour la suppression, il me semble que ça devrait ressembler à ceci:
Private Sub CcBtnRemoveDuplicates_Click(Index As Integer)
'tester si la liste comporte au moins deux éléments .
If CcTxtList.Count=1 Then Exit Sub
'Voir même tester sur CcTxtList.Count=2
'et comparer le premier avec le deuxième.
Dim xsItems() As String
Dim i As Long
Dim k As Long
BeginJob
xsItems = Split(CcTxtList(Index).Text, vbCrLf)
For i = 0 To UBound(xsItems)-2
If LenB(xsItems(i)) Then
For k = i+1 To UBound(xsItems)
If LenB(xsItems(k)) Then
If xsItems(i) = xsItems(k) Then
xsItems(k) = vbNullString
End If
End If
Next k
End If
Next i
CcTxtList(Index).Text = Join(xsItems, vbCrLf)
EndJob
End Sub
5 juil. 2008 à 22:00
au petit reveil, je suis excusable ^^
sorry si j'ai pu paraitre mal luné.
concernant l'optimisation, ca ne viendra probablement pas, dans cette source, j'ai fait ca vite fait, pour gagner du temps au boulot... vu le temps gagné, ca se compte pas en secondes ^^
et ca me laisse du temps pour autr chose que le boulot :P
5 juil. 2008 à 14:22
Si je compares M avec F, pourquoi recomparer F avec M ?
Et puis comme tu dis: ça marche ça marche ..Et combien même on
aura à traiter une liste de 90 000 items, quelques secondes de plus
ou de moins, ne changera pas grand chose au cours de l' histoire.
Renfield, je te sens irrascible ce matin.
Alors qoui ? t' as pas encore fini tes cinq fruits ? ;)
Sur ce, je me barre :-)
5 juil. 2008 à 06:51
(For k = i+1 To UBound(xsItems))
pour les cas particuliers (0, 1, ou deux elements...) j'ai pas traité. je l'ai dit: les algos fonctionnent, point barre.
4 juil. 2008 à 21:41
Pas encre tester l' ensemble.
Il n' y a pas de doute que ça fonctionne.
J'ai parcouru le code, et j' avoue que je m' y perd un peu.
Mais pour la suppression, il me semble que ça devrait ressembler à ceci:
Private Sub CcBtnRemoveDuplicates_Click(Index As Integer)
'tester si la liste comporte au moins deux éléments .
If CcTxtList.Count=1 Then Exit Sub
'Voir même tester sur CcTxtList.Count=2
'et comparer le premier avec le deuxième.
Dim xsItems() As String
Dim i As Long
Dim k As Long
BeginJob
xsItems = Split(CcTxtList(Index).Text, vbCrLf)
For i = 0 To UBound(xsItems)-2
If LenB(xsItems(i)) Then
For k = i+1 To UBound(xsItems)
If LenB(xsItems(k)) Then
If xsItems(i) = xsItems(k) Then
xsItems(k) = vbNullString
End If
End If
Next k
End If
Next i
CcTxtList(Index).Text = Join(xsItems, vbCrLf)
EndJob
End Sub