Bulzib
Messages postés9Date d'inscriptionvendredi 8 juillet 2011StatutMembreDernière intervention29 mars 2012
-
18 juil. 2011 à 16:12
Bonjour,
Je tente de coder un logiciel qui compare deux colonnes de deux feuilles Excel ensemble.
J'utilise actuellement le vb.net et la librairie Excel pour plus de facilité. le problème actuellement est que les deux document que je possède contienne plus de 17000 lignes...
La première version du programme semblais bien marcher avec de petite feuille (10 lignes pour les tests), mais semble interminable pour c'est deux monstres :(
J'ai tenter de charger c'est donné dans deux listes FIFO pour effectuer des modifications (enlever les ceux qui sont identiques) afin d'accélérer le processus, mais cela ne semble pas être très fructueux.
J'ai donc tenter les threads, mais le debug semble impossible (avec Visual Studio 2005 et mes connaissances).
Voici une partie du code et ou le tout prend un temps fou :
Dim xls1 As Excel.Worksheet
Dim xls2 As Excel.Worksheet
Dim lst1 As New List(Of info) 'liste FIFO de xls1
Dim lst2 As New List(Of info) 'liste FIFO de xls2
Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoad.Click
Dim th1 As New Thread(AddressOf bgWorker1)
Dim th2 As New Thread(AddressOf bgWorker2)
th1.Start()
th2.Start()
Do Until (Not th1.IsAlive And Not th2.IsAlive)
Loop
End Sub
'bgWorker 1 et 2 sont identique mais ne traite pas les même listes
Private Sub bgWorker1()
'On parcours le document pour rassembler les infos
For i As Long = 2 To xls1.Rows.Count Step 1
Dim ext As New info
'On extrait les infos
ext.ID = xls1.Cells(i, 1).value
ext.Remarque = xls1.Cells(i, 3).value
'On ajoute les info a la liste
lst1.Add(ext)
Next
End Sub