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
| 'on lance une boucle End Of Line qui va lire chaque ligne une a une jusqu'a la fin du fichier
While Not EOF(1)
'on commence a calculer le pourcentage pour le compteur
If (intCompteurLigne \ 100) <> 0 Then formTrois.lblPourcentage.Text = ((CptI) \ (intCompteurLigne / 100)) & " %"
'on lit une ligne
strLine = LineInput(1)
'on effectue les calculs sur chaque ligne pour trouver les champs qui nous interessent dans le xml
strDomaine = PrendreEntre(strLine, "domain=""", """ name=")
'Vérifier que les données n'ont pas déjà été stockées au préalable dans la table
DomaineExiste = False
'...table domaine
indice = 0
While (indice <= (CptDomaine - 2)) And (DomaineExiste = False) And (strDomaine <> "0")'Deux dernières conditions sont mises pour ne pas rentrer dans la boucle quand ce n'est pas nécessaire, la première indique juste de passer sur chaque ligne du fichier antérieure à celle en cours
If Domaine(indice) = strDomaine Then'si le domaine de la ligne en cours a déjà été stocké dans le fichier
DomaineExiste = True
End If
indice += 1
End while
'... Je passe d'autres boucles qui n'ont pas d'intérêt ici...
'Déclaration de la requête SQL d'insertion
Dim strSQLDomaine As String = "INSERT into Domaine(NumDomaine, NomDomaine) VALUES(" _
& CptDomaine & ",'" & strDomaine & "');"
'Mise en place et execution de la requête d'insertion dans Domaine
If DomaineExiste = False And strDomaine <> "0" Then
'Stockage dans un tableau de Domaine pour éviter les doublons
Domaine(CptDomaine - 1) = strDomaine
cmSQLDomaine = New SqlCommand(strSQLDomaine, cnSQL)
cmSQLDomaine.ExecuteNonQuery()
CptDomaine += 1
End If
'On incremente les 2 compteurs, celui de l'index de ligne et celui du pourcentage de la barre
i += 1
CptI += 1
'on ajoute le nouveau login dans cbxLogin
'(Comme j'ai repris un ancien code déjà existant, je pense que cette partie n'est pas nécessaire, avec ma base de données)... Je suis en train de me demander si cela aussi peut ralentir le traitement
If strLogin <> "0" Then
If strTypeAction = "Login_User" Then If Not cbxLogin.Items.Contains(strLogin) Then cbxLogin.Items.Add(strLogin)
End If
'C'est cette partie, d'après ce que j'ai pu remarquer, qui opère un gros ralentissement au programme, d'après ce que j'ai pu constater
'refresh du pourcentage et avancement de la barre de progression
formTrois.lblPourcentage.Refresh()
formTrois.mybarre.PerformStep()
formTrois.mybarre.Refresh()
'sortie de la boucle
End While |
Partager