View Full Version : یک مشکل عجیب
سیروس مقصودی
دوشنبه 11 اردیبهشت 1385, 07:42 صبح
با سلام
من یک مشکلی که پیدا کرده ام این است وقتی یکسری دستورات را مینویسم مثلا در یک پروسیجر یکسری دستورات را مینویسم و هنگام اجرای برنامه یک سطر و یا دو سطر از پروسیجر مورد نظر اجرا نمیشود و وقتی برنامه را Trace میکنم میبینم که در سمت چپ خطوطی که اجرا نمیشوند علامت دایره کوچک آبی رنگ وجود ندارد و خطوطی که اجرا میشوند در سمت چپ آنها دایره کوچک آبی رنگ وجود دارد .(لازم به توضیح است که اینرا میدانم Begin یا end از جمله دستوراتی است که علامت دایره در آنها وجود ندارد) لطفا مرا راهنمائی نمائید واقعا خیلی به مشکل برخورده ام .
با تشکر
hr110
دوشنبه 11 اردیبهشت 1385, 10:02 صبح
کمی در مورد کدت بیشتر دقت کن، خطوطی که علامت "." را ندارند وجود و عدم وجودشون تاثیری نخواهد داشت.
dkhatibi
دوشنبه 11 اردیبهشت 1385, 11:25 صبح
امکان اجرا نشدن این دستورات وجود دارند زیرا اولی بعد از Else به کار رفته و وقتی قسمت If اجرا می گردد طبیعی است که Else اجرا نمیگردد
برای دومی نیز چون شرط درون If درست نمی باشد اجرا نمی شود
با Trace و مشاهده ی متغیره ها مطمئنا به اشتباه خود پی خواهید برد.
SH.Daneshvar
دوشنبه 11 اردیبهشت 1385, 11:37 صبح
یکی از علتهای اینجور اتفاقات چیزی هست در Compiler به نام Optimize
یعنی Compiler مبینه شما از این قسمت استفاده نمیکنید پس اون رو اضافی مبینه و حذفش میکنه.
یا مثلا شما یه شرط نوستین ولی Compiler مبینی این شرط همیشه و در همه حالت مقدارش True هست پس اون شرط رو با True عوض میکنه.
سیروس مقصودی
دوشنبه 11 اردیبهشت 1385, 12:13 عصر
با سلام
با تشکر از جوابهایی که دادید مثالی که زدم چون داخل آن دستور If بود مشکلم را نتوانست مطرح کند . لطفا به مثال زیر توجه نمائید و خواهشمندم که مرا راهنمائی کنید .
با تشکر ...
SH.Daneshvar
دوشنبه 11 اردیبهشت 1385, 17:50 عصر
مسله جالبی هست
من پیشنهاد میکن به کد Assembly اون نگاهی بیندازی به صورت دقیق.
ببین داره چیکار میکنه.
Arash_j13
سه شنبه 12 اردیبهشت 1385, 04:47 صبح
خط اول برای این اجرا نمی شه دقیقا خط بعد بهش دوباره مقدار false دادید و دلفی برای بهینه سازی
اون خط رو کامپایل نمی کنه خط بع هم به دلیل اینکه هنوز مقدار true هست و دوباره true کردین کامپایل نمی شه
اگه می خواد کامپایل بشه باید بهینه سازی دلفی رو غیر فعال کنید قبل از شروع پروسیجر بنویسید
{$O-}
وبعد از اتمامش بنویسید
{$O+}
gbg
سه شنبه 12 اردیبهشت 1385, 06:44 صبح
خطوط شما توسط کامپایلر Optimize ( بهینه ) شده.
بهتره برای باز کردن و بستن query یا table از متدهای open و close استفاده کنی.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.