ورود

View Full Version : مقایسه دو فایل txt



s.shast
دوشنبه 16 اسفند 1389, 23:13 عصر
سلام دوستان .

من خیلی مبتدی هستم . می خوام محتوای دو تا فایل رو مقایسه کنم . یک تاپیک دیدم در این رابطه اما کد هاش مشکل داره . یک فایل میگیره . در صورتی که باید 2 تا فایل رو بگیره از کاربر : این هم لینک تاپیک (http://barnamenevis.org/showthread.php?70123-%D8%A7%D9%85%DA%A9%D8%A7%D9%86-%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87-%D8%A8%DB%8C%D9%86-%D8%AF%D9%88-%D9%81%D8%A7%DB%8C%D9%84-%D9%88-%D8%A8%D9%87-%D8%AF%D8%B3%D8%AA-%D8%A2%D9%88%D8%B1%D8%AF%D9%86-%D8%A7%D8%AE%D8%AA%D9%84%D8%A7%D9%81-%D8%A2%D9%86%D9%87%D8%A7)

امکانش هست کد C رو برای این امر برای من بزارید ؟ ممنون میشم

tdkhakpur
سه شنبه 17 اسفند 1389, 01:00 صبح
می خوام محتوای دو تا فایل رو مقایسه کنم

الگوریتم این کار به شکل زیر میشه:
1 - اندازه هر دو فایل رو بدست بیار اگر برابر نبودند پس یکی نیستن یشغام بده و خارج شو.
2 - فایل اول و فایل دوم رو بازکن
3- یک بایت از فایل اول و یک بایت از فایل دوم رو بخوان و مقایسه کن اگر مساوی نبودن پیغام بده و خارج شو د
4 - تا وقتی کع به انتهای فایل نرسیدی (فرقی نداره فایل اول یا دوم) به خط بالا برگرد.
5 - هر دو فایل باز شده رو ببند.

s.shast
سه شنبه 17 اسفند 1389, 12:29 عصر
واقعاً ممنون جناب خاکپور . اما من خیلی مبتدی هستم نمیتونم این کار رو کنم . امکانش هست یک لطفی کنید کد اون رو بزارید ؟ واقعاً ممنون میشم اگه این لطف رو در حق من بکنید .

tdkhakpur
سه شنبه 17 اسفند 1389, 15:30 عصر
//---------------------------------------------------------------------------
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
long Get_FILE_Size(char *FileName)
{
FILE *fp;
long lenght=0;
fp = fopen(FileName, "rb+");
if(fp){
fseek(fp, 0, SEEK_END );
lenght = ftell(fp);
fclose(fp);
}
return lenght;
}
int main(int argc, char* argv[])
{
FILE *fp1, *fp2;
long lenght1, lenght2;
char File1[64], File2[64], ch1, ch2;
cout<<"\n enter file number 1: "; cin>>File1;
cout<<"\n enter file number 2: "; cin>>File2;
lenght1 = Get_FILE_Size(File1);
lenght2 = Get_FILE_Size(File2);
if(lenght1==lenght2){
fp1 = fopen(File1, "rb+");
fp2 = fopen(File2, "rb+");
do{
ch1 = fgetc(fp1);
ch2 = fgetc(fp2);
if(ch1!=ch2){
cout<<"\n 2 file is not equal.";
break;
}
}while(!feof(fp1));
cout<<"\n 2 file is equal.";
fclose(fp1);
fclose(fp2);
}else
cout<<"\n 2 file is not equal.";
getch();
return 0;
}
//---------------------------------------------------------------------------