Fa پاک کردن شرطی آیتم های لیست باکس

ASANWEB

Member
دوستان من کدی نوشتم که با حلقه for چند تا آیتم تو listbox میسازه حالا میخوام یه دستور بنویسم که اگر داخل هر کدوم از آیتم ها خالی بودن اون آیتم پاک بشه .
من خودم این کد تو ذهنم بود که یه جای کارش میلنگه:
کد:
[B][SIZE=2][COLOR=#000080][SIZE=2][COLOR=#000080]ListBoxGetItems[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101]("SongList","Items$,ItemsNum$,#,NumItems")[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101] (Items$=[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#800000][SIZE=2][COLOR=#800000]''[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101]) [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Then[/COLOR][/SIZE]
[/COLOR][/SIZE][B][SIZE=2][COLOR=#000080][SIZE=2][COLOR=#000080]ListBoxDeleteItem[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101]("SongList","Items$")[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]End[/COLOR][/SIZE]
[/COLOR][/SIZE]
 
آخرین ویرایش:

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
متغیر $Item هیچگاه یک رشته ی خالی (بدون کاراکتر) نخواهد بود !
چون آیتم ها بصورت آرایه برگردانده میشن، به فرض اگر عبارت Hello در لیست باکس انتخاب شده باشه، متغیر $Item مقدار #Hello رو بر میگردونه، به همین صورت اگر آیتن انتخاب شده یک رشته ی خالی باشه بازهم یک کاراکتر # در رشته وجود داره
برای انتخاب دقیق آیتم باید از آرایه ها کمک گرفت با کمک دستور ArrayGetItem، و یا صرفاً با دستور StrDel کاراکتر آخر رو حذف کنید، بعد از این میتونید در عبارت شرطی رشته ی موردنظر رو مورد آزمایش قرار بدید.
 

ASANWEB

Member
متغیر $item هیچگاه یک رشته ی خالی (بدون کاراکتر) نخواهد بود !
چون آیتم ها بصورت آرایه برگردانده میشن، به فرض اگر عبارت hello در لیست باکس انتخاب شده باشه، متغیر $item مقدار #hello رو بر میگردونه، به همین صورت اگر آیتن انتخاب شده یک رشته ی خالی باشه بازهم یک کاراکتر # در رشته وجود داره
برای انتخاب دقیق آیتم باید از آرایه ها کمک گرفت با کمک دستور arraygetitem، و یا صرفاً با دستور strdel کاراکتر آخر رو حذف کنید، بعد از این میتونید در عبارت شرطی رشته ی موردنظر رو مورد آزمایش قرار بدید.
ببخشید من متوجه نشدم میشه خواهش کنم یه نمونه کد کوچولو بزارید تا قضیه رو بگیرم؟
 

evil_gates

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

توضيحات جناب nevercom كامل بود با اجازه ايشون كد شما رو اصلاح ميكنم تا منظورشون رو بهتر متوجه بشيد:

کد:
ListBoxGetItems("SongList","Items$,ItemsNum$,#,NumItems")
If (Items$='') Then
ListBoxDeleteItem("SongList","Items$")
End
ListBoxGetItems("SongList","Items$,ItemsNum$,#,NumItems")
For i=1 To NumItems
  ListBoxGetItems("SongList","Items$,ItemsNum$,#,NumItems")
  Items$ = GetArrayItem(Items$,#,i)
  ItemsNum$ = GetArrayItem(ItemsNum$,#,i)
  ItemsNum = VAL(ItemsNum$)
  If (Items$='') Then
    ListBoxDeleteItem("SongList","ItemsNum")
    Refresh("")
  End
Next i
 

ASANWEB

Member
دوست من

توضيحات جناب nevercom كامل بود با اجازه ايشون كد شما رو اصلاح ميكنم تا منظورشون رو بهتر متوجه بشيد:

کد:
ListBoxGetItems("SongList","Items$,ItemsNum$,#,NumItems")
If (Items$='') Then
ListBoxDeleteItem("SongList","Items$")
End
ListBoxGetItems("SongList","Items$,ItemsNum$,#,NumItems")
For i=1 To NumItems
  ListBoxGetItems("SongList","Items$,ItemsNum$,#,NumItems")
  Items$ = GetArrayItem(Items$,#,i)
  ItemsNum$ = GetArrayItem(ItemsNum$,#,i)
  ItemsNum = VAL(ItemsNum$)
  If (Items$='') Then
    ListBoxDeleteItem("SongList","ItemsNum")
    Refresh("")
  End
Next i

والا کدی که من برای ساختن آیتم ها میدم اینه:
کد:
[SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]For[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101] i=[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ff0000][SIZE=2][COLOR=#ff0000]1[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]To[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ff0000][SIZE=2][COLOR=#ff0000]10[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101]field$[i]=[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]GetArrayItem[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101](Sub$,[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#800000][SIZE=2][COLOR=#800000]'#'[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101],i)[/COLOR][/SIZE]
[/COLOR][/SIZE][B][SIZE=2][COLOR=#000080][SIZE=2][COLOR=#000080]ListBoxAddItem[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101]("SongList","field$[i]")[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Next[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101] i[/COLOR][/SIZE]
[/COLOR][/SIZE]
که sub$ از دیتابیس میاد و من کد شمارو به اینصورت استفاده کردم :
کد:
[B]For[/B][B][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101] i=[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ff0000][SIZE=2][COLOR=#ff0000]1[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]To[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ff0000][SIZE=2][COLOR=#ff0000]10[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#ff0000]
[/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101][B]field$[i]=[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][B]GetArrayItem[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101][B]([/B]Sub[B]$,[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#800000][SIZE=2][COLOR=#800000][B]'#'[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101][B],i)[/B][/COLOR][/SIZE]
[/COLOR][/SIZE][B][SIZE=2][COLOR=#000080][SIZE=2][COLOR=#000080]ListBoxAddItem[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101]("SongList","field$[i]")[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#010101]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][B]Next[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101][B] i[/B][/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#000080][SIZE=2][COLOR=#000080][B]ListBoxGetItems[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101]("SongList","Items$,ItemsNum$,#,NumItems")[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][B]If[/B][/COLOR][/SIZE][/COLOR][/SIZE][B][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101] (Items$=[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#800000][SIZE=2][COLOR=#800000]''[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101]) [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Then[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#0000ff]
[/COLOR][/SIZE][B][SIZE=2][COLOR=#000080][SIZE=2][COLOR=#000080]ListBoxDeleteItem[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101]("SongList","Items$")[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#010101]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][B]End[/B][/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#000080][SIZE=2][COLOR=#000080][B]ListBoxGetItems[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101]("SongList","Items$,ItemsNum$,#,NumItems")[/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][B]For[/B][/COLOR][/SIZE][/COLOR][/SIZE][B][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101] i=[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#ff0000][SIZE=2][COLOR=#ff0000]1[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]To[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101][B] NumItems[/B][/COLOR][/SIZE]
[/COLOR][/SIZE][SIZE=2][COLOR=#000080][SIZE=2][COLOR=#000080][B]ListBoxGetItems[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101][B]("SongList","Items$,ItemsNum$,#,NumItems")[/B][/COLOR][/SIZE]
[SIZE=2][COLOR=#010101][B]Items$ = [/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][B]GetArrayItem[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101][B](Items$,#,i)[/B][/COLOR][/SIZE]
[SIZE=2][COLOR=#010101][B]ItemsNum$ = [/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][B]GetArrayItem[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101][B](ItemsNum$,#,i)[/B][/COLOR][/SIZE]
[SIZE=2][COLOR=#010101][B]ItemsNum = [/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][B]VAL[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101][B](ItemsNum$)[/B][/COLOR][/SIZE]
[/COLOR][/SIZE][B][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]If[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101] (Items$=[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#800000][SIZE=2][COLOR=#800000]''[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101]) [/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff]Then[/COLOR][/SIZE][/COLOR][/SIZE][/B][SIZE=2][COLOR=#0000ff]
[/COLOR][/SIZE][SIZE=2][COLOR=#000080][SIZE=2][COLOR=#000080][B]ListBoxDeleteItem[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101][B]("SongList","ItemsNum")[/B][/COLOR][/SIZE][/COLOR][/SIZE]
[COLOR=#010101][SIZE=2][COLOR=#000000]  Refresh("")[/COLOR][/SIZE]
[/COLOR][SIZE=2][COLOR=#0000ff][SIZE=2][COLOR=#0000ff][B]End[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]
[SIZE=2][COLOR=#0000ff][B]Next[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=#010101][SIZE=2][COLOR=#010101][B] i[/B][/COLOR][/SIZE][/COLOR][/SIZE]
که اینم جواب نداد و مثلا از 10 تا آیتم که برام ساخته میشه اگر مثلا تو دیتابیس 4 تا کلمه موجود باشه اون چهار تا میاد و 6 تای بقیه خالیه و اگر روشون کلیک کنیم هایلایت میشن


 

Amit13

Well-Known Member
سلام
خوب چرا همون موقع كه ليست رو ميسازي چك نميكني كه اگر خاليه،add نكنه؟؟؟:-?

کد:
For i=1 To 10
field$[i]=GetArrayItem(Sub$,'#',i)
If (field$[i] <> '') Then
ListBoxAddItem("SongList","field$[i]")
End
Next i

يا اگر نميخواي اون بالايي رو،
بعد از ساخت ليست باكس خودت اين كدارو بنويس.

کد:
For i=1 To 10
ListBoxSelectItem("SongList","i")
ListBoxGetSelectedItems("ListBox","SelItems$,SelItemsNum$,#,SelNumItems")
If (SelItems$='') Then
SelItemsNum=VAL(SelItemsNum$)
ListBoxDeleteItem("SongList","SelItemsNum")
End
Next i





:rose::rose::rose:
 

ASANWEB

Member
راستی میخواستم ببینم برای اینکه حلقه من فقط به تعداد گزینه های دیتابیسم تکرار بشه چکار باید بکنم ؟
مثلا :
کد:
for i=1 to 10
بجای 10 چی باید بزارم ؟ اگر اینطوری بشه کارم خیلی سبکتر میشه
 

ASANWEB

Member
راستی میخواستم ببینم برای اینکه حلقه من فقط به تعداد گزینه های دیتابیسم تکرار بشه چکار باید بکنم ؟
مثلا :
کد:
for i=1 to 10
بجای 10 چی باید بزارم ؟ اگر اینطوری بشه کارم خیلی سبکتر میشه
 

Amit13

Well-Known Member
راستی میخواستم ببینم برای اینکه حلقه من فقط به تعداد گزینه های دیتابیسم تکرار بشه چکار باید بکنم ؟
مثلا :
کد:
for i=1 to 10
بجای 10 چی باید بزارم ؟ اگر اینطوری بشه کارم خیلی سبکتر میشه



خوب عزيز ،در يك حلقه،تعداد # ها رو بشمار:

مثلا:

کد:
num=0
sub$='name1#name2#name3#'
len=LEN(sub$)
For i=1 To len
  char$=StrCopy(sub$,i,1)
  If (char$='#') Then
    num=num+1
  End
Next i
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
خود پلاگین تعداد رکرود ها رو بعنوان یک متغیر عددی بر میگردونه (درصورتی که از پلاگین SQLite برای دیتابیس استفاده میکنید)
تعداد ستونها رو هم میتونید با تابع GetArrayNum بدست بیارید.
 

ASANWEB

Member
خود پلاگین تعداد رکرود ها رو بعنوان یک متغیر عددی بر میگردونه (درصورتی که از پلاگین SQLite برای دیتابیس استفاده میکنید)
تعداد ستونها رو هم میتونید با تابع GetArrayNum بدست بیارید.
ناراحت نشیدا از کمکتونم خیلی هم ممنونم ولی شما همیشه خیلی مختصر کمک میکنید و کسی که خیلی حرفه ای باشه فقط میفهمه چی میگین بابا من تازه کارم و یکی دو ماهه با mmb آشنا شدم تو رو خدا یکم واضح تر بگین یا اگر امکانش بود یه نمونه کد کوچولو هم خیلی میتونه کمک کنه
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
خب این موردی که شما فرمودین دلیل داره !
مورد اول اینکه بنده الان که میام انجمن با سیستم عامل Ubuntu هست و MMB نصب نیست و نمیتونم ازش استفاده کنم.
به همین دلیل نمیتونم براتون مثالی قرار بدم.
نکته ی بعد هم اینکه کافیه با این راهنمایی مثلا برید و کاربرد تابع GetArrayNum رو در راهنمای MMB ببینید.
مطمئنا خیلی چیزها دستگیرتون خواهد شد. یا اصلا برید و کتاب جامع راهنمای MMB رو که جناب Silvercover تالیف کردن دانلود و مطالعه کنید...
 

ASANWEB

Member
خب این موردی که شما فرمودین دلیل داره !
مورد اول اینکه بنده الان که میام انجمن با سیستم عامل Ubuntu هست و MMB نصب نیست و نمیتونم ازش استفاده کنم.
به همین دلیل نمیتونم براتون مثالی قرار بدم.
نکته ی بعد هم اینکه کافیه با این راهنمایی مثلا برید و کاربرد تابع GetArrayNum رو در راهنمای MMB ببینید.
مطمئنا خیلی چیزها دستگیرتون خواهد شد. یا اصلا برید و کتاب جامع راهنمای MMB رو که جناب Silvercover تالیف کردن دانلود و مطالعه کنید...
بله ببخشین اطلاع نداشتم
اون کتابم خوندم و کارایی آرایه رو میدونستم الانم فهمیدم باید چکار کنم و باید اون متغیر رو بجای عدد 10 بزارم که یکم ور رفتم اینو فهمیدم !
دیگه چکار کنیم ژیانیم باید یه هول بخوریم تا روشن شیم :green:

ممنون :rose:
 

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

بالا