Comparer des fichier text c# [Résolu]

Signaler
Messages postés
37
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
7 avril 2008
-
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011
-
Bonjour,
dans le cadre d'une application web jai besoin d'historiser mes fichiers et de comparer le contenu de ces fichier différents . Ce sont des fichiers text avec des chaine de caractère. L'objectif de la comparasion et de voir quelle sont les diférenc et de pouvoir les identifier. Il est possible de modifier une ligne ou dajouter une ligne.D'ou lutilité de pouvoir les comparer !

Je code en c# jaimerais bien avoir un debut de source pour commencer car je ne vois pas comment faire !
merci a tous

5 réponses

Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

Server.MapPath <== renvoi le repertoire courrant sur le site web
Page.MapPath <== renvoi le repertoire courrant de la page en cour

apres tu lit le fichier avec un flux qui te permet de lire ligne par ligne : StreamReader

dim sw as new StreamReader(sMonFichier)

ensuite tu le lit ligne par ligne jusqu'a la fin du fichier :

Do While sr.Peek() >= 0
    Dim sLigne As String = sr.ReadLine()
Loop
sr.Close()

donc pour toi il suffira de faire la meme chose mais avec 2 fichier en même temps :
dim nLigne as integer = 0
dim sw1 as new StreamReader(sMonFichier1)
dim sw2 as new StreamReader(sMonFichier2)

Do Until (sw1.Peek < 0 ) orelse (sw2.Peek < 0))
    nLigne +=1
    dim sLigne1 as string = sw1.ReadLine()
    dim sLigne2 as string = sw2.ReadLine()

    ComparerLigne(sLigne1, sLigne2)
Loop
if sw1.Peek < 0 then
    'Fichier 1 fini donc le reste du fichier 2 differe car ca n'existe pas ici
    'Msg a afficher en consequence
elseif sw2.Peek < 0 then
    'Fichier 2 fini donc le reste du fichier 1 differe car ca n'existe pas ici
    'Msg a afficher en consequence
end if
Private sub ComparerLigne(s1 as string, s2 as string)
    'A vous de jouer :p
    'Msg a afficher en consequence si ca differe
    'numéro de ligne contenu dans => "nLigne"
End Sub

(Pensez a valider les réponse)

TeBeCo
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

mon dieu je t'ai mit tout en vb.net :s
mes excuse j'etais sur l'autre forum avant j'ai pas tilté :s

//variable de classe
int32 nLigne = 0; 
StreamReader sw1;
StreamReader sw2;

//dans la procedure de lancement :
sw1 = new StreamReader(sMonFichier1);
sw2 = new StreamReader(sMonFichier2);
While ((sw1.Peek() > 0 ) || (sw2.Peek() > 0))
{
    nLigne++;
    String sLigne1 = sw1.ReadLine();
    dim sLigne2 = sw2.ReadLine();

    ComparerLigne(sLigne1, sLigne2);
}
if (sw1.Peek() < 0)
{
    'Fichier 1 fini donc le reste du fichier 2 differe car ca n'existe pas ici
    'Msg a afficher en consequence
}
else
{
    if (sw2.Peek() < 0) then
        'Fichier 2 fini donc le reste du fichier 1 differe car ca n'existe pas ici
        'Msg a afficher en consequence
    }
    else
    {
        'rien d'anormal ici ^^
    }
}

private void ComparerLigne(String s1, String s2)
    //A vous de jouer :p
    //Msg a afficher en consequence si ca differe
    //numéro de ligne contenu dans => "nLigne"
End Sub

j'ai eu une coupure de courrant entre mes 2 post j'ai peut etre laisser passer des betises en perdant ce a quoi je pensais

TeBeCo
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

ca serais sympa de donner un signe de vie savoir si la réponse convient ou pas ect ...valider ou pas et tout ce qui va avec

TeBeCo
Messages postés
37
Date d'inscription
mercredi 21 janvier 2004
Statut
Membre
Dernière intervention
7 avril 2008

Désoler ce nest pas question que j'ai négliger ta reponse c'est seulemnt quavant de la valider jai voulu la teste,la comprendre et jai eu quelque souci pour ladapter a mon code !

Mais sinon elle me convient parfaitement je vais l'accpeteé.

Merci et désoler du retard !
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

Bonne continuation en .net

TeBeCo