Yasersadegh
شنبه 08 خرداد 1389, 12:57 عصر
سلام دوستان عزیز
من یه فایل دارم که می خوام با استفاده از سی ++ مثلا عبارت *MZP* رو در داخل اون پیدا کنم!
کدی که نوشتم به صورت زیر هست:
HANDLE hFile1,hFile2;
char str[5];
DWORD byetesRead,byetesWrite;
WCHAR logfile1[MAX_PATH];
wcscpy(logfile1,TEXT("Target.exe"));
WCHAR logfile2[MAX_PATH];
wcscpy(logfile2,TEXT("File1.exe"));
hFile1 = CreateFile(logfile1, // file to open
FILE_READ_DATA, // open for reading
FILE_SHARE_READ, // share for reading
NULL, // default security
OPEN_ALWAYS, // existing file only
FILE_ATTRIBUTE_NORMAL, // normal file
NULL); // no attr. template
hFile2 = CreateFile(logfile2, // file to open
FILE_WRITE_DATA, // open for reading
FILE_SHARE_WRITE, // share for reading
NULL, // default security
OPEN_ALWAYS, // existing file only
FILE_ATTRIBUTE_NORMAL, // normal file
NULL); // no attr. template
do{
ReadFile(hFile1,str,1, &byetesRead, NULL);
if(strcmp(str,"*")==0)
{
ReadFile(hFile1,str,4, &byetesRead, NULL);
printf("\n%S >>%d",str,byetesRead);
if(strcmp(str,"MZP*")==0)
{
}
else
{
WriteFile( hFile2,"*", 1, &byetesWrite, NULL);
}
}
WriteFile( hFile2, str, byetesRead, &byetesWrite, NULL);
}while(byetesRead>0);
ولی با این کد در حالی که چندین کاراکتر * در فایلم موجود هست و یک عبارت *MZP* هم هست، ولی هیچ کدوم رو پیدا نمی کنه!
دوستان لطف می کنن اگه اشکال کد بنده رو بفرمایند.:چشمک:
من یه فایل دارم که می خوام با استفاده از سی ++ مثلا عبارت *MZP* رو در داخل اون پیدا کنم!
کدی که نوشتم به صورت زیر هست:
HANDLE hFile1,hFile2;
char str[5];
DWORD byetesRead,byetesWrite;
WCHAR logfile1[MAX_PATH];
wcscpy(logfile1,TEXT("Target.exe"));
WCHAR logfile2[MAX_PATH];
wcscpy(logfile2,TEXT("File1.exe"));
hFile1 = CreateFile(logfile1, // file to open
FILE_READ_DATA, // open for reading
FILE_SHARE_READ, // share for reading
NULL, // default security
OPEN_ALWAYS, // existing file only
FILE_ATTRIBUTE_NORMAL, // normal file
NULL); // no attr. template
hFile2 = CreateFile(logfile2, // file to open
FILE_WRITE_DATA, // open for reading
FILE_SHARE_WRITE, // share for reading
NULL, // default security
OPEN_ALWAYS, // existing file only
FILE_ATTRIBUTE_NORMAL, // normal file
NULL); // no attr. template
do{
ReadFile(hFile1,str,1, &byetesRead, NULL);
if(strcmp(str,"*")==0)
{
ReadFile(hFile1,str,4, &byetesRead, NULL);
printf("\n%S >>%d",str,byetesRead);
if(strcmp(str,"MZP*")==0)
{
}
else
{
WriteFile( hFile2,"*", 1, &byetesWrite, NULL);
}
}
WriteFile( hFile2, str, byetesRead, &byetesWrite, NULL);
}while(byetesRead>0);
ولی با این کد در حالی که چندین کاراکتر * در فایلم موجود هست و یک عبارت *MZP* هم هست، ولی هیچ کدوم رو پیدا نمی کنه!
دوستان لطف می کنن اگه اشکال کد بنده رو بفرمایند.:چشمک: