PDA

View Full Version : مشکل اساسی در اجرای کد



javaneemroz
یک شنبه 31 شهریور 1392, 11:04 صبح
سلام
من یه سری کارا رو میخوام با یک کلیک انجام بدم ولی تعداد خطوطم زیاد شده و کلمات رفته بالا و مثه اینکه محدودیت وجود داره برای اجرای دستورات با یک کلیک طوری که توی تصویر زیر میبینید ازم خطا گرفته.برای رفع این مشکل باید چیکار کنم؟!!!!


آیا راهی هست که بیرون از کلیک کدها رو بنویسم و با کلیک فقط اجراشون کنم؟مثلا بگم برو خط فلان و بقیه دستور رو ازون خط بخون

rubiks.kde
یک شنبه 31 شهریور 1392, 12:58 عصر
سلام
این به خاطر این هست که ماشین مجازی برای آبجکت یه مقدار مشخص حافظه تخصیص میده.
کدهایی که داخل onClick نوشتی رو به صورت چندین تابع دربیار و بعد استفاده کن

javaneemroz
یک شنبه 31 شهریور 1392, 13:32 عصر
سلام
این به خاطر این هست که ماشین مجازی برای آبجکت یه مقدار مشخص حافظه تخصیص میده.
کدهایی که داخل onClick نوشتی رو به صورت چندین تابع دربیار و بعد استفاده کن

متشکر از شما
مشکل حل شد
در مورد تعداد تابع این مشکل وجود نداره؟

rubiks.kde
یک شنبه 31 شهریور 1392, 13:36 عصر
نه اون طوری هم مشکل رو برطرف میشه.

ولی بهتر بگید که چطوری مشکل رو حل کردید که بقیه هم به مشکل نخورن.

javaneemroz
یک شنبه 31 شهریور 1392, 13:50 عصر
نه اون طوری هم مشکل رو برطرف میشه.

ولی بهتر بگید که چطوری مشکل رو حل کردید که بقیه هم به مشکل نخورن.

در توضیح بگم که یه دیتا بیس داشتم و با توجه به اطلاعات ورودی کاربر و با توجه به شرطها و فرمولها میومد داده های رو با هم مقایسه میکرد که من همه رو توی یدونه دستور شرطی نوشته بودم و موقع لود، تمام دیتابیس تو همون شرط قرار میگرفت که میشد حدود 3000 خط و بیش از 66000 کد که میگفت نمیشه این حجم رو لود کرد و ارور بالا رو هم میداد.منم با توجه به گفته شما دیتا بیس رو چند تکه کردم و هر کدوم رو به صورت جدا داخل یه دستور شرطی باز قرار دادم(بدون else ) که همون کار قبل رو انجام میده ولی با چند شرط پشت سر هم و دیگه ارور بالا و ارور حجم بالا رو نمیده

javaneemroz
چهارشنبه 03 مهر 1392, 09:57 صبح
سلام
الان که به شرطها اضافه کردم متاسفانه باز هم اون ارور رو میدهالبته دیگه ارور دیتا بیس رو نمیده و فقط مشکل کلیک مونده البته با اضافه کردن تعداد بیشتری شرط.برای این مشکل چکار باید کرد؟:قهقهه:

برای توضیح بیشتر حدود 1800 تا شرط توی کلیک قرار دادم.چجوری میتونم شرط هارو از داخل کلیک دربیارم ولی با کلیک اجراشون کنم تا این مشکل پیش نیاد؟

rubiks.kde
چهارشنبه 03 مهر 1392, 11:48 صبح
این همه شرط ؟؟؟؟:اشتباه:

والا تنها راهش همونه که قبلا گفتم یه کار بکنید شرطها تو در تو بشن نه اینکه همه توی یه شرط باشن

javaneemroz
چهارشنبه 03 مهر 1392, 11:54 صبح
نمیشه مثه بیسیک کدهارو جای دیگه بنویسم و بگم برو فلان خط بقیشو بخون؟آخه شرطها ربطی بهم ندارن اگر بخوام تودرتوش کنم جواب نمیده.مگه اینکه منظورتون از تو در تو چیز دیگه ای باشه یکم لطفا توضیح بدید و اینکه چجوری بگم بره خط فلان

در ضمن شرطهام توی یه شرط نیستن و اینطورین:

if(condition){
}elseif(condition){
}elseif...
.
.
.
if(condition){
}elseif(condition){
}elseif...
.
.
.
if(condition){
}elseif(condition){
}elseif...


و اینطوری هستن و همه توی یک شرط نیست و جدا هستند از هم.ولی همه اینها با یک کلیک اجرا میشن

rubiks.kde
چهارشنبه 03 مهر 1392, 12:05 عصر
خوب اگه شرطها به هم ربط ندارن هر دستش رو توی یه تابع بنویسید

javaneemroz
چهارشنبه 03 مهر 1392, 12:09 عصر
چجوری؟من شرط ها رو از هم جدا کردم ولی در مورد تابع جدا باید چکار کنم؟مثلا دو تا شرط رو باید چکار کنم که اینجوری نشه؟

javaneemroz
چهارشنبه 03 مهر 1392, 15:20 عصر
ممنون میشم دوستان زودتر راهنمائی کنن

spiderman200700
چهارشنبه 03 مهر 1392, 16:33 عصر
شما کل کارهایی رو که میخوای توی رویداد کلیک انجام بدی رو به بخش های مختلفی تقسیم کن و هر بخش رو توی یه متد بنویس(یا اگه میشه توی یه کلاس بنویس). و توی رویداد کلیک فقط متد ها رو فراخوانی کن. اینجوری کد هات هر چقدر هم زیاد بشه مشکلی پیش نمیاد.
البته توی پرانتز بگم که استاندارد تعداد خطوط هر متد 10 خط هست، که ما معمولا اینو رعایت نمیکنیم.

javaneemroz
چهارشنبه 03 مهر 1392, 16:42 عصر
شما کل کارهایی رو که میخوای توی رویداد کلیک انجام بدی رو به بخش های مختلفی تقسیم کن و هر بخش رو توی یه متد بنویس(یا اگه میشه توی یه کلاس بنویس). و توی رویداد کلیک فقط متد ها رو فراخوانی کن. اینجوری کد هات هر چقدر هم زیاد بشه مشکلی پیش نمیاد.
البته توی پرانتز بگم که استاندارد تعداد خطوط هر متد 10 خط هست، که ما معمولا اینو رعایت نمیکنیم.

متشکر از راهنمائیتون.اگر میشه درمورد فراخوانی از کلاس یا متدها توضیح بدید؟من تازه شروع کردم جاوا رو تا راه بیافتم یکم راهنمائی شمارو میخوام.اگر یه مثال با کد در مورد فراخوانی از کلاسها و یا متدها بگید لطف کردید
ممنون

spiderman200700
چهارشنبه 03 مهر 1392, 18:34 عصر
خواهش میکنم.
در اینجا توضیح دادم. میتونید ببینید:
http://app2app.ir/فیلم-آموزشی-متدها-در-جاوا (http://app2app.ir/%D9%81%DB%8C%D9%84%D9%85-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C-%D9%85%D8%AA%D8%AF%D9%87%D8%A7-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7/)
http://app2app.ir/فیلم-آموزشی-کلاس-ها-و-اشیا-در-جاوا (http://app2app.ir/%D9%81%DB%8C%D9%84%D9%85-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C-%DA%A9%D9%84%D8%A7%D8%B3-%D9%87%D8%A7-%D9%88-%D8%A7%D8%B4%DB%8C%D8%A7-%D8%AF%D8%B1-%D8%AC%D8%A7%D9%88%D8%A7/)

javaneemroz
چهارشنبه 03 مهر 1392, 21:44 عصر
واقعا از دوستان تشکر میکنم که کمک کردن.ولی زیاد با کدا ور رفتم نتونستم جورش کنم.نمیدونم کجای کار میلنگه.میخوام بدونم الان توی جاوا میشه من این شرط ها رو یه جائی خارج از کلیک بزارمشون و فقط توی کلیک بگم برو فلان جا و کدهای اونجا رو بخون؟فقط میخوام این شرطها از توی کلیک دربیان که ارور حجم رو نده و با کلیک بره اونجائی که کدهای شرط هست و از اونجا شرطهامو اجرا کنه؟چون راستشو بخواین ویدئو های دوست عزیزمون رو هم نگاه کردم ولی به نتیجه ای نرسیدم.فهمیدم که ایشون چی گفتن ولی الان موندم شرطهامو چجوری بزارم توی یه کلاس دیگه چون چند تا متغیر هم توی شرطم دارم که باید همراه شرط باشن

javaneemroz
چهارشنبه 03 مهر 1392, 21:58 عصر
یک کار دیگه هم به نظرم بشه کرد نظر شما چیه؟اینکه توی صفحه اول اطلاعات کاربر رو بگیره و وقتی که میخواد بره صفحه دوم ،توی استارت صفحه دوم این شرط ها اجرا بشه و اطلاعات مقایسه بشه .اینجوری کلیکی هم صورت نمیگیره که بخواد ارور بده نظرتون چی هست؟اینکه اول پرسیدم دلیلش این هست که از کدهام بکآپ نگرفتم همش پاک شده مبخوام اول مطمئن بشم که میشه و بعد دوباره شروع کنم کد زدنش رو
ممنون

javaneemroz
چهارشنبه 03 مهر 1392, 22:32 عصر
ای بابا مثل اینکه کلا جاوا با تعداد خط مشکل داره.الان کدهارو به عنوان نمونه کپی پیست کردم تو ریشه کلاس و اونجائی که اکتیویتی اجرا میشه ولی دقیقا اینجا هم همون اروری رو میده که توی کلیک میداد و از حجم خطا میگیره.اینجوری که یعنی نمیشه هیچ کاریش کرد؟!!!پس تکلیف چیه:تشویق:
دارم به یه جاهائی میرسم اگه خدا بخواد.نتیجه داد همینجا میگم

javaneemroz
پنج شنبه 04 مهر 1392, 18:31 عصر
سلام
آقا بالاخره با یه کلک شمالی یه راهی براش پیدا کردم:قهقهه:
چند تا اکتیویتی ساختم و شرطها رو تقسیم کردم توی اکتیویتیها و از صفحه اول اطلاعات رو گرفتم و تو دیتابیس گذاشتم و رد کردم و توی شرطها گذاشتم.در ضمن اکتیویتی ها رو به هم لینک کردم تا اطلاعات و دیتا بیس رو از اکتیویتی اول تا اکتیویتی اخر بین شرطها بچرخونه و هرجا که اوکی شد اونجا نتیجه رو نشون بده.فقط من موندم جاوا به این شهرت و پرکاربردی و گستردگی این محدودیت ها رو چرا گذاشته؟!محدودیت سخت افزاری؟!!!!