Je continu l'exploration de "purebasic" et je bloc a nouveau , je voudrai comparer 2 fichier txt et en ecrire un 3 eme qui ne contient que les differences!
J'explique:les 2 fichiers txt contiennent chacun une liste de fichiers (creer avec WriteStringN) ==>retour a la ligne(jpense que c mieu pour pouvoir les comparer?)
a partir de la je voudrai creer un 3eme fichier qui ne contient les fichiers differents!!
Il faut pour coller a ton exemple lire les deux fichiers avec deux niveaux de rupture. Soit deux tant que (while) imbriqués.
Tu lis le premier fichier et ensuite tu lis le second et tu boucles tant que les deux lignes des fichiers sont equivalente sinon tu ecris ton troisieme fichier.
S'il existe une fonction line input en purebasic ca devrait pas trop te poser de probleme a faire ce que tu souhaites.
Si tu respectes la contrainte de mettre une ligne par valeur, tu devrais facilement pouvoir construire deux tableaux temporaires avec les valeurs triées de chaq tableau pour les comparer et en déduire la liste des éléments identiques ou différents.
Essayes cela, et si tu bloques tu fais signe, je te donnerai un code pour démarrer.
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
op_file1.s=OpenFileRequester("Ouvrir le premier fichier ...","","Fichier texte (*.txt)|*.txt",0)
op_file2.s=OpenFileRequester("Ouvrir le second fichier ...","","Fichier texte (*.txt)|*.txt",0)
OpenFile(1,op_file1)
OpenFile(2,op_file2)
CreateFile(3,SaveFileRequester("Sauver le log ...","log.txt","Fichier texte (*.txt)|*.txt",0))
; traitement du premier fichier
Repeat
UseFile(1)
string_file1.s = ReadString()
UseFile(2)
FileSeek(0)
Repeat
string_file2.s = ReadString()
If string_file1 = string_file2
commun.l = 1
EndIf
Until Eof(2) Or commun
If commun = 0
UseFile(3)
WriteStringN("Ligne non présente dans le fichier " + GetFilePart(op_file2) + " : " + string_file1)
EndIf
commun=0
Until Eof(1)
; réinitilise les 2 fichiers à comparer
UseFile(1)
FileSeek(0)
UseFile(2)
FileSeek(0)
; traitement du second fichier
Repeat
UseFile(2)
string_file2.s = ReadString()
UseFile(1)
FileSeek(0)
Repeat
string_file1.s = ReadString()
If string_file2 = string_file1
commun.l = 1
EndIf
Until Eof(1) Or commun
If commun = 0
UseFile(3)
WriteStringN("Ligne non présente dans le fichier " + GetFilePart(op_file1) + " : " + string_file2)
EndIf
commun=0
Until Eof(2)
MessageRequester("Fini", "Traitement fini")