tcigsm
شنبه 14 اسفند 1389, 00:24 صبح
سلام
توضیح کلی:
من تعدادی فایل BIN داخل ذرایوها دارم داخل این فایلها کلمه MTK_ROMINFO وجود دارد که جلو آن ورژن فایل نوشته شده برای خواندن فایلی که مشخص کردهام مشکلی وجود ندارد . من از کد زیر استفاده میکنم :
void __fastcall TForm1::Button6Click(TObject *Sender)
{
if(OpenDialog1->Execute()){
FILE *fpp;
fpp=fopen(OpenDialog1->FileName.c_str(),"r");
int mtkpos=FileSearch1(fpp,"MTK_ROMINFO");
fseek(fpp,mtkpos,0);
char *d,*cpui;
cpui=new char[10];
d=new char [0x90];
fread(d,0x80,1,fpp);
d+=1+strlen(d);
MemoI->Text="Original File Name: "+String(d);
cpui=strstr(d,"MT62");
cpui[6]=0;
MemoI->Text=MemoI->Text+"\r\nCPU: "+String(cpui);
MemoI->Text=MemoI->Text+"\r\nVersion: "+String(d[13])+String(d[14]);
MemoI->Text=MemoI->Text+"\r\nFile Size: "+String(filesize1/1000000)+"MB";
fclose(fpp);
خوب حالا دکمهایی برای جستجوی فایلهای BIN گذاشتم که در مسیری که مشخص کردهام بدنبال فایل Bin میگرده و ورژن اونو شناسایی میکنه و وارد txt.bin میکنه.
void __fastcall TForm1::Button7Click(TObject *Sender)
{
asdss=1;
Button2->Enabled=1;
HWND asd;
ShellExecuteA(asd,"OPEN","cmd.exe",(" /c dir /b /s "+DirectoryListBox1->Directory+"\\*.bin > \""+ExtractFileDir(_argv[0])+"\\bin.txt\"").c_str(),NULL,SW_HIDE);
while(!FileExists(ExtractFileDir(_argv[0])+"\\bin.txt")) {
Sleep(10);
}
Memo7->Lines->LoadFromFile(ExtractFileDir(_argv[0])+"\\bin.txt");
DeleteFileA(ExtractFileDir(_argv[0])+"\\bin.txt");
MemoI->Text="";
int i=2;
_beginthread(thread_code,4096,(void *)i);
من بابت این هیچ مشکلی ندارم ، مشکل اصلی من اینه که زمانی که به فایلی برخورد میکنه که نام فایل رو به زبال فارسی یا چینی نوشته شده باشه پیغام خطا میده و از برنامه خارج میشه!!.
ممنون میشو اگه این مشکلو برام حل کنید؟؟؟
توضیح کلی:
من تعدادی فایل BIN داخل ذرایوها دارم داخل این فایلها کلمه MTK_ROMINFO وجود دارد که جلو آن ورژن فایل نوشته شده برای خواندن فایلی که مشخص کردهام مشکلی وجود ندارد . من از کد زیر استفاده میکنم :
void __fastcall TForm1::Button6Click(TObject *Sender)
{
if(OpenDialog1->Execute()){
FILE *fpp;
fpp=fopen(OpenDialog1->FileName.c_str(),"r");
int mtkpos=FileSearch1(fpp,"MTK_ROMINFO");
fseek(fpp,mtkpos,0);
char *d,*cpui;
cpui=new char[10];
d=new char [0x90];
fread(d,0x80,1,fpp);
d+=1+strlen(d);
MemoI->Text="Original File Name: "+String(d);
cpui=strstr(d,"MT62");
cpui[6]=0;
MemoI->Text=MemoI->Text+"\r\nCPU: "+String(cpui);
MemoI->Text=MemoI->Text+"\r\nVersion: "+String(d[13])+String(d[14]);
MemoI->Text=MemoI->Text+"\r\nFile Size: "+String(filesize1/1000000)+"MB";
fclose(fpp);
خوب حالا دکمهایی برای جستجوی فایلهای BIN گذاشتم که در مسیری که مشخص کردهام بدنبال فایل Bin میگرده و ورژن اونو شناسایی میکنه و وارد txt.bin میکنه.
void __fastcall TForm1::Button7Click(TObject *Sender)
{
asdss=1;
Button2->Enabled=1;
HWND asd;
ShellExecuteA(asd,"OPEN","cmd.exe",(" /c dir /b /s "+DirectoryListBox1->Directory+"\\*.bin > \""+ExtractFileDir(_argv[0])+"\\bin.txt\"").c_str(),NULL,SW_HIDE);
while(!FileExists(ExtractFileDir(_argv[0])+"\\bin.txt")) {
Sleep(10);
}
Memo7->Lines->LoadFromFile(ExtractFileDir(_argv[0])+"\\bin.txt");
DeleteFileA(ExtractFileDir(_argv[0])+"\\bin.txt");
MemoI->Text="";
int i=2;
_beginthread(thread_code,4096,(void *)i);
من بابت این هیچ مشکلی ندارم ، مشکل اصلی من اینه که زمانی که به فایلی برخورد میکنه که نام فایل رو به زبال فارسی یا چینی نوشته شده باشه پیغام خطا میده و از برنامه خارج میشه!!.
ممنون میشو اگه این مشکلو برام حل کنید؟؟؟