نمونه سورس کد نمایش نام و آیکون شماره کارت بانک‌ها در ویژوال دات نت VB.NET


در این مقاله، قصد داریم به صورت کامل و جامع، نحوه نوشتن یک برنامه در محیط ویژوال استودیو با زبان VB.NET را بررسی کنیم که بتواند شماره کارت‌های بانکی مختلف را دریافت کرده و نام و آیکون مربوط به هر بانک را نمایش دهد. این پروژه می‌تواند برای برنامه‌های پرداخت، مدیریت مالی یا هر نوع سیستمی که نیازمند شناسایی بانک‌ها بر اساس شماره کارت هستند، مفید باشد. در ادامه، به تفصیل، ساختار کلی، کد نمونه، و نکات مهم در پیاده‌سازی این پروژه را شرح می‌دهیم.
۱. مفهوم کلی پروژه
در این پروژه، کاربر شماره کارت بانکی را وارد می‌کند، و برنامه پس از تحلیل شماره، نام بانک مربوطه را نمایش می‌دهد. علاوه بر این، آیکون مربوط به بانک هم در کنار نام نشان داده می‌شود. این کار نیازمند مجموعه‌ای از داده‌ها است که شماره‌های شروع کارت‌های بانکی را با بانک‌های مختلف مرتبط می‌کند، و همچنین فایل‌هایی که آیکون‌های مربوط به هر بانک را نگهداری می‌کنند.
۲. ساختار داده‌ها
برای پیاده‌سازی این برنامه، نیاز است که بانک‌ها، شماره‌های اولیه کارت‌های آنها، و آیکون‌های مربوطه تعریف شوند. معمولا، بانک‌ها شماره‌های شروع کارت‌های خود را در قالب BIN (Bank Identification Number) یا IIN (Issuer Identification Number) دارند، که معمولا اولین ۶ رقم شماره کارت است. بنابراین، باید یک ساختار یا دیتابیسی برای نگهداری این اطلاعات داشته باشیم.
به طور کلی، می‌توان این اطلاعات را در قالب یک List یا Dictionary در برنامه قرار داد. مثلا:
- بانک ملت، با شماره‌های شروع ۶۰۰۴۲۱، ۶۰۰۴۲۲، و غیره
- بانک ملی، با شماره‌های شروع ۶۲۲۱، ۶۲۲۲، و غیره
- بانک پاسارگاد، با شماره‌های شروع ۶۲۷۳، ۶۲۷۴، و غیره
همچنین، آیکون‌های بانک‌ها باید در فایل‌های تصویری قرار داشته باشند و در پروژه بارگذاری شوند تا در هنگام نمایش، کنار نام بانک ظاهر شوند.
۳. مراحل پیاده‌سازی برنامه
الف) طراحی فرم UI
در ویژوال استودیو، یک فرم جدید ایجاد کنید. این فرم می‌تواند شامل:
- TextBox برای وارد کردن شماره کارت
- Button برای شروع فرآیند شناسایی
- PictureBox برای نمایش آیکون بانک
- Label یا TextBox برای نمایش نام بانک
ب) افزودن داده‌های بانک‌ها
در کد VB.NET، یک لیست یا دیکشنری از بانک‌ها و شماره‌های شروع آنها تعریف کنید. مثلا:
vb.net  
Dim banks As New List(Of BankInfo) From {
New BankInfo("ملت", New List(Of String) From {"600421", "600422"}, "bank_melly.png"),
New BankInfo("ملی", New List(Of String) From {"6221", "6222"}, "bank_melli.png"),
New BankInfo("پاسارگاد", New List(Of String) From {"6273", "6274"}, "bank_pasargad.png")
}

در اینجا، کلاس `BankInfo` یک کلاس تعریف شده است که نام بانک، لیستی از شمارههای شروع و نام فایل آیکون را نگه می‌دارد.
ج) نوشتن تابع شناسایی بانک
یک تابع بنویسید که شماره کارت وارد شده را گرفته و بر اساس شماره‌های شروع، بانک مربوطه را شناسایی کند. مثلا:
vb.net  
Function GetBankName(cardNumber As String) As String
Dim prefix As String = cardNumber.Substring(0, 6) ' اولین 6 رقم
For Each bank In banks
If bank.Prefixes.Any(Function(p) prefix.StartsWith(p)) Then
Return bank.Name
End If
Next
Return "بانک شناخته نشد"
End Function

همچنین، تابعی مشابه برای پیدا کردن آیکون بانک نوشته می‌شود.
د) رویداد Button کلیک
در رویداد کلیک دکمه، شماره کارت وارد شده خوانده می‌شود، سپس تابع شناسایی بانک فراخوانی می‌شود، و نتایج در UI نشان داده می‌شود. مثلا:
vb.net  
Private Sub btnIdentify_Click(sender As Object, e As EventArgs) Handles btnIdentify.Click
Dim cardNumber As String = txtCardNumber.Text.Trim()
If cardNumber.Length >= 6 Then
Dim bankName As String = GetBankName(cardNumber)
lblBankName.Text = bankName
' پیدا کردن بانک برای نشان دادن آیکون
Dim bank As BankInfo = banks.FirstOrDefault(Function(b) b.Name = bankName)
If bank IsNot Nothing Then
Dim iconPath As String = Path.Combine(Application.StartupPath, bank.IconFile)
If File.Exists(iconPath) Then
picBankIcon.Image = Image.FromFile(iconPath)
Else
picBankIcon.Image = Nothing
End If
End If
Else
MessageBox.Show("لطفاً شماره کارت معتبر وارد کنید.")
End If
End Sub

۴. نکات مهم در پیاده‌سازی
- اطمینان حاصل کنید که فایل‌های آیکون در مسیر درست قرار دارند، یا از منابع معتبر بارگذاری می‌شوند.
- برای کار با شماره کارت، بهتر است ورودی را به صورت عددی یا بدون کاراکترهای غیرمجاز پاکسازی کنید.
- در صورت نیاز، بانک‌هایی با شماره‌های شروع بیشتر یا کمتر، در لیست خود اضافه کنید.
- برای توسعه بهتر، می‌توانید دیتابیس جداگانه یا فایل JSON برای نگهداری اطلاعات بانک‌ها استفاده کنید.
- همچنین، برای سرعت بیشتر، می‌توانید از ساختارهای داده‌ای بهینه‌تر مانند Dictionary استفاده کنید.
۵. جمع‌بندی و نتیجه‌گیری
در این مقاله، به صورت کامل، نحوه ساخت یک برنامه در ویژوال استودیو با VB.NET برای نمایش نام و آیکون بانک‌ها بر اساس شماره کارت را شرح دادیم. این پروژه، نمونه‌ای است که می‌تواند به راحتی توسعه یافته و در پروژه‌های پیچیده‌تر مورد استفاده قرار گیرد. با بهره‌گیری از مفاهیم پایه‌ای مثل کار با لیست‌ها، رشته‌ها، رویدادها، و فایل‌های تصویری، توانستیم یک سیستم ساده ولی کارآمد بسازیم که قابلیت توسعه و سفارشی‌سازی دارد. این نوع برنامه‌ها، نه تنها در حوزه بانکداری، بلکه در هر سیستم مالی و پرداخت، کاربرد فراوانی دارند و می‌توانند تجربه کاربری را بهبود بخشند.
در نهایت، توصیه می‌شود، همواره داده‌های بانک‌ها را به‌روز نگه دارید و از منابع معتبر برای آیکون‌ها و شماره‌های شروع کارت‌ها استفاده کنید تا دقت و قابلیت اطمینان برنامه حفظ شود. با تمرین و توسعه، می‌توان این پروژه را به سیستم‌های پیشرفته‌تر و با امکانات بیشتر تبدیل کرد.