نقل قول: حذف کاراکترهای تکراری
سلام
واسه سوال اول فکر کنم این الگوریتم جواب بده. متاسفانه الان وی بی ندارم تست کنم:
یه رشته ی خالی میسازی.
یه حلقه میزنی واسه تک تک کاراکتر های متنی که داری:
اگه کارکتر مساوی space بود به رشته یه ستاره اضافه میکنی
اگه نبود خود اون کارکتر رو به رشته اضافه میکنی.
واسه سوال دوم- برای متن انگلیسی احتمالا جواب میده . متن فارسی رو نمیدونم:
یه ارایه عددی میسازی.
یه حلقه میزنی واسه تک تک کارکتر های متن:
معادل کد اسکی هر کارکتر رو میریزی تو ارایه
یه حلقه دیگه میزنی واسه تک تک ایتم های ارایه:
اگه تعداد ایتم هایی که برابر اون عدد هست از یک بیشتره اونا رو حذف میکنی
در اخر:
یه رشته میسازی
یه حلقه میزنی واسه تک تک اعضای ارایه ی جدیدمون
معادل حرفیه هر عدد رو به رشته اضافه میکنی
اخر سر هم رشته رو چاپ میکنی
شرمنده. خیلی وقته وی بی کار نکردم.وی بی ندارم رو سیستم کد اصلیشو بهت بدم:)
نقل قول: حذف کاراکترهای تکراری
ممنون از آقای علیرضا . ولی اگه کسی از دوستان کد vb همین سوالارو رو هم داشته باشه ، ممنون میشم. خیلی ضروریه.
نقل قول: حذف کاراکترهای تکراری
وی بی دستم رسید.
سوال اول:
Dim RESULT As String = ""
Dim STR As String = " Ali reza "
For Each ch As Char In STR
If ch = " " Then
RESULT += "*"
Else
RESULT += ch
End If
Next
MsgBox(RESULT)
سوال دوم رو الان وقت ندارم بنویسم. تا فرداشب بهت میرسونم
نقل قول: حذف کاراکترهای تکراری
واسه سوال دوم از منوی projecy گزینه add module رو بزن و این کد رو بزار توی اون:
<System.Runtime.CompilerServices.Extension()> _
Public Sub RemoveAt(Of T)(ByRef arr As T(), ByVal index As Integer)
Dim uBound = arr.GetUpperBound(0)
Dim lBound = arr.GetLowerBound(0)
Dim arrLen = uBound - lBound
If index < lBound OrElse index > uBound Then
Throw New ArgumentOutOfRangeException( _
String.Format("Index must be from {0} to {1}.", lBound, uBound))
Else
'create an array 1 element less than the input array
Dim outArr(arrLen - 1) As T
'copy the first part of the input array
Array.Copy(arr, 0, outArr, 0, index)
'then copy the second part of the input array
Array.Copy(arr, index + 1, outArr, index, uBound - index)
arr = outArr
End If
End Sub
حالا توی رویداد مورد نظرت این کد رو بزار:
Dim RESULT As String = ""
Dim STR As String = " aalli rezar "
Dim list(STR.Length) As Byte
Dim i As Integer = 0
For Each ch As Char In STR
list(i) = Asc(ch)
i += 1
Next
Dim k, j As Integer
j = 0
While j < list.Length
k = j + 1
While k < list.Length
If list(j) = list(k) Then
list.RemoveAt(k)
End If
k += 1
End While
j += 1
End While
For Each num As Byte In list
RESULT += Chr(num)
Next
MsgBox(RESULT)
جاییشو نفهمیدی بگو توضیح بدم