PDA

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



omid93gh
پنج شنبه 26 آذر 1394, 13:45 عصر
سلام دوستان

پیرو سوال قبلیم در این سات که کسی هم پاسخ نداد! سوالی بهتر دارم :

من میخوام در برنامه ام از تابع Replace استفاده کنم به این صورت : ("text2.text = Replace(text1.text, "s" , "1)

همانطور که میدانید با عملکرد این خط دستوری در تکست باکس 1 اگر حرف s وجود داشته باشد به 1 تبدیل خواهد شد

ولی من میخوام این کار را برای 26 حرف الفبای لاتین به کار ببرم که اگر 26 خط دستوری مشابه بالا داشته باشم. برنامه فقط آخرین خط دستوری را اعمال می کند .

مشکل از کجاست ؟ آیا من باید این تابع را در حلقه های Do و یا For قرار دهم ؟ چگونه ؟

ممنون میشم راهنمایی بفرمایین

samiasoft
پنج شنبه 26 آذر 1394, 14:45 عصر
Text2.Text = Replace(Text1.Text, "s", "1")
Text2.Text = Replace(Text2.Text, "a", "2")
Text2.Text = Replace(Text2.Text, "m", "3")
Text2.Text = Replace(Text2.Text, "n", "4")
Text2.Text = Replace(Text2.Text, "b", "5")
...........

vbhamed
پنج شنبه 26 آذر 1394, 15:19 عصر
سلام
اگر دنبال z گشت رو پیدا کرد بجاش 26 بزاره ؟

omid93gh
جمعه 27 آذر 1394, 16:59 عصر
Text2.Text = Replace(Text1.Text, "s", "1")
Text2.Text = Replace(Text2.Text, "a", "2")
Text2.Text = Replace(Text2.Text, "m", "3")
Text2.Text = Replace(Text2.Text, "n", "4")
Text2.Text = Replace(Text2.Text, "b", "5")
...........

سلام دوست عزیز .
در کدی که شما نوشتید به خط 2 تا 5 به دلیل وجود فاصبه در ابتای برناه ایراد گرفت . ضمن اینکه اگر فاصله هارو حذف کنیم فقط در برنامه خط دستوری 5 اعمال می شود و خط های 1 تا 4 نادیده گرفته میشود .
مشکل از کجا میتونه باشه ؟

omid93gh
جمعه 27 آذر 1394, 17:01 عصر
سلام
اگر دنبال z گشت رو پیدا کرد بجاش 26 بزاره ؟

سلام دوست عزیز . خیر . بجای z هر حرفی که برایش تعریف کردیم قرار دهد .

یک برنامه رمز نگاری که متنی را وارد میکنیم و جای حروف رو باهم تعویض میکند که کسی قادر نخواهد بود محتویات متن را بخواند

roo.row
جمعه 27 آذر 1394, 18:53 عصر
با سلام
چرا از دستور for استفاده نکنید متد های الفبا در vb6 موجود است و شما می توانید به سدگی این کار را انجام دهید
قبلا خودم همچین برنامه ای رو نوشته بودم اگه پیداش ردم براتون می زارم
با تشکر

ROSTAM2
جمعه 27 آذر 1394, 22:46 عصر
سلام تذکر اول از متغیر استفاده کنید تذکر دوم از select case استفاده کنید


For Each Word as string in TextBox1.Text
Select Case UCase(Word)
Case "A" TO "Z"
Exit sub
End Select
Next ' word

علیرضا5
شنبه 28 آذر 1394, 01:17 صبح
سلام



فقط در برنامه خط دستوری 5 اعمال می شود و خط های 1 تا 4 نادیده گرفته میشود .
مشکل از کجا میتونه باشه ؟

اینطور نیست بلکه همه خط ها اجرا میشن منتها چون سرعت بالاست شما متوجه نمیشید
این مثل اینه که شما اول به برنامه بگید a=1 بعد بگیذ a=2 بعد بگید a=3
خوب برنامه به این نتیجه میرسه که a=3 هست
برای امتحان اینجوری بنویس


Text1.Text = Replace(Text1.Text, "s", "1")
Text2.Text = Replace(Text2.Text, "a", "2")
Text3.Text = Replace(Text3.Text, "m", "3")
Text4.Text = Replace(Text4.Text, "n", "4")
Text5.Text = Replace(Text5.Text, "b", "5")