ghtaz2010
پنج شنبه 28 اردیبهشت 1391, 15:32 عصر
سلام دوستان
من کد زیر را در یک برنامه وارد کرده ام که کارش جستجوی یک رشته درصورت پیدا کرد ن رشته دیگه است ، بعبارتی
مثلا رشته ی "<pv>" را پیدا کرد بگرده دنبال "<pv/>" و این کار را تاوقتی به آخر متن یک Richtextbox نرسیده ادامه بده - اما مشکلی که پیش میاد اینه که در حالت عادی موقع اجرا برنامه برای لحظه ای طولانی هنگ می کنه مانند اینکه یه حلقه بی نهایت تشکیل شده باشد اما وقتی انتهای حلقه یک پیغام ایجاد می کنیم برنامه درست کار می کند.
از شما برای حل این مشکل درخواست کمک دارم.
Public Sub Search(ByVal RTB AsRichTextBox, ByVal StartCode AsString, ByVal EndCode AsString)
Dim Firstfind, Lastfind AsInteger
Dim pv As PAS
Dim Sp AsInteger
Lst.Clear() 'a Arraylist
While Sp > -1
Firstfind = RTB.Find(StartCode)
If Firstfind > -1 Then
Lastfind = RTB.Find(EndCode)
If Lastfind > -1 Then
RTB.Select(Firstfind + StartCode.Length, Lastfind - Firstfind - StartCode.Length)
pv.index = Firstfind
pv.Explain = RTB.SelectedText
RTB.Select(Firstfind, Lastfind - Firstfind + EndCode.Length)
RTB.Cut()
Lst.Add(pv)
EndIf
EndIf
Sp = Firstfind
اگر در این قسمت یه پیغام ایجاد کنیم برنامه بدون مشکل اجرا می شود!
EndWhile
من کد زیر را در یک برنامه وارد کرده ام که کارش جستجوی یک رشته درصورت پیدا کرد ن رشته دیگه است ، بعبارتی
مثلا رشته ی "<pv>" را پیدا کرد بگرده دنبال "<pv/>" و این کار را تاوقتی به آخر متن یک Richtextbox نرسیده ادامه بده - اما مشکلی که پیش میاد اینه که در حالت عادی موقع اجرا برنامه برای لحظه ای طولانی هنگ می کنه مانند اینکه یه حلقه بی نهایت تشکیل شده باشد اما وقتی انتهای حلقه یک پیغام ایجاد می کنیم برنامه درست کار می کند.
از شما برای حل این مشکل درخواست کمک دارم.
Public Sub Search(ByVal RTB AsRichTextBox, ByVal StartCode AsString, ByVal EndCode AsString)
Dim Firstfind, Lastfind AsInteger
Dim pv As PAS
Dim Sp AsInteger
Lst.Clear() 'a Arraylist
While Sp > -1
Firstfind = RTB.Find(StartCode)
If Firstfind > -1 Then
Lastfind = RTB.Find(EndCode)
If Lastfind > -1 Then
RTB.Select(Firstfind + StartCode.Length, Lastfind - Firstfind - StartCode.Length)
pv.index = Firstfind
pv.Explain = RTB.SelectedText
RTB.Select(Firstfind, Lastfind - Firstfind + EndCode.Length)
RTB.Cut()
Lst.Add(pv)
EndIf
EndIf
Sp = Firstfind
اگر در این قسمت یه پیغام ایجاد کنیم برنامه بدون مشکل اجرا می شود!
EndWhile