Developer Programmer
یک شنبه 22 خرداد 1390, 11:32 صبح
عده ای از کاربرا موقع ثبت، برخی حروف رو به صورت زیر وارد کردن:
ي ك ة
برخی دیگه به این صورت وارد کردن:
ی ک ه
از اونجا که امکان دستکاری داده ها در دیتابیس نیست، وقتی میخوام یه رشته رو در SQL بگردم، باید تمام حالات ممکنه رو تولید کنم. مثلا اگه دنبال رشته "بابک اصغری" می گردم. باید تمام ترکیبات ک، ی رو هم تولید کنم.
برای اینکار یه آرایه تعریف کردم که شامل حروف مشکل ساز هست
token(0) = "ی"
token(1) = "ي"
token(2) = "ک"
token(3) = "ك"
token(4) = "ه"
token(5) = "ة"
حالا میخوام حالاتی رو که تولید میکنم درون یه لیست دیگه بریزم و آخر سر، همه رو به SQL بدم.
Private Shared states As New List(Of String)
Public Shared Sub main(ByVal field As String, value As String)
Dim i = 0, j = 0
Dim token(5) As String
Dim temp
token(0) = "ی"
token(1) = "ي"
token(2) = "ک"
token(3) = "ك"
token(4) = "ه"
token(5) = "ة"
i = 0 : j = 0
While i <= UBound(token)
If value.Contains(token(i)) Or value.Contains(token(i + 1)) Then
temp = value.Replace(token(i), token(i + 1))
states.Add(temp)
temp = value.Replace(token(i + 1), token(i))
states.Add(temp)
End If
i += 2
End While
i = 0 : j = 0
While i <= states.Count - 1
While j < UBound(token)
If states(i).Contains(token(j)) Or states(i).Contains(token(j + 1)) Then
temp = states(i).Replace(token(j), token(j + 1))
states.Add(temp)
temp = temp.Replace(token(j + 1), token(j))
states.Add(temp)
End If
j += 2
End While
i += 1
End While
states = states.Distinct().ToList
End Sub
منتها تمام حالات رو پوشش نمیده.
از دوستان کسی میتونه راهنمایی کنه ؟
ي ك ة
برخی دیگه به این صورت وارد کردن:
ی ک ه
از اونجا که امکان دستکاری داده ها در دیتابیس نیست، وقتی میخوام یه رشته رو در SQL بگردم، باید تمام حالات ممکنه رو تولید کنم. مثلا اگه دنبال رشته "بابک اصغری" می گردم. باید تمام ترکیبات ک، ی رو هم تولید کنم.
برای اینکار یه آرایه تعریف کردم که شامل حروف مشکل ساز هست
token(0) = "ی"
token(1) = "ي"
token(2) = "ک"
token(3) = "ك"
token(4) = "ه"
token(5) = "ة"
حالا میخوام حالاتی رو که تولید میکنم درون یه لیست دیگه بریزم و آخر سر، همه رو به SQL بدم.
Private Shared states As New List(Of String)
Public Shared Sub main(ByVal field As String, value As String)
Dim i = 0, j = 0
Dim token(5) As String
Dim temp
token(0) = "ی"
token(1) = "ي"
token(2) = "ک"
token(3) = "ك"
token(4) = "ه"
token(5) = "ة"
i = 0 : j = 0
While i <= UBound(token)
If value.Contains(token(i)) Or value.Contains(token(i + 1)) Then
temp = value.Replace(token(i), token(i + 1))
states.Add(temp)
temp = value.Replace(token(i + 1), token(i))
states.Add(temp)
End If
i += 2
End While
i = 0 : j = 0
While i <= states.Count - 1
While j < UBound(token)
If states(i).Contains(token(j)) Or states(i).Contains(token(j + 1)) Then
temp = states(i).Replace(token(j), token(j + 1))
states.Add(temp)
temp = temp.Replace(token(j + 1), token(j))
states.Add(temp)
End If
j += 2
End While
i += 1
End While
states = states.Distinct().ToList
End Sub
منتها تمام حالات رو پوشش نمیده.
از دوستان کسی میتونه راهنمایی کنه ؟