begin process at 2010 02 10 09:49:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Algorithme

 > 

Compression, Split et Cryptage

 > 

Algorithme performant croisement fichier Email


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Algorithme performant croisement fichier Email

mercredi 24 décembre 2008 à 13:46:48 | Algorithme performant croisement fichier Email

vladam

Administrateur CodeS-SourceS
Bonjour,

   J'ai deux fichiers texte, avec dans chacuns d'eux une liste de mail. Le premier est la liste complète de mes abonnés (newsletter) et le second est la liste des abonnés ayant ouvert ma dernière newsletter. les fichiers sont des fichiers texte, avec un mail par ligne (pas de séparateur, juste un retour à la ligne pour chaque record).
   Je veux faire une fonction me permettant de ressortir la liste de tous les Email, n'yant pas ouvert ma newsletter. Donc :
   Je veux comparer le fichier A avec le fichier B pour ressortir tous les mails du fichier A qui sont aussi dans le fichier B.
   Je suis sûr qu'il existe un algorithme dans existant pour optimiser au maximum le temps de traitement (ma fonction doit exécuter cela le plus rapidement possible, avec + de 130 000 records dans chaque fichier).

   Merci pour votre aide, pour ceux qui connaissent.


vladam
(pour vous servir :) )
mercredi 24 décembre 2008 à 14:07:32 | Re : Algorithme performant croisement fichier Email

nhervagault

Administrateur CodeS-SourceS
Salut,

Avec une requete linq c'est surement possible ;-)
Avec le mot cles EXCEPT

L'optimisation est faite je crois par les yield qui sont générés par le compilateur.

Bon coding
jeudi 25 décembre 2008 à 10:44:04 | Re : Algorithme performant croisement fichier Email

Bidou

Administrateur CodeS-SourceS
Réponse acceptée !
C'est possible, mais je ne pense pas que LINQ soit une très bonne idée car il fera de bête comparaisons entre tout les éléments...
Il doit y'avoir moyen de faire mieux,  peut-être en rangeant les éléments dans une hashtable (pour la clef, éven. la première lettre de l'adresse eMail?).



-Blog-
-Site Perso-
vendredi 26 décembre 2008 à 12:06:20 | Re : Algorithme performant croisement fichier Email

vladam

Administrateur CodeS-SourceS
Bonjour,

Je ne veux pas utiliser LINQ, car au niveau optimisation, c'est très moyen. Disons que LINQ n'est pas vraiment fait pour faire ça, même s'il peut se connecter a des fichiers textes.
L'idée du HashTable n'est pas bête en effet, mais peut-il tenir plusieurs centaines de milliers de record, pas sur ...

vladam
(pour vous servir :) )
vendredi 26 décembre 2008 à 12:52:50 | Re : Algorithme performant croisement fichier Email

nhervagault

Administrateur CodeS-SourceS
Pour linq,

Je ne pensais pas a travailler sur le fichier texte directement, mais en chargeant les lignes dans une list<string>

En suite pour la hashtable tu es limité à la taille de ta mémoire
pour pas avoir trop de perte de performance tu peux à l'instanciation choisir une capacity
importante de facon ca ce que cette derniere ne soit pas recalculer quand les paniers sont trop pleins.

De toute facon, tu peux tenter les deux méthodes et comparer les résultat au niveau
temps (avec un stopwatch) et occupation memoire.

Bon courage
vendredi 26 décembre 2008 à 14:51:26 | Re : Algorithme performant croisement fichier Email

vladam

Administrateur CodeS-SourceS
Voila, ça tourne !

Je charge le premier fichier (le plus gros) en mémoire dans des listes de ma création (liste chainées encapsulées dans une liste chainée circulaire).
Cela me permet d'associer une liste d'index en plus avec les domaines.
La première liste chainée circulaire me permet d'indexer la première lettre des émails. Chaque éléments de cette liste circulaire est une liste simple de ses composants.
Pendant le chargement, je place aussi tous les domaines différents dans un HashTable afin de générer à la fin une table d'index.
Top performance ;)
c'est plus une conception de type C++, mais c'est plus performant qu'en utilisant le framework.Net uniquement.

vladam
(pour vous servir :) )


Cette discussion est classée dans : fichier, liste, fichiers, email, algorithme


Répondre à ce message

Sujets en rapport avec ce message

Probleme avec une checkedlistbox [ par ephilas ] Bonjour, je viens de me mettre au c# et je suis bloqué. Je suis en train de faire un programme permettant de telecharger une liste de fichiers, la l tant que non fin de fichier [ par Kbitnik ] BitnikBonjour, je dois réaliser comme projet un petit questionnaire en console application qui consiste à cr&#23 Datagrid et plusieurs fichiers XML [ par sergio297 ] Salut a tous,Je debute avec C#.NET, merci d'etre indulgent...J'ai un certain nombre de fichiers XML dont la structure est la meme. Mon but est de cree Lecture en streaming d'un fichier mp3. [ par LocalStone ] Bonjour, Je mets "Lecture en streaming d'un fichier mp3.", mais je sais même pas si j'emploie le bon terme ... Donc je vais m'expliquer correctement. fichier d'exportation .exp à importer [ par ratsimisampy ] salut à tous, Quelqu'un pourrait-il me donner des informations sur les fichiers à extension .exp? en fait mon appli devrai récupérer des données cont [C#] gerer une liste à partir d'un fichier xml [ par iow4 ] bonjour, dans une de mes appliquations j'aimerais gerer une "liste verte" comme sur cette exemple : http://img97.imageshack.us/img97/5669/image19aw.jp problème lors de la mise à jour de mes fichiers sur serveur [ par mathmax ] Bonjour,J'ai un problème lors de la mise à jour de mes fichiers sur mon serveur avec un programme C#. J'utilise en gros ce bout de code là :http://msd qu'est ce qu'un fichier .resx ? [ par hlayachi ] Bonjour à tous,1) Je trouve des fois dans des codes sources que je télécharge des fichiers .resx et quand j'ouvre l'application avec VS.Net ces fichie Acces fichiers... conflits !!! [ par SW_87 ] Bonjour , Je développe plusieurs petites applications en C# (asp.net) qui écrivent et lisent dans des fichiers txt. Malheureusement lorsqu Lister un répertoire du net [ par Online ] Bonjour, Je voudrais savoir si quelqu'un sait comment récupérer la liste des fichiers stockés dans un répertoire sur un serveur web <FONT face=Verdana


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales