arastooms 1,046 ارسال شده در 28 شهریور، ۱۳۹۶ اشتراک گذاری ارسال شده در 28 شهریور، ۱۳۹۶ با سلام به همه عزیزان به مشکل عجیبی برخورد کردم در تشخیص مقدار null در یک map یک مپ در برنامه دارم که 3 تا کلید داره و مقدار اسم=علی فامیل=احمدی تلفن =null میخام سه مقدار رو بگیرم تو یه لیبل نمایش بدم اگر تلفن یا اسم یا فامیل هر کدوم null بود بنویسه " معرفی نشده " ولی نمیتونم این کار رو انجام بدم و تشخیص نمیده Log("Key:Value ") For i = 0 To map.Size - 1 Log( map.GetKeyAt(i)&"="&map.GetValueAt(i)) Next بعد اینها لوگ میشه name=ali family=ahmadi tel=null حالا باید بگم اگر مقدار برابر null بود فلان کار رو انجام بده ! If map.Get("tel")= Null Then log("مقداری وجود نداترددددددددددددددد") Else log("map.Get("tel")) End If مشکل اینجاست که تشخیص نمیده و علتش رو هم نمیدونم یه پست هم در سایت مرجع پیدا کردم ولی متوجه نشدم آخرش چی شده !!Bug? - Testing string value to Null | B4X Community - Android, iOS, desktop, server and IoT programming tools ممکنه راهنمایی بفرمایید مشکل کار کجاست؟ با تشکر لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
Amir - B 185 ارسال شده در 28 شهریور، ۱۳۹۶ اشتراک گذاری ارسال شده در 28 شهریور، ۱۳۹۶ سلام خب چرا دوباره تو حلقه for دنبالش نمی گردید؟ For i = 0 To map.Size - 1 If map.GetValueAt(i)=Null Then Log("مقداری وجود نداترددددددددددددددد") Else Log("map.Get("tel")) End If Next لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
arastooms 1,046 ارسال شده در 29 شهریور، ۱۳۹۶ سازنده اشتراک گذاری ارسال شده در 29 شهریور، ۱۳۹۶ در 5 ساعت قبل، Amir - B گفته است : سلام خب چرا دوباره تو حلقه for دنبالش نمی گردید؟ For i = 0 To map.Size - 1 If map.GetValueAt(i)=Null Then Log("مقداری وجود نداترددددددددددددددد") Else Log("map.Get("tel")) End If Next سلام و تشکر به نظر میاد پیشنهاد شما روش استانداردی نیست دوست عزیز و اینکه من با این کد مشکل دارم If map.GetValueAt(i)=Null Then شما دوباره استفاده کردید لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
نورنما 613 ارسال شده در 29 شهریور، ۱۳۹۶ اشتراک گذاری ارسال شده در 29 شهریور، ۱۳۹۶ سلام چون (مقدار null ) یک متغییر string و رشته ای نیست! یک متغییر عددی هم نیست ! لذا در شرط دهی ها : هیچ وقت برنامه null رو برابر متغیر رشته ای یا متغییر عددی نخواهد شناخت ! توضیح : عدم و (هیچ چی) که برابر یه ( چیز وجودی)مثل عدد یا رشته متغییر نمیشه که ! (متغییر همیشه موجوده والا متغییرنمیشدکه!) البته شرط رو اینطوری تغییرش بدهید ببینید درست میشه یا نه ! (توضیح : اگر متغییر tell غیر از null بود مقدارش نمایش داده بشه والا بگه مقداری وجودندارد) If map.Get("tel")<> "Null" Then log("map.Get("tel")) Else log("مقداری وجود ندارد") End If ولی در هرصورت پیشنهاد اینه که : اگه مطالبو از دیتابیس میخونه : یه راه حل ساده اینه که در داخل دیتابیس بطور خودکار کاراکترهای null رو خود دیتابیس مقدار دهی کنه مثلا اگر شماره تلفنی ثبت و داده نشود مقدار tell رو خودکار برابر 0 قرار دهد ، سپس در برنامه بجای عبارت null اون مقدار پیشفرض مثلا "0" رو قرار بدهید که اگر مقدار tell برابر صفربود فلان پیغامو قرار بدهد، این خصوصیت دیتابیس رو جهت مقدار دهی خودکار فیلدهای null رو برای چنین مواقعی گذاشته اند .از سایر خطاها و ارور های مزاحم مشابه هم این روش جلوگیری میکنه ! بنده هیچ وقت هیچ فیلد حاوی کاراکتر عددی از دیتابیس آفلاین یا آنلاینم رو خالی و null نمیذارم وهمیشه در ابتدا یه مقدار پیش فرض بهش میدم . البته اگر دیتابیس هم نباشه ، واسه حالتهای دیگه هم در اول کار میشه همین روش جایگزینی با یک کاراکتر پیش فرض رو میشه استفاده کرد . null گذاشتن مقادیر عددی ، در خیلی جاها مشکل سازه ،تا ضرورتی بهش نباشه ازش استفاده نمیشه وکنارگذاشته میشه . لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
arastooms 1,046 ارسال شده در 29 شهریور، ۱۳۹۶ سازنده اشتراک گذاری ارسال شده در 29 شهریور، ۱۳۹۶ در 14 ساعت قبل، نورنما گفته است : سلام چون (مقدار null ) یک متغییر string و رشته ای نیست! یک متغییر عددی هم نیست ! لذا در شرط دهی ها : هیچ وقت برنامه null رو برابر متغیر رشته ای یا متغییر عددی نخواهد شناخت ! توضیح : عدم و (هیچ چی) که برابر یه ( چیز وجودی)مثل عدد یا رشته متغییر نمیشه که ! (متغییر همیشه موجوده والا متغییرنمیشدکه!) البته شرط رو اینطوری تغییرش بدهید ببینید درست میشه یا نه ! (توضیح : اگر متغییر tell غیر از null بود مقدارش نمایش داده بشه والا بگه مقداری وجودندارد) If map.Get("tel")<> "Null" Then log("map.Get("tel")) Else log("مقداری وجود ندارد") End If سلام و سپاس از توضیحات کامل شما در واقع من دیتابیسی دارم که بیش از 25 ستون داره و داده های کاربران و تعداد کارباران بالای یک میلیون یوزر هست خوب می بینید که حجم دیتابیس بسیار بسیار بالا هست برای اینکه حجم دیتابیس مقداری کم تر بشه گفتم وقتی کاربر فیلد رو پُر نکرده بود موقع ثبت داده ها اونها رو پیش فرض null قرار دادم تا حجم داده ها بیاد پایین و اگر قرار باشه یک یا صفر قرار بدم هر کدوم 8 بیت از حافظه رو میگیره و به نظرم استاندارد نیست از طرفی اگر هم مثل الان null باشه وقتی تو برنامه دوباره داده ها رو میگیرم به مشکل می خورم به نظر شما هنوز هم پیشنهاد میکنید با این تفاسیر از مقار 1 یا 0 استفاده کنم ؟؟ با تشکر لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
mehran3d 75 ارسال شده در 29 شهریور، ۱۳۹۶ اشتراک گذاری ارسال شده در 29 شهریور، ۱۳۹۶ در 2 ساعت قبل، arastooms گفته است : سلام و سپاس از توضیحات کامل شما در واقع من دیتابیسی دارم که بیش از 25 ستون داره و داده های کاربران و تعداد کارباران بالای یک میلیون یوزر هست خوب می بینید که حجم دیتابیس بسیار بسیار بالا هست برای اینکه حجم دیتابیس مقداری کم تر بشه گفتم وقتی کاربر فیلد رو پُر نکرده بود موقع ثبت داده ها اونها رو پیش فرض null قرار دادم تا حجم داده ها بیاد پایین و اگر قرار باشه یک یا صفر قرار بدم هر کدوم 8 بیت از حافظه رو میگیره و به نظرم استاندارد نیست از طرفی اگر هم مثل الان null باشه وقتی تو برنامه دوباره داده ها رو میگیرم به مشکل می خورم به نظر شما هنوز هم پیشنهاد میکنید با این تفاسیر از مقار 1 یا 0 استفاده کنم ؟؟ با تشکر با bolean بهتر نیس؟ true , false? لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
arastooms 1,046 ارسال شده در 30 شهریور، ۱۳۹۶ سازنده اشتراک گذاری ارسال شده در 30 شهریور، ۱۳۹۶ در در 1396/06/29, 17:16:04، mehran3d گفته است : با bolean بهتر نیس؟ true , false? نه دوست عزیز همون حجم 0 و 1 رو میگیره روش استانداردی نیست شما یا تو دیتابیس هیچی نداری در ستون مورد نظر و یا یه اسم ذخیره شده حالا چرا نمیتونم اون هیچی رو تو برنامه بیسیک تشخیص بدم شده مشکل! ممنون میشم عزیزان اگر کسی مطلع هست من رو راهنمایی کنه مرسی لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
نورنما 613 ارسال شده در 30 شهریور، ۱۳۹۶ اشتراک گذاری ارسال شده در 30 شهریور، ۱۳۹۶ بله حجم دیتابیس اگه با این تعداد یوزر باشه که زیاد میشه و به درد هاست دارای فضای محدود وبسیار کم نمیخوره ! کد زیر رو امتحان کردید ؟ If map.Get("tel")<> Null Then log("map.Get("tel")) Else log("مقداری وجود ندارد") End If لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
سوال
arastooms 1,046
با سلام به همه عزیزان
به مشکل عجیبی برخورد کردم در تشخیص مقدار null در یک map
یک مپ در برنامه دارم که 3 تا کلید داره و مقدار
اسم=علی
فامیل=احمدی
تلفن =null
میخام سه مقدار رو بگیرم تو یه لیبل نمایش بدم
اگر تلفن یا اسم یا فامیل هر کدوم null بود بنویسه " معرفی نشده "
ولی نمیتونم این کار رو انجام بدم و تشخیص نمیده
Log("Key:Value ") For i = 0 To map.Size - 1 Log( map.GetKeyAt(i)&"="&map.GetValueAt(i)) Next
بعد اینها لوگ میشه
name=ali family=ahmadi tel=null
حالا باید بگم اگر مقدار برابر null بود فلان کار رو انجام بده !
If map.Get("tel")= Null Then log("مقداری وجود نداترددددددددددددددد") Else log("map.Get("tel")) End If
مشکل اینجاست که تشخیص نمیده و علتش رو هم نمیدونم
یه پست هم در سایت مرجع پیدا کردم ولی متوجه نشدم آخرش چی شده !!
Bug? - Testing string value to Null | B4X Community - Android, iOS, desktop, server and IoT programming tools
ممکنه راهنمایی بفرمایید مشکل کار کجاست؟
با تشکر
لینک ارسال
به اشتراک گذاری در سایت های دیگر
7 پاسخ به این سوال تاکنون داده شده است
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.