C# comparer contenu de plusieurs fichiers texte [Résolu]

Messages postés
6
Date d'inscription
lundi 9 avril 2018
Dernière intervention
12 avril 2018
- 9 avril 2018 à 11:18 - Dernière réponse :
Messages postés
12272
Date d'inscription
mardi 11 mars 2003
Dernière intervention
21 novembre 2018
- 14 avril 2018 à 21:53
Bonjour : (console application)
je travaille dans un projet depuis quelques jours
j'ai un dossier contenant des fichiers texte ,si une ligne de ces fichier se répéte 4 fois ou plus dans les autre fichiers je dois l'afficher .
quand j'ai chercher j'ai trouve seulment methode de comparaison entre 2 fichier texte.
Merci d'avance.


Afficher la suite 

Votre réponse

10 réponses

Messages postés
12272
Date d'inscription
mardi 11 mars 2003
Dernière intervention
21 novembre 2018
9 avril 2018 à 13:08
0
Merci
Je ne suis pas sûr d'avoir bien compris
Là dans log3 tu as la ligne
Article : 5895479 innexistant
(ps y'a qu'un n à inexistant)

Et tu veux savoir si cette ligne exactement, est présente au moins 4 fois dans tous les autres fichiers? ou dans au moins 1 autre fichier?
Messages postés
6
Date d'inscription
lundi 9 avril 2018
Dernière intervention
12 avril 2018
- 9 avril 2018 à 14:41
par exemple je veux trouver cette ligne une seule fois mais dans 4 log différent(Article : 5895479 innexistant) dans log1 ,log2 ,log6 ext..
normalement on peux pas trouver la meme ligne 2 fois dans le méme log j'ai saisi le log 3 manuellement c pour cela j'ai commis cette faute my bad .
Commenter la réponse de Whismeril
Messages postés
12272
Date d'inscription
mardi 11 mars 2003
Dernière intervention
21 novembre 2018
9 avril 2018 à 15:37
0
Merci
Ok c'est plus simple alors.

Tu commences par charger la liste des fichiers, voir la classe Directory.
Ensuite tu parcours la liste, tu charges dans un dictionnaire en clé le nom du fichier et en valeur le texte entier avec File.GetAllText.

Ensuite pour chaque entrée du dictionnaire, tu splites le textes pour obtenir les lignes et pour chaque ligne tu regardes la valeur des autres entrées du dictionnaires pour savoir si le texte est présent, avec la méthode Contains.
Messages postés
6
Date d'inscription
lundi 9 avril 2018
Dernière intervention
12 avril 2018
- 9 avril 2018 à 16:15
enfaite je voulais dire c# non pas c my bad
en tout cas merci pour ta réponse
Messages postés
6
Date d'inscription
lundi 9 avril 2018
Dernière intervention
12 avril 2018
- 10 avril 2018 à 11:35
Bonjour whismeril cv,
j'ai essayer ce code :
foreach (string file in Directory.GetFiles("C:\\Users\\Marouane\\Desktop\\leslogs"))
{
string ligne;
StreamReader sr = new StreamReader(file);
ligne = sr.ReadLine();
}
il m'affiche les ligne qui se répétent aux moin 2 fois
mais j'ai encore besoin d'aide
sinon
j'ai stocke tous les fichier texte dans une variable y'a t'il moyen de compter et afficher les ligne qui se rassemble dans cette variable ?
Messages postés
12272
Date d'inscription
mardi 11 mars 2003
Dernière intervention
21 novembre 2018
- 10 avril 2018 à 22:20
C’est possible avec un dictionnaire ou en ecrivant une classe dédiée
Messages postés
6
Date d'inscription
lundi 9 avril 2018
Dernière intervention
12 avril 2018
- 12 avril 2018 à 10:36
c'est résolu

class Program
{
static void Main(string[] args)
{
List<string> lignes = new List<string>();
foreach(string file in Directory.GetFiles("C:\\Users\\Marouane\\Desktop\\leslogs"))
{
string ligne;
StreamReader sr = new StreamReader(file);
while ((ligne = sr.ReadLine()) != null) {
lignes.Add(ligne);
}
}
List<string> checks = new List<string>();
for(int i = 0; i < lignes.Count; i++) {
string x = lignes[i];
int nbr = 0;
for (int y = i; y < lignes.Count; y++) {
if (lignes[y] == x)
nbr++;
}
if (nbr >= 4) {
if (!checks.Contains(x))
checks.Add(x);
}
}

for (int i = 0; i < checks.Count; i++)
Console.WriteLine(checks[i]);

Console.Read();
}
}
}
Messages postés
12272
Date d'inscription
mardi 11 mars 2003
Dernière intervention
21 novembre 2018
- 14 avril 2018 à 21:53
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.