PDA

View Full Version : سوال: جلوگیری از ورود متن تکراری در تکست باکس!



niksalehi
چهارشنبه 03 اسفند 1390, 11:14 صبح
سلام دوستان!
من میخوام اگه کاربر بخواد یه متن تکراری رو توی یه تکست باکس بنویسه، یه مسیج باکس نشون داده بشه که بگه این متن از قبل وجود داره!

یه سوال دیگه ام دارم، اینکه چطوری میشه یه متن خاصی رو از تکست باکس پاک کرد؟! :متفکر:

سید حمید حق پرست
چهارشنبه 03 اسفند 1390, 12:34 عصر
یه سوال دیگه ام دارم، اینکه چطوری میشه یه متن خاصی رو از تکست باکس پاک کرد؟! :متفکر:سلام
میتونی اول در تکست باکس متن رو جستوجو کنی بعد حذفش کنی

برای جستوجو در تکست باکس سورس زیر هست و خودت یه کد بهش اضافه کن که بعد از اتمام جستوجو و پیدا کردن متن مورد نظر اون متن پیدا شده رو حذف کنه

موفق باشی

یا علی

_behnam_
چهارشنبه 03 اسفند 1390, 12:51 عصر
سلام دوستان!
من میخوام اگه کاربر بخواد یه متن تکراری رو توی یه تکست باکس بنویسه، یه مسیج باکس نشون داده بشه که بگه این متن از قبل وجود داره!

یه سوال دیگه ام دارم، اینکه چطوری میشه یه متن خاصی رو از تکست باکس پاک کرد؟! :متفکر:
سوال اول:





Private Sub Text1_Change()
If InStr(Text1.Text, Mid(Text1.Text,
Len(Text1.Text), 1)) Then MsgBox "Harfe " & Mid(Text1.Text, Len(Text1.Text),
1) & " ra ghablan vared kardid"
End Sub

سوال دوم:


Text1.Text = Replace(Text1.Text, "Matn", "")

سید حمید حق پرست
چهارشنبه 03 اسفند 1390, 13:16 عصر
سوال اول:
1




1
2
3
4
5
6
7
8
9
10
<b>Private Sub Text1_Change()</b>
<b>If InStr(Text1.Text, Mid(Text1.Text, </b>
<b>Len(Text1.Text), 1)) Then MsgBox "Harfe " & Mid(Text1.Text, Len(Text1.Text), </b>
<b>1) & " ra ghablan vared kardid"</b>
<b>End Sub</b>



هر متنی داخل تکست باکس 1 بنویسیم چه تکرار باشه چه نه مسج باکس ظاهر میشه . حتی وقتی که دکمه delete و Backspace رو میزنیم

سید حمید حق پرست
چهارشنبه 03 اسفند 1390, 13:25 عصر
یه سوال دیگه ام دارم، اینکه چطوری میشه یه متن خاصی رو از تکست باکس پاک کرد؟! :متفکر:بفرمایید دقیقا خودشه

موفق باشی

یا علی (ع)

_behnam_
چهارشنبه 03 اسفند 1390, 13:37 عصر
هر متنی داخل تکست باکس 1 بنویسیم چه تکرار باشه چه نه مسج باکس ظاهر میشه . حتی وقتی که دکمه delete و Backspace رو میزنیم
ببخشید ویژوال بیسیک ندارم نمیتونم چک کنم
اول باید آخرین کاراکتر تکست باکس رو بدست آورد بعد آخرین کاراکتر رو چک کرد که توی تکست باکس هست یا نه در صورت وجود داشتن پیام بده

niksalehi
چهارشنبه 03 اسفند 1390, 15:05 عصر
ببخشید ویژوال بیسیک ندارم نمیتونم چک کنم
اول باید آخرین کاراکتر تکست باکس رو بدست آورد بعد آخرین کاراکتر رو چک کرد که توی تکست باکس هست یا نه در صورت وجود داشتن پیام بده ممنونم از جوابتون، جواب سوال دومم رو گرفتم با مثالی که اقا حمید گذاشتن اما سوال اولم نفهمیدم چطوری باید انجامش بدم؟؟ :گیج:

یا مثلا میشه تکست باکس و کاری کرد که اصلا متن تکراری توش وارد نشه؟

سید حمید حق پرست
چهارشنبه 03 اسفند 1390, 15:37 عصر
ببین این دوتا به دردت میخوره (قبلا جواب سوال اولتو بلد بودم الان یادم رفته اگه یادم اومد اینجا میزارم برات)

موفق باشی


یا علی (ع)

سید حمید حق پرست
چهارشنبه 03 اسفند 1390, 16:03 عصر
اینم هست ( اسمهای تکراری رو در لیست باکس حذف میکنه)

niksalehi
جمعه 05 اسفند 1390, 16:13 عصر
دوستان کسی نیست که بلد باشه چطوری اجازه ندیم که ایتم تکراری توی لیستباکس ادد بشه؟!؟!؟!:ناراحت:

quiet_programmer
جمعه 05 اسفند 1390, 17:19 عصر
با سلام.

برای جلوگیری از اضافه شدن عنصر تکراری به لیست باکس من دوتا کد میزارم.

اولی: یه تکست باکس با یه لیست باکس و یه کامند باتون بزار روی فرم. خاصیت Sorted رو از List1 رو برابر True بزار. کد زیر رو بنویس

Private Sub Command1_Click()
If BinarySearch(Me.List1, Me.Text1.Text) Then
MsgBox "تکراري است"
Else
List1.AddItem (Me.Text1.Text)
End If
End Sub

Private Function BinarySearch(Lst As ListBox, Key As String) As Boolean
Dim Left As Integer
Dim Right As Integer
Dim Mid As Integer
Left = 0
Right = Lst.ListCount
While Left <= Right
Mid = (Left + Right) / 2
If (Lst.List(Mid) = Key) Then
BinarySearch = True
Exit Function
ElseIf Lst.List(Mid) < Key Then
Left = Mid + 1
Else
Right = Mid - 1
End If
Wend
BinarySearch = False
End Function

سرعت اجرای این کد نسبت به کد بعدی بیشتره ولی باید آیتم های اضافه شده به لیست مرتب شده باشن.

دومی: همون کارهای برنامه اولی رو انجام بده بجز ست کردن Sorted از list1 به True:

Private Sub Command2_Click()
Dim Find As Boolean
Find = False
For i = 0 To List1.ListCount - 1
If List1.List(i) = Me.Text1.Text Then
Find = True
MsgBox "تکراري است"
Exit For
End If
Next
If Not Find Then
List1.AddItem (Text1.Text)
End If
End Sub


یاحق.
موفق باشید/