PDA

View Full Version : مشکل با دستور Replace در vb6



ooogooo
پنج شنبه 10 مرداد 1392, 05:00 صبح
با سلام خدمت دوستان گرامی
من کار با دستور replace را به صورت معمولی بلدم ولی میخوام کدی بنویسم که بتونه کار دکمه Delete یا BackSpace را انجام بده. مثلا هر وقت در تکست باکس به عبارت "[backspace]" رسیدیم ، این عبارت و حرف قبل از آنرا حذف کند و چیزی را به جای آن قرار ندهد.
(توجه کنید که ما نمیدانیم چه حرفی قبل از عبارت "[backspace]" آمده است)
پیشاپیش از حسن توجه شما تشکر میکنم.

ooogooo
پنج شنبه 10 مرداد 1392, 10:49 صبح
با سلام خدمت دوستان گرامی
من کار با دستور replace را به صورت معمولی بلدم ولی میخوام کدی بنویسم که بتونه کار دکمه Delete یا BackSpace را انجام بده. مثلا هر وقت در تکست باکس به عبارت "[backspace]" رسیدیم ، این عبارت و حرف قبل از آنرا حذف کند و چیزی را به جای آن قرار ندهد.
(توجه کنید که ما نمیدانیم چه حرفی قبل از عبارت "[backspace]" آمده است)
پیشاپیش از حسن توجه شما تشکر میکنم.

با توجه به استقبال بی نظیر دوستان ، خودم روش کار کردم و تونستم با کد زیر مشکلو حل کنم ولی اگه کسی راه حل بهتری داره ممنون میشم بگه :

For i = 32 To 125
("","[Text1.Text = Replace(Text1.Text , Chr(i) & "[BackSpace
next i

miladatashin
پنج شنبه 10 مرداد 1392, 13:56 عصر
این کد بهینه تر هست

Dim s() As String
s = Split(Text1, "[BackSpace]")
For i = 1 To UBound(s)
Text1.Text = Replace(Text1.Text, Mid(Text1.Text, InStr(Text1, "[BackSpace]") - 1, 12), "")
Next i

vbhamed
جمعه 11 مرداد 1392, 02:52 صبح
سلام
البته وقتي بر اساس [BackSpace] جدا شده ديگه نيازي به جستجوي مجدد با Instr نيست
Dim t() As String, s$, i%
t = Split(Text1, "[BackSpace]")
For i = 0 To UBound(t) - 1
s = s & Left$(t(i), Len(t(i)) - 1)
Next
Text1 = s & t(i)