PDA

View Full Version : سوال: تبدیل حلقه ها به یکدیگر در vbs



baharan.it85@gmail.com
جمعه 20 بهمن 1391, 23:46 عصر
سلام به دوستان
من میخوام حلقه هایی که در برنامه وجود داره رو به if تبدیل کنم. ولی نمیدونم بعضی چیزارو چجوری تبدیل کنم
مثلا:
For each f1 in fc
Set s = Fso.GetExtensionName(f1.name)
If f1.path <> HostPath then
If s = "htm" or s = "html" then fso.CopyFile HostPath, f1.path
End If
Next
الان به جای for باید چجوری if بذارم؟

Hashemvp
شنبه 21 بهمن 1391, 06:57 صبح
سلام
دوست عزیز میدونی فرق حلقه با if چیه؟

حلقه هم ی نوع دستور شرطی تقریبا تفاوتش در اینکه اینقدر دستورات مربوط ب خودش رو تکرار میکنه تا به اون شرط برسه
ولی if فقط یک بار بررسی میکنه و اگر طبق اون شرط بود دستورات رو انجام میده
بهمین خاطر شما هیچ وقت نمیتونی حلقه رو به if تبدیل کنی
مگر اینکه بخوای از تایمر استفاده کنی!!!!!!

موفق باشی

SlowCode
شنبه 21 بهمن 1391, 08:20 صبح
سلام
میتونی واسه تبدیل کردن حلقه به if از دستور goto کمک بگیری ولی...
واقعا چرا این کار رو میکنی؟:متفکر:
تو این موردی هم که خواستید فکر نکنم بشه نوشت اگر هم بشه خیلی سخته و طولانیه.

baharan.it85@gmail.com
شنبه 21 بهمن 1391, 10:42 صبح
سلام
مرسی از راهنماییتون وای قابل تبدیل هستن.
یک سری کد دارم که میخوام همه رو به یک شکل در بیارم و براشون یک گراف بکشم. واسه همین باید تبدیل بشن :)
در هر صورت متشکر از راهنمایی

مهرداد صفا
دوشنبه 23 بهمن 1391, 19:32 عصر
سلام به دوستان
من میخوام حلقه هایی که در برنامه وجود داره رو به if تبدیل کنم. ولی نمیدونم بعضی چیزارو چجوری تبدیل کنم
مثلا:
For each f1 in fc
Set s = Fso.GetExtensionName(f1.name)
If f1.path <> HostPath then
If s = "htm" or s = "html" then fso.CopyFile HostPath, f1.path
End If
Next
الان به جای for باید چجوری if بذارم؟


با سلام
البته Scripting.Files تقریبا یک استثناست ولی در کل تقریبا باید کدی شبیه به این را داشته باشیم:


start_for:
Set s = Fso.GetExtensionName(fc(i).name)
If fc(i).path <> HostPath then
If s = "htm" or s = "html" then fso.CopyFile HostPath, fc(i).path
End If
i=i+1
'if i<=ubound(fc) then goto start_for
'or
if i<=fc.Count then goto start_for