PDA

View Full Version : ( کمک فوری ) انتخاب تکست باکسی که کاراکتر کمتری دارد



oYaMaa
دوشنبه 19 دی 1390, 22:23 عصر
من 4 یا 5 تا text box دارم که همزمان داخل اون ها متن هایی قرار می گیرن
می خوام از بین این تکست باکس ها اونی رو که کمترین کاراکتر رو داره متنشو بیرون بکشم.
تعداد کاراکتر ها هم متغیر هست.
چطور میشه این کارو کرد؟

SlowCode
دوشنبه 19 دی 1390, 22:44 عصر
تابع زیر مقدار کارکتر textbox رو نشون میده بعد مقایسه کن ببین مال کدومشون بیشتره:
Len()
-----------------
If Len(text1)>Len(text2) then
.
.
.
end if"

oYaMaa
دوشنبه 19 دی 1390, 22:57 عصر
خوب چطور بفهمید از بین جند تا عدد کدوم کوجکتره؟

shahabbasic
دوشنبه 19 دی 1390, 23:05 عصر
اگر تعداد تکس باکسات مشخص نیست خب توی آرایه ذخیره کن

خوب چطور بفهمید از بین جند تا عدد کدوم کوجکتره؟
از دستورات if یا select case استفاده کن

oYaMaa
دوشنبه 19 دی 1390, 23:18 عصر
واقعا این قدر خنده دار بود که داری قهقه میزنی؟ قبلا هم تو تایپیک های دیگه از این جور برخورد ها دیده بودم و می دونم که بحث راجع بش فایده ای نداره! اما این طرز برخورد درست نیست.ما اینجاییم تا مشکلات هم رو حل کنیم.ولی اگه شما بخواین این طور رفتار کنید دیگه ما مبتدی ها جرات اینکه سوالی بپرسیم نداریم چرا که اگه سوال ما ابتدایی باشه مورد تمسخر شما اساتید قرار می گیریم.البته معذرت می خوام من کوچکتر از اونی هستم که بخوام این حرف ها رو بزنم. بابت جوابی که دادی ممنون.

IamOverlord
سه شنبه 20 دی 1390, 00:33 صبح
2 تا متغیر تعریف کنید که یکی متن TextBox رو نگه داره و یکی تعداد کاراکتر هاشو. بعد دونه دونه با تعداد کاراکتر های جدید رو با قبلی مقایشه کنید...

shahabbasic
سه شنبه 20 دی 1390, 00:36 صبح
واقعا این قدر خنده دار بود که داری قهقه میزنی؟ قبلا هم تو تایپیک های دیگه از این جور برخورد ها دیده بودم و می دونم که بحث راجع بش فایده ای نداره! اما این طرز برخورد درست نیست.ما اینجاییم تا مشکلات هم رو حل کنیم.ولی اگه شما بخواین این طور رفتار کنید دیگه ما مبتدی ها جرات اینکه سوالی بپرسیم نداریم چرا که اگه سوال ما ابتدایی باشه مورد تمسخر شما اساتید قرار می گیریم.البته معذرت می خوام من کوچکتر از اونی هستم که بخوام این حرف ها رو بزنم. بابت جوابی که دادی ممنون.
منکه گفتم از if یا select case استفاده کن :بوس::بوس::بوس::بوس::بوس::بوس:: وس::بوس::بوس::بوس::بوس::بوس::ب س::بوس::بوس::بوس::بوس::بوس::بو ::بوس::بوس::بوس::بوس::بوس::بوس: :بوس::بوس:
نمونه برنامشو واست نوشتم دانلود کن
http://up4.iranblog.com/images/jrhsoay21vrbvoeevf7.zip

sr2m72
سه شنبه 20 دی 1390, 01:16 صبح
نمونه برنامشو واست نوشتم دانلود کن
http://up4.iranblog.com/images/jrhsoay21vrbvoeevf7.zip

داداش اين كه تو گذاشتي بيشترين كاراكتر رو چاپ ميكه.
اگه ميخواين كمترين كاراكتر رو چاپ بكنه علامت هاي < رو به > تغيير بدين.

oYaMaa
سه شنبه 20 دی 1390, 13:56 عصر
ممنون از جواب هاتون...
خوب با این کد میشه کوتاه ترین کلمه رو از بین چند تا کلمه پیدا کرد.اما بین این کلمات من ( یعنی بین تکست باکس ها ) تکست باکس هایی هم هستند که خالی هستند.یعنی تعداد کاراکتر هاشون 0 هست.
این کد تو چنین شرایطی تکست باکس خالی رو نمایش میده.
حالا من میخوام که برنامه کوتاه ترین کاراکتر غیر 0 رو نمایش بده.متوجه شدید؟
ممنون میشم کد رو کامل کنید.

Private Sub c1_Click()
p1 = Len(T1.Text)
p2 = Len(T2.Text)
p3 = Len(T3.Text)
If p1 < p2 And p1 < p3 Then ans = T1.Text
If p2 < p1 And p2 < p3 Then ans = T2.Text
If p3 < p2 And p3 < p1 Then ans = T3.Text
MsgBox ans
End Sub

Veteran
سه شنبه 20 دی 1390, 14:48 عصر
خب من به این شکل به ذهنم رسید
کد بهینه هست و برای هر چندتا تکست که میخواستین میتونین استفاده کنین
اول ما باید ارایه کنترلی از تکست باکس ها درست کنیم به این صورت
یک تکست بعد بزارید روی فرم روش کلیک راست کنین کپی رو بزنین بعد 5 تا دیگه از تکست باکس paste کنین که با هم بشن 6 تا
برای کپی برای اول ی پیغام میپرسه اونو yes بزنین بعدش یک دکمه بزارید روی فرم این کد رو پیست کنین توی رویداد کلیک اون فرم

اگر مشکلی داشت بگین

Dim x, a, b, c
Dim myarray()
Dim array2()
x = InputBox("tedade textbox ha ")
If Len(Trim(x)) <> 0 Then
ReDim myarray(x - 1)
ReDim array2(x - 1)
Form1.Cls
For a = 0 To x - 1
myarray(a) = Len(Text1(a).Text)
array2(a) = Len(Text1(a).Text)
Next a
For b = 0 To x - 1
For c = 0 To x - 1
If myarray(b) > myarray(c) Then
k = myarray(b)
myarray(b) = myarray(c)
myarray(c) = k
End If
Next c
Next b
For i = 0 To x - 1
If myarray(x - 1) = array2(i) Then
Print Text1(i)
Exit For
End If
Next i
End If

oYaMaa
سه شنبه 20 دی 1390, 15:32 عصر
خب من به این شکل به ذهنم رسید
کد بهینه هست و برای هر چندتا تکست که میخواستین میتونین استفاده کنین
اول ما باید ارایه کنترلی از تکست باکس ها درست کنیم به این صورت
یک تکست بعد بزارید روی فرم روش کلیک راست کنین کپی رو بزنین بعد 5 تا دیگه از تکست باکس paste کنین که با هم بشن 6 تا
برای کپی برای اول ی پیغام میپرسه اونو yes بزنین بعدش یک دکمه بزارید روی فرم این کد رو پیست کنین توی رویداد کلیک اون فرم

اگر مشکلی داشت بگین

Dim x, a, b, c
Dim myarray()
Dim array2()
x = InputBox("tedade textbox ha ")
If Len(Trim(x)) <> 0 Then
ReDim myarray(x - 1)
ReDim array2(x - 1)
Form1.Cls
For a = 0 To x - 1
myarray(a) = Len(Text1(a).Text)
array2(a) = Len(Text1(a).Text)
Next a
For b = 0 To x - 1
For c = 0 To x - 1
If myarray(b) > myarray(c) Then
k = myarray(b)
myarray(b) = myarray(c)
myarray(c) = k
End If
Next c
Next b
For i = 0 To x - 1
If myarray(x - 1) = array2(i) Then
Print Text1(i)
Exit For
End If
Next i
End If



ممنون از جوابتون اما این کد هم کوتاه ترین کاراکتر رو 0 در نظر می گیره!
اساتید کسی نیست جواب بده؟

shahabbasic
سه شنبه 20 دی 1390, 18:04 عصر
درست شد
http://up8.iranblog.com/images/6ctnclodujm128ijee.zip