نمایش نتایج 1 تا 8 از 8

نام تاپیک: فراخوانی تعدادی عدد در Select Case

  1. #1
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    454

    فراخوانی تعدادی عدد در Select Case

    با سلام
    من میخواهم تعدادی عدد رو در Select Case فراخوانی کنم ولی راه درستش رو نمیدونم ممنون میشم دوستان در صورت اطلاع راهنمایی کنید. نمونه کد مد نظرم رو هم به این شکله

    Dim T10 As String
    Select Case T10
    Case 10302, 40602, 90902, 161202, 10506, 41006, 91506, 162006, 10712, 41412, 92112, 162812, 10920, 41820, 92720, 163620, 11130, 42230, 93330, 164430, 11342, 42642, 93942, 165242,
    11556, 43056, 94556, 166056, 11772, 43472, 95172, 166872, 11990, 43890, 95790, 167690
    End Select

    این اعداد رو میخوام ییرم تو یه Sub و جاهای مختلف فراخوانی کنم . یا به عبارتی بعد از عبارت Case از sub استفاده کنم.

    سپاس

  2. #2

    نقل قول: فراخوانی تعدادی عدد در Select Case

    سلام دوست عزیز لطف میکنید یکم بیستر توضیح بدید؟

  3. #3
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    454

    نقل قول: فراخوانی تعدادی عدد در Select Case

    با سلام من میخوام اعداد فوق رو با همون فرمت در جاهایی که از Select Case استفاده میکنم فراخوانی کنم چون تعداد این اعداد زیاد هست نمیخوام این اعداد رو بازنویسی کنم بعنوان مثال

     Dim T10 As String = TextBox1.Text 
    Select Case T10
    Case 11556, 43056, 94556, 166056
    'For Example (PictureBox1.image = Nothing )
    End Select


    سپاس

  4. #4
    کاربر دائمی آواتار mmbguide
    تاریخ عضویت
    اسفند 1386
    محل زندگی
    منظومه شمسی
    پست
    1,146

    نقل قول: فراخوانی تعدادی عدد در Select Case

    پیشنهاد میکنم یک پارامتر به کد اضافه کنید که در اون شرایط یک Case اجرا شود که داخل آن case در یک حلقه از مقادیر یک آرایه، حتی ارایه های متغیر استفاده کنید تا نیازی به اصلاح کد درآینده نباشد.

  5. #5
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    1,607

    نقل قول: فراخوانی تعدادی عدد در Select Case

    نقل قول نوشته شده توسط پرستو پارسایی مشاهده تاپیک
    با سلام من میخوام اعداد فوق رو با همون فرمت در جاهایی که از Select Case استفاده میکنم فراخوانی کنم چون تعداد این اعداد زیاد هست نمیخوام این اعداد رو بازنویسی کنم بعنوان مثال

     Dim T10 As String = TextBox1.Text 
    Select Case T10
    Case 11556, 43056, 94556, 166056
    'For Example (PictureBox1.image = Nothing )
    End Select


    سپاس

    Dim T10 As Integer = val(TextBox1.Text)
    Dim Expr As Image = Nothing
    Select Case T10
    Case 11556, 43056, 94556, 166056
    Expr = My.Resources.Bitmap1

    Case #anyNum
    Expr = My.Resources.Bitmap2
    '...
    End Select
    PictureBox1.image = Expr

  6. #6
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    454

    نقل قول: فراخوانی تعدادی عدد در Select Case

    ممنونم ولی مثل اینکه طرح سوال من ناقص بوده من با شرط Case مشکل دارم یعنی اعداد به تعداد زیاد (بیشتر از پستی که ابتدا گذاشتم) برای دستور بعد از case مشکلی ندارم ( لود کردن تصویر رو بعنوان مثال گذاشتم ) جه جوری اون اعداد رو جلوی case ننویسم و بتونم اعداد شرط رو فراخوانی کنم
    سپاسگزارم

  7. #7

    نقل قول: فراخوانی تعدادی عدد در Select Case

    نقل قول نوشته شده توسط پرستو پارسایی مشاهده تاپیک
    ممنونم ولی مثل اینکه طرح سوال من ناقص بوده من با شرط Case مشکل دارم یعنی اعداد به تعداد زیاد (بیشتر از پستی که ابتدا گذاشتم) برای دستور بعد از case مشکلی ندارم ( لود کردن تصویر رو بعنوان مثال گذاشتم ) جه جوری اون اعداد رو جلوی case ننویسم و بتونم اعداد شرط رو فراخوانی کنم
    سپاسگزارم
    در منوی Project ویژوال استدیو ...Add New Item رو انتخاب کنید. در لیست انواع Common Items نوع Text File رو انتخاب کنید و نامش رو فرضا TextFile1.txt قرار بدهید.
    موقع ویرایش اون TextFile1.txt در پنجره Properties یک مشخصه Build Action هست که باید روی وضعیت Embedded Resource قرار بگیره.
    Embedded Resource به این معنا است که این فایل موقع جزئی از فایل اجرایی برنامه میشه و در کد می توانید ازش داده بخوانید.

    حالا داخل اون TextFile1.txt هر گروه از مقادیر رو که خواستید بنویسید و برای اسامی گروه نام هایی مثل Red و Green یا هر نام دیگری رو وارد کنید. اسم گروه داخل [ ] مشخص خواهد شد :

    [Red]
    10302, 40602, 90902
    161202, 10506, 41006, 91506
    162006, 10712
    [Green]
    10920, 41820, 92720, 11342, 42642, 93942
    [Blue]
    164430

    و تابعی به نام LoadResource بنویسید که بتونه این گروه ها و مقادیر داخلش رو از فایل بخونه :

    Private Function LoadResource(resourceName As String) As Dictionary(Of String, String)
    Dim dic As New Dictionary(Of String, String)
    Dim assembly = System.Reflection.Assembly.GetExecutingAssembly()
    Using stream = assembly.GetManifestResourceStream (String.Format("{0}.{1}", assembly.GetName.Name, resourceName))
    Dim reader As New System.IO.StreamReader(stream)
    Dim words = reader.ReadToEnd().Split(New String() {" ", ",", vbTab, vbCrLf, vbCr, vbLf}, StringSplitOptions.RemoveEmptyEntries)
    Dim group = "None"
    For Each word In words
    If word.StartsWith("[") Then
    group = word.Trim("[", "]")
    Else
    dic.Add(word, group)
    End If
    Next
    End Using
    Return dic
    End Function


    حالا در ابتدا که فرم فراخوانی میشه این اطلاعات رو داخل یک دیکشنری فرضا به نام dic_ میخونیم :

    Public Class Form1

    Private _dic = LoadResource("TextFile1.txt")


    و بعد در Select Case بررسی می کنیم که آیا مقدار مورد نظر در dic_ هست یا نه، اگر نبود که حالت Else برقرار ئه وگرنه اسم گروه مورد نظر رو از dic_ دریافت می کنیم :

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim T10 As String = TextBox1.Text
    If _dic.ContainsKey(T10) Then
    Select Case _dic(T10)
    Case "Red"
    PictureBox1.BackColor = Color.Red
    Case "Green"
    PictureBox1.BackColor = Color.Green
    Case "Blue"
    PictureBox1.BackColor = Color.Blue
    End Select
    Else
    PictureBox1.BackColor = Color.White
    End If
    End Sub



    Public Class Form1

    Private _dic = LoadResource("TextFile1.txt")

    Private Function LoadResource(resourceName As String) As Dictionary(Of String, String)
    Dim dic As New Dictionary(Of String, String)
    Dim assembly = System.Reflection.Assembly.GetExecutingAssembly()
    Using stream = assembly.GetManifestResourceStream (String.Format("{0}.{1}", assembly.GetName.Name, resourceName))
    Dim reader As New System.IO.StreamReader(stream)
    Dim words = reader.ReadToEnd().Split(New String() {" ", ",", vbTab, vbCrLf, vbCr, vbLf}, StringSplitOptions.RemoveEmptyEntries)
    Dim group = "None"
    For Each word In words
    If word.StartsWith("[") Then
    group = word.Trim("[", "]")
    Else
    dic.Add(word, group)
    End If
    Next
    End Using
    Return dic
    End Function

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim T10 As String = TextBox1.Text
    If _dic.ContainsKey(T10) Then
    Select Case _dic(T10)
    Case "Red"
    PictureBox1.BackColor = Color.Red
    Case "Green"
    PictureBox1.BackColor = Color.Green
    Case "Blue"
    PictureBox1.BackColor = Color.Blue
    End Select
    Else
    PictureBox1.BackColor = Color.White
    End If
    End Sub
    End Class

  8. #8
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    454

    نقل قول: فراخوانی تعدادی عدد در Select Case

    سپاسگزارم تست گردم و کاملا صحیح جواب گرفتم .

تاپیک های مشابه

  1. سوال: کاربرد select case
    نوشته شده توسط صبا9841 در بخش Access
    پاسخ: 4
    آخرین پست: پنج شنبه 21 آذر 1392, 20:48 عصر
  2. ساختار select-case
    نوشته شده توسط omidan321 در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 4
    آخرین پست: شنبه 02 شهریور 1392, 16:52 عصر
  3. select case
    نوشته شده توسط davooddecoder در بخش T-SQL
    پاسخ: 1
    آخرین پست: دوشنبه 05 تیر 1391, 13:21 عصر
  4. سوال: select case
    نوشته شده توسط amaali20 در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: شنبه 25 مهر 1388, 14:57 عصر
  5. سوال: معادل Select Case در C#‎
    نوشته شده توسط sari-1369 در بخش C#‎‎
    پاسخ: 9
    آخرین پست: جمعه 03 مهر 1388, 11:32 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •