]بيدا كردنى فايلهاى jpg

ali guard

Member
سلام دوستا ن ميخواهم يك سرج دروست كنم تمامى فايلها ى jpg در يكرايو d:\ نيشون بدة ولى در يك ايديت باكس بتوا نم نامى jpg مورد نظر مون بنويسم وقتى نويشتم فقت ان نيشون بدة در ليست باكس نيشون بدة ولى براى ميسال اطر نويشتم a انها كة اولشون a هست نيشون بدة اكر نويشتم al انها كة اولشونal هست نيشون بدة لطفا يك ميسال بزرن ممنون
 

sharktech

کاربر فعال
PHP:
** Show BrowseForFolder dialog
BrowseForFolder("Select folder with images:","")
** Assign selected directory to a variable
imgdir$=CBK_OpenDir
If (imgdir$ <> '') Then
  ** Search jpg and bmp files in selected directory
  SearchForFiles("imgdir$","*.jpg")
  ** Turn OFF displaying Time column and IDTags loading (speed up the loading process)
  ListBoxParam("ListBox","TIMES=OFF")
  ListBoxParam("ListBox","IDTAGS=OFF")
  ** Reset ListBox contents
  ListBoxAddItem("ListBox","RESET")
  ** Fill ListBox with found files
  ListBoxAddItem("ListBox","<List>")
  ** Finally, select the first item in ListBox
  ListBoxSelectItem("ListBox","1")
End
 
آخرین ویرایش:

ali guard

Member
ممنون از لطف شوما ولى ان نميشة
من ميخواهم با جاى دكمةى سرج بتوانم در يك ايدت باكس نا م بنويسم با با ترتيب نام ها برامو نبيارد لطفا نمونة بزرن
 

sharktech

کاربر فعال
خوب این یه نمونه بود تا با نحوه کار آشنا بشین, شما اگه اسکریپت نویسی mmb رو بلد باشین به راحتی میتونین این کد رو تغییر بدین و به اون صورت که نیازتون هست درش بیارین.

برای راحتی کارتون شما باید این قسمت از کد رو تغییر بدین و اون فرمت رو از طریق ادیت باکس دریافت کنین.

PHP:
SearchForFiles("imgdir$","*.jpg")
 

ali guard

Member
اينو ميدونم منظورم انهست با نويشتن نام فايل فايلها نيشون بدة مسلن اطر نويشتم b هر فايلى اولش b هست نيشون بدة اكر نويشتم ba انها نيشون بدة كة دو حر ف اولش ba هست
 

evil_gates

اين نيز بگذرد ...
دوست عزيز

فكر ميكنم براي اينكار اول بايد نتيجه جستجو براي تمام فايلهاي بدست اومده با فرمت jpg رو تو يك فايل متني خط به به خط بريزيد.

بعد به كمك يك حلقه و توابع رشته اي هر حرفي كه درج ميشه رو تو اين فايل جستجو كنيد و اگه وجود داشت اون رو تو ليست باكس برگردونيد.
 

ali guard

Member
دوست عزيز

فكر ميكنم براي اينكار اول بايد نتيجه جستجو براي تمام فايلهاي بدست اومده با فرمت jpg رو تو يك فايل متني خط به به خط بريزيد.

بعد به كمك يك حلقه و توابع رشته اي هر حرفي كه درج ميشه رو تو اين فايل جستجو كنيد و اگه وجود داشت اون رو تو ليست باكس برگردونيد.


سلام ممنون از رهنمايتون ميتوانيد يك نمونة برامون بسازيد البتة ميخواهم باد از ان در لينست باكسش نيشون داد با كليك رزى ان فايل باز بشة
 

evil_gates

اين نيز بگذرد ...
دوست عزيز
همونطور كه گفتم شما احتياج داريد كه نتايج جستجو رو خط به خط تو يك فايل متني بريزيد و فايل رو كنار برنامه قرار بديد.
بعد به كمك يك اسكريپت يك شي EditBox و يك شي ListBox ، عبارتي كه تو EditBox نوشته ميشه رو خط به خط تو فايل متني جستجو كنيد. در صورتي كه نتيجه جستجو مثبت بود ميتونيد نتيجه رو تو ListBox برگردونيد.

اين كد رو تو اسكريپت مورد نظر بنويسيد و نام اسكريپت رو تو EditBox قرار بديد تا هربار كه كاراكتري تو EditBox درج ميشه اين كد اجرا بشه و نتيجه تو ListBox شما نمايش داده بشه.

کد:
path$='<SrcDir>\file.txt'
ListBoxDeleteItem("ListBox","-1")
For i=1 To NOL(path$)
  str$=StrFromFile(path$,i,1)
  x=POS(EditBox$,str$)
  If (x=1) Then
    ListBoxAddItem("ListBox","str$")
  End
Next i
 

ali guard

Member
دوست عزيز
همونطور كه گفتم شما احتياج داريد كه نتايج جستجو رو خط به خط تو يك فايل متني بريزيد و فايل رو كنار برنامه قرار بديد.
بعد به كمك يك اسكريپت يك شي EditBox و يك شي ListBox ، عبارتي كه تو EditBox نوشته ميشه رو خط به خط تو فايل متني جستجو كنيد. در صورتي كه نتيجه جستجو مثبت بود ميتونيد نتيجه رو تو ListBox برگردونيد.

اين كد رو تو اسكريپت مورد نظر بنويسيد و نام اسكريپت رو تو EditBox قرار بديد تا هربار كه كاراكتري تو EditBox درج ميشه اين كد اجرا بشه و نتيجه تو ListBox شما نمايش داده بشه.

کد:
path$='<SrcDir>\file.txt'
ListBoxDeleteItem("ListBox","-1")
For i=1 To NOL(path$)
  str$=StrFromFile(path$,i,1)
  x=POS(EditBox$,str$)
  If (x=1) Then
    ListBoxAddItem("ListBox","str$")
  End
Next i

سلام دستت درد نك من همين ميخواهم بس ج جور بتوانم نام برنامة هاى بيدا شودة در فايل تيكست زخيرة كنم باد فايلى مورد نظر با دوبار كليك در ليست باكس اجرا كنم
لطف كنيد يك نمونةى ماكل براى فايل ها jpg درايو D:\ دروست كنيد با همين نمونةى خودت ولى فايل بيداشودة در ليست باكس بتوانم با دووبار كليك اجرا كنم باز هم ممنون
 

evil_gates

اين نيز بگذرد ...
دوست عزيز

اول اينكه من از الگوريتم جستجو شما اطلاعي ندارم. اما به هر حال جستجو شما نتيجه اي داره. پيشنهاد ميكنم مقادير حاصل از جستجو رو تو يك متغير رشته اي بريزيد و مقدار متغير رشته اي رو با StrToFile به فايل متني كنار برنامه ارسال كنيد.
کد:
path$='<SrcDir>\file.txt'
temp=StrToFile(path$,Search$,TRUE,TRUE)
در صورتي كه نتيجه جستجو شما نام فايل باشه. پيشنهاد ميكنم نام فايل رو به همراه يك كاراكتر جداساز مثل# يا | با مسيري كه جستجو شده رو تو يك متغير بريزيد مثلا:
کد:
Search$='filename.jpg' + '#' + 'x:\myfolder\subfolder\filename.jpg'+'#'

حالا به كمك اين كد ميتونيد خط به خط فايل متني رو بخونيد و نتيجه رو ليست باكس برگردونيد
کد:
path$='<SrcDir>\file.txt'
ListBoxDeleteItem("ListBox","-1")
For i=1 To NOL(path$)
  str$=StrFromFile(path$,i,1)
  x=POS(EditBox$,str$)
  If (x=1) Then
str$=GetArrayItem(str$,'#',1)
    ListBoxAddItem("ListBox","str$")
  End
Next i

براي اينكه با دابل كليك كردن روي آيتم مورد نظر تو ليست باكس فايل اجرا بشه پيشنهاد ميكنم از اين كد استفاده كنيد.

کد:
ListBoxGetSelectedItems("ListBox","SelItems$,SelItemsNum$,#,SelNumItems")
len=LEN(SelItems$)-1
SelItems$=StrCopy(SelItems$,1,len)
path$='<SrcDir>\file.txt'
For i=1 To NOL(path$)
  str$=StrFromFile(path$,i,1)
  x=POS(SelItems$,str$)
  If (x=1) Then
    str$=GetArrayItem(str$,'#',2)
    Run("str$","")
  End
Next i
 

ali guard

Member
دوست عزيز

اول اينكه من از الگوريتم جستجو شما اطلاعي ندارم. اما به هر حال جستجو شما نتيجه اي داره. پيشنهاد ميكنم مقادير حاصل از جستجو رو تو يك متغير رشته اي بريزيد و مقدار متغير رشته اي رو با strtofile به فايل متني كنار برنامه ارسال كنيد.
کد:
path$='<srcdir>\file.txt'
temp=strtofile(path$,search$,true,true)
در صورتي كه نتيجه جستجو شما نام فايل باشه. پيشنهاد ميكنم نام فايل رو به همراه يك كاراكتر جداساز مثل# يا | با مسيري كه جستجو شده رو تو يك متغير بريزيد مثلا:
کد:
search$='filename.jpg' + '#' + 'x:\myfolder\subfolder\filename.jpg'+'#'

حالا به كمك اين كد ميتونيد خط به خط فايل متني رو بخونيد و نتيجه رو ليست باكس برگردونيد
کد:
path$='<srcdir>\file.txt'
listboxdeleteitem("listbox","-1")
for i=1 to nol(path$)
  str$=strfromfile(path$,i,1)
  x=pos(editbox$,str$)
  if (x=1) then
str$=getarrayitem(str$,'#',1)
    listboxadditem("listbox","str$")
  end
next i

براي اينكه با دابل كليك كردن روي آيتم مورد نظر تو ليست باكس فايل اجرا بشه پيشنهاد ميكنم از اين كد استفاده كنيد.

کد:
listboxgetselecteditems("listbox","selitems$,selitemsnum$,#,selnumitems")
len=len(selitems$)-1
selitems$=strcopy(selitems$,1,len)
path$='<srcdir>\file.txt'
for i=1 to nol(path$)
  str$=strfromfile(path$,i,1)
  x=pos(selitems$,str$)
  if (x=1) then
    str$=getarrayitem(str$,'#',2)
    run("str$","")
  end
next i

سلام خيلة ممون از رهنمايتون ولى من نتونستم كدى شوما با سرجى كة دارم اضافة كنم اين سرج من هست لتفا برامون دروست كند وقتى نام فايل مينويسم در ليست باكس ادرسش نيشون ميدة لطف كنيد ادرس هم برداريد تا تنها نام فايلى بيدا شودة نيشون بدة باد با كليك كردن باروى نام فايل بيدا شودة انرا باز بشة خيلى زرور دارم ممنون
 

پیوست ها

  • find file jpg.rar
    1.7 کیلوبایت · بازدیدها: 10

evil_gates

اين نيز بگذرد ...
دوست عزیز

متاسفانه فعلا دسترسی ندارم مثال شما رو ببینم. اما کدی که تو پست قبلی پیشنهاد کردم فقط نام فایل رو تو لیست باکس بر میگردونه.

شما نام فایل و آدرسش رو تو یک خط به فایل متنی کنار برنامه ارسال میکنید. البته این نکته رو رعایت کنید که بین نام و آدرس از یک کاراکتر جداساز استفاده کنید. من اینجا از کاراکتر # استفاده کردم.

بعد طبق کدی که نوشتم از هر خطی که از فایل متنی شما بر میگرده فقط قسمت اول یعنی نام فایل به لیست باکس اضافه میشه.

فعلا تو سفرم. اجازه بدید تو اولین فرصت اگه نتونستید مشکلتون رو حل کنید مثالتون رو میبینم.

موفق باشید
 

ali guard

Member
خيلى ممنونم در اولين فرست برامون كامل كنيد هنوز منتظر هستم موافق باشيد
 

evil_gates

اين نيز بگذرد ...
دوست عزيز

برنامتون رو ديدم. پيشنهاد ميكنم تو كليد TextBTN1 جايي كه شرط test<>0 رو نوشتيد.
کد:
If (test<>0) Then
   ListBoxAddItem("DetectedFiles","STRING:ArrayItem$")
   DetectedFiles=DetectedFiles+1
End

يعني جايي كه نتيجه جستجو تو ليست باكس DetectedFiles برگردونده ميشه.

به جاي دستورات داخل اون شرط اين كد رو بنويسيد.
کد:
itm$=ExtractName(ArrayItem$)+ExtractExt(ArrayItem$)
result$=ExtractName(ArrayItem$)+ExtractExt(ArrayItem$)+'#'+ ArrayItem$+'#'
path$='<SrcDir>\result.txt'
retval=StrToFile(path$,result$,TRUE,TRUE)
ListBoxAddItem("DetectedFiles","itm$")
DetectedFiles=DetectedFiles+1

در اينصورت فقط نام فايلي كه تو جستجو پيدا شده تو ليست باكس شما ثبت ميشه و نام فايل و آدرسش تو فايل متني كه كنار برنامه قرار داره ذخيره ميشه.

شما ميتونيد در آغاز عمليات جستجو جديد اين فايل متني رو پاك كنيد تا محتويات جستجو قبلي از بين بره.

بعد از اينكه كد بالا رو تو اون شرط نوشتيد اين كد رو هم تو قسمت اسكريپت نويسي ليست باكس DetectedFiles بنويسيد تا هربار كه كاربر رو آيتمي در ليست باكس دابل كليك ميكنه از فايل متني كنار برنامه آدرس فايل مربوطه فراخواني و فايل اجرا بشه.

کد:
ListBoxGetSelectedItems("DetectedFiles","selitems$,selitemsnum$,#,selnumitems")
len=LEN(selitems$)-1
selitems$=StrCopy(selitems$,1,len)
path$='<SrcDir>\result.txt'
For i=1 To NOL(path$)
  str$=StrFromFile(path$,i,1)
  x=POS(selitems$,str$)
  If (x=1) Then
    str$=GetArrayItem(str$,'#',2)
    Run("str$","")
    Return()
  End
Next i

يك نكته رو يكبار ديگه تاكيد ميكنم دوست عزيز حتما فايل result.txt كه كنار برنامه قرار داره رو در آغاز هر عمليات جستجو يكبار پاك كنيد تا محتويات جستجو قبلي ديگه تو اون فايل وجود نداشته باشه.

براي پاك كردنش هم ميتونيد از پلاگين MicrobeFilesAndFolder استفاده كنيد.
 

ali guard

Member
دوست عزيز

برنامتون رو ديدم. پيشنهاد ميكنم تو كليد TextBTN1 جايي كه شرط test<>0 رو نوشتيد.
کد:
If (test<>0) Then
   ListBoxAddItem("DetectedFiles","STRING:ArrayItem$")
   DetectedFiles=DetectedFiles+1
End

يعني جايي كه نتيجه جستجو تو ليست باكس DetectedFiles برگردونده ميشه.

به جاي دستورات داخل اون شرط اين كد رو بنويسيد.
کد:
itm$=ExtractName(ArrayItem$)+ExtractExt(ArrayItem$)
result$=ExtractName(ArrayItem$)+ExtractExt(ArrayItem$)+'#'+ ArrayItem$+'#'
path$='<SrcDir>\result.txt'
retval=StrToFile(path$,result$,TRUE,TRUE)
ListBoxAddItem("DetectedFiles","itm$")
DetectedFiles=DetectedFiles+1

در اينصورت فقط نام فايلي كه تو جستجو پيدا شده تو ليست باكس شما ثبت ميشه و نام فايل و آدرسش تو فايل متني كه كنار برنامه قرار داره ذخيره ميشه.

شما ميتونيد در آغاز عمليات جستجو جديد اين فايل متني رو پاك كنيد تا محتويات جستجو قبلي از بين بره.

بعد از اينكه كد بالا رو تو اون شرط نوشتيد اين كد رو هم تو قسمت اسكريپت نويسي ليست باكس DetectedFiles بنويسيد تا هربار كه كاربر رو آيتمي در ليست باكس دابل كليك ميكنه از فايل متني كنار برنامه آدرس فايل مربوطه فراخواني و فايل اجرا بشه.

کد:
ListBoxGetSelectedItems("DetectedFiles","selitems$,selitemsnum$,#,selnumitems")
len=LEN(selitems$)-1
selitems$=StrCopy(selitems$,1,len)
path$='<SrcDir>\result.txt'
For i=1 To NOL(path$)
  str$=StrFromFile(path$,i,1)
  x=POS(selitems$,str$)
  If (x=1) Then
    str$=GetArrayItem(str$,'#',2)
    Run("str$","")
    Return()
  End
Next i

يك نكته رو يكبار ديگه تاكيد ميكنم دوست عزيز حتما فايل result.txt كه كنار برنامه قرار داره رو در آغاز هر عمليات جستجو يكبار پاك كنيد تا محتويات جستجو قبلي ديگه تو اون فايل وجود نداشته باشه.

براي پاك كردنش هم ميتونيد از پلاگين MicrobeFilesAndFolder استفاده كنيد.

سلام حيلى ممنون از كمكتون با اون شكل شوما كفتيد درهاورد م ولى يك مشكيل دارد با جاى ان فايل بيدا شودة
در ليست باكس نيشون بدة ميرة فايل با ليست باك باز ميكنة
مسلن ما يك فايل با نامى aaa.jpg سرج كردم بيدا شوداست با جاى ان در ليست باكس نامشون نيشون بدة باد من كليك كنم اجرا بشة خود فايل با ليست باكس باز ميكند فايلى كة من تغير دادم ببينيد بيشتر متوجو ميشيد مشكيل كجا هست
 

پیوست ها

  • find file jpg. edit mbd.rar
    1.8 کیلوبایت · بازدیدها: 15

evil_gates

اين نيز بگذرد ...
دوست عزيز

متاسفانه متوجه منظورتون نشدم. با كدي كه من پيشنهاد كردم شما عبارتي رو جستجو ميكنيد و نتيجش تو ليست باكس بر ميگرده. مثلا شما ميزنيد aaa. برنامه هر فايل jpg كه تو نامش aaa وجود داشته باشه رو پيدا ميكنه و تو ليست باكس نمايش ميده.

بعد با دابل كليك كردن رو نام فايل مورد نظر در ليست باكس خود فايل اجرا ميشه.

منظور شما چيز ديگه غير از اين بود؟
 

ali guard

Member
دوست عزيز

متاسفانه متوجه منظورتون نشدم. با كدي كه من پيشنهاد كردم شما عبارتي رو جستجو ميكنيد و نتيجش تو ليست باكس بر ميگرده. مثلا شما ميزنيد aaa. برنامه هر فايل jpg كه تو نامش aaa وجود داشته باشه رو پيدا ميكنه و تو ليست باكس نمايش ميده.

بعد با دابل كليك كردن رو نام فايل مورد نظر در ليست باكس خود فايل اجرا ميشه.

منظور شما چيز ديگه غير از اين بود؟
سلام
براى ان منظورم دقيق بدونيد فايل دانلود كنيد

منظورم ان هست روش شوما كفتيد انجام دادم هنوز دروست نشودست وقتى دومبالى نامى فايلى سرج ميكنم كة بيدا ميشة با جاى ان كة در ليست باكس نيشون بدة يك نويشتةى نا معلوم نيشون ميدة كة قابل خوندن نيست

ميسلى ان شوما بيايد يك عكس با نوت باد باز كنيد ان جور فايل بيدا شودة با ليس باكس ميفرستة در نتجة يك نويشتة نامعلوم نيشون ميدة
 

evil_gates

اين نيز بگذرد ...
دوست من

مشكل شما در جستجو نيست. مشكل شما در فونتي هست كه استفاده شده. شما بايد هم در اديت باكس و هم در ليست باكس يك فونت فارسي با اسكريپت Arabic انتخاب كنيد تا نوشته هاتون خوانا باشه.

من يكبار ديگه برنامه شما رو دانلود و تست كردم. تنها مشكل هموني بود كه عرض كردم. وقتي شما عبارتهاي انگليسي رو جستجو ميكنيد نتيجه به درستي بدست مياد.
 

ali guard

Member
دوست من

مشكل شما در جستجو نيست. مشكل شما در فونتي هست كه استفاده شده. شما بايد هم در اديت باكس و هم در ليست باكس يك فونت فارسي با اسكريپت Arabic انتخاب كنيد تا نوشته هاتون خوانا باشه.

من يكبار ديگه برنامه شما رو دانلود و تست كردم. تنها مشكل هموني بود كه عرض كردم. وقتي شما عبارتهاي انگليسي رو جستجو ميكنيد نتيجه به درستي بدست مياد.

سلام

اومادم يك فايل تيكست با aaaa.jpg تغير نام دادم با د اوردم كنار برنامة با عبارت a جستجو كردم با جاى ان كةى بياد نامش در ليس باكس بنويسد اوماد محتويات فايل aaaa.jpg در ليست باكس نيشون داد

يامن من كد هاى شوما غلت ايستفادة كردم يا همين هست اطر شوما تيست كرديد دروست هست لطفا يك نمونة با خود بيلدر ابلود كنيد خيلى ممنون راستى ما خيلى مزاحيم شوديم خيلى لازم دارم باز هم ممنون
 

evil_gates

اين نيز بگذرد ...
دوست عزيز
تو خطي كه اين كد رو نوشتيد:
کد:
itm$=ExtractName(ArrayItem$)+ExtractExt(ArrayItem$)

يعني خط اول داخل شرط

قسمت دومش يعني ExtractExt رو برداريد. در واقع اون خط رو به اين صورت بنويسيد:
کد:
itm$=ExtractName(ArrayItem$)
مشكلتون حل خواهد شد
 

جدیدترین ارسال ها

بالا