wahidovic
Messages postés11Date d'inscriptionvendredi 22 avril 2011StatutMembreDernière intervention20 mai 2012
-
2 mai 2012 à 00:13
Utilisateur anonyme -
2 mai 2012 à 21:09
bonsoir j'utilise vb.net et a la fin de l'application je constate que le programme s’exécute trop lentement mais je pense qu'une partie du code est la cause principale
k = 0
If tableau_structure.Count >= 1 Then
Do
If tableau_structure(k).operateurs intermediate.operateurs And tableau_structure(k).country intermediate.country And tableau_structure(k).int_outband = intermediate.int_outband And tableau_structure(k).tcapops = intermediate.tcapops Then
intermediate.tentatives = tableau_structure(k).tentatives + 1
intermediate.succes = 0
tableau_structure(k).tcap_id.Add(tcap_origine)
intermediate.tcap_id = tableau_structure(k).tcap_id
'ajout
intermediate.tcapops = tcap
tableau_structure.Remove(tableau_structure(k))
tableau_structure.Insert(k, intermediate)
flag_3 = True
End If
k = k + 1
Loop Until flag_3 = True Or k > tableau_structure.Count - 1
End If
If flag_3 = False Then
intermediate.tentatives = 1
intermediate.tcap_id.Add(tcap_origine)
'ajout
intermediate.tcapops = tcap
intermediate.succes = 0
tableau_structure.Add(intermediate)
End If
-tableau_structure est une liste de classe que j'ai définie en bas et dans lequel toutes les informations relatifs pour chaque opérateur seront écrits dedans
- intermediate est un objet de type information définit ci dessous
( Dim intermediate As New information)
ce que j'ai postulé ci dessus est une partie d'une fonction dans laquelle je cherche en premier la classe dans ma liste de classe qui a les 3 criteres (operateurs country, int_outbound) donc si je le trouve j’incrémente le nombre de tentatives si non je crée une nouvelle classe dans laquelle je met toutes les informations de l’opérateur en question.
ma question est ; est ce qu'il n'existerait pas une fonction de VB.net qui ferait le travail plus rapidement c'est ça le challenge
Public Class information
Public tentatives As Integer
Public operateurs As String
Public country As String
Public int_outband As String
' Dim struct_error As List(Of erreur)
'Dim ssn1 As String
'Dim ssn2 As String
Public succes As String
Public origines As String
Public destinations As String
Public tcapops As String
Public i As Integer
Public taille As Integer
Public tcap_id As List(Of String)
Public nombre_erreur As New List(Of Integer)
Public type_erreur As New List(Of String)
Public index As Integer
'Dim nbre_faute As Integer
Public faute As String
End Class
Une seule question pour le bénéfice des suivants. (Je suis plus près d'aller me coucher que de solutionner ton problème...)
C'est pour faire quoi ?
À première vue, cela me semble plus simple de faire une table de données que tu garderais dans un dataset qu'un paquet de classes.
À vrai dire, je n'ai pas compris grand-chose à ton histoire, mais la création d'un nouvel objet pour chaque personne, me semble un gaspillage de ressources.
wahidovic
Messages postés11Date d'inscriptionvendredi 22 avril 2011StatutMembreDernière intervention20 mai 2012 2 mai 2012 à 19:14
bonjour
en réalité moi je lis un fichier CSV ligne par ligne et pour chaque ligne je fait appel a cette fonction , celle ci cherche tout d abord de quel opérateur s'agit il ainsi que int_outbound et le country (cette partie du code je ne l'ai pas afficher en haut) , temporairement je les met dans une
Code :
Sélectionner tout - Visualiser dans une fenêtre à part
Dim intermediate As New information
maintenant avec ça je peut aller comparer dans mes structures précédentes est ce qu'il y a une d'entre elle qui possède les même info que dans cet objet si oui j’incrémente le nombre de tentatives et je réinséré tout dans la structure en question si non j'ouvre une nouvelle structure dans laquelle je met toutes les nouvelles informations , voila moi je cherche a optimiser le code "gagner un peu de temps" en utilisant une méthode de vb par ex car plus le fichier csv et grand et plus le temps d'afficher les résultats est conséquent , trop même car jai fait un essai , un fichier excel de 8000 lignes est resté 5 seconde pour s'executer
Si je résume bien et que j'ai bien compris, il s'agit donc de :
1) Récupérer, une liste d'individus dans un fichier csv externe.
2) Ne rien faire si l'individu en question est présent
3) Ajouter l'individu dans la liste, s'il n'y est pas déjà.
4) Le nombre de tentatives doit, me semble-t-il, donner le nombre de fois où le nom est présent dans la liste.
Si cette "reformulation de confirmation" est exacte, je pense qu'il serait envisageable d'appliquer une approche de type base de données. Je pense que la récupération des données, la recherche des doublons et la mise-à-jour serait plus simple, et j'espère plus rapide.
Il faudra que je fasse plus de recherches, mais, il me semble avoir déjà vu à quelque part une chaîne de connexion à une base de données en fichier texte.
Sinon, j'espère qu'un autre "aideur" va se manifester. À vrai dire, la gestion de données, ce n'est pas ma spécialité, mais, je suis prêt à essayer, mais je ne garantis pas que, dans l'esprit du forum, je vais faire le code à ta place.