Comparer deux chaines de texte [ Résolu]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

tmo a écrit : ( en peu de temps et sans exprience dans la programmation on arrive quelque chose de vraiment bien)
tu parle pour Stefou la ? :lol: :lol: (j'rigole hein... :D )
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

C'est peut-être pas la meilleur méthode mais tu peux faire comme suit :

Code : Tout sélectionner

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Nom du projet : Comparer le contenu de 2 fichiers
; Fichier : EXPÉRIMENTAL
; Version : 1.0.0
; Programmation : OK
; Programmé par : Guimauve
; Date : 12-03-2007
; Mise à jour : 12-03-2007
; Codé avec PureBasic V4.02
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Procedure.l MinLong(Nombre01.l, Nombre02.l)
   
   If Nombre01 > Nombre02
      
      PlusPetit.l = Nombre02
      
   ElseIf Nombre01 < Nombre02
      
      PlusPetit = Nombre01
      
   Else 
      
      PlusPetit = Nombre01
      
   EndIf
   
   ProcedureReturn PlusPetit
   
EndProcedure

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Création de 2 listes chainées <<<<<
; <<<<< On ne connait pas le nombre   <<<<<
; <<<<< de ligne que contient chacun  <<<<<
; <<<<< des fichiers.                 <<<<<

NewList Source.s()
NewList Verifer.s()

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< On lit les données dans le fichier source <<<<<

If ReadFile(0, "Source.txt")
   
   Repeat 
      
      Text.s = ReadString(0)
      
      If Text <> ""
         
         AddElement(Source())
         Source() = Text
         
      EndIf
      
   Until Eof(0)
   
   CloseFile(0)
   
EndIf

Debug "On regarde ce qui à été lu dans le fichier source"
Debug ""

ForEach Source()
   Debug Source()
Next

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< On lit les données dans le fichier Vérifier <<<<<

If ReadFile(1, "Vérifier.txt")
   
   Repeat 
      
      Text.s = ReadString(1)
      
      If Text <> ""
         
         AddElement(Verifer())
         Verifer() = Text
         
      EndIf
      
   Until Eof(1)
   
   CloseFile(1)
   
EndIf

Debug ""
Debug "On regarde ce qui à été lu dans le fichier Vérifier"
Debug ""

ForEach Verifer()
   Debug Verifer()
Next

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< 1ere comparaison - Le nombre d'élément des listes <<<<<

Nb_element_Source.l = CountList(Source())
Nb_element_Verifier.l = CountList(Verifer())

Debug ""

If Nb_element_Source = Nb_element_Verifier
   Debug "Les listes on le même nombre d'éléments"
ElseIf Nb_element_Source > Nb_element_Verifier
   Debug "Il y a plus d'éléments dans la source"
ElseIf Nb_element_Source < Nb_element_Verifier
   Debug "Il y a plus d'éléments dans Verifier"
EndIf

Debug ""

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Ici on trouve le plus petit minimum. C'est dans le
; cas l'un des fichiers aurrait moins d'élément que
; l'autre. 

min.l = MinLong(Nb_element_Source, Nb_element_Verifier)

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< 2e comparaison - Les éléments entre eux <<<<<

For Index = 0 To min - 1
   
   SelectElement(Source(), Index)
   SelectElement(Verifer(), Index)
   
   If Source() = Verifer()
      Debug "Les élément sont identiques"
   Else
      Debug "Les éléments sont différents"
   EndIf
   
   Debug "Source : " + Source()
   Debug "Verifier : " + Verifer()
   Debug ""
   
Next

; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< FIN DU FICHIER <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<
Le contenu du fichier Source.txt :

Code : Tout sélectionner

Allo le monde !
Comment ça va ?
Ça va bien, et vous ?
Malgré une migraine épouvantable ça va bien.

Le contenu du fichier Vérifier.txt :

Code : Tout sélectionner

Allo le monde !
Comment ça va ?
Ça va bien, et vous ?
Ça va bien.
A+
Guimauve
Répondre