PDA

View Full Version : جستجو در متن



r0ot$harp
چهارشنبه 21 آذر 1386, 15:51 عصر
سلام بچه ها خوبید من یه کاری می خوام بکنم اونم اینکه یه عبارتی رو بره در حرف 500 بیاره و یه کلمه یا متنی رو جیگزین اون بکنه یعنی :

در مثال زیر 12 فاصله اگه از ابتدای متن بشماریم می شه o و با رنگ قرمز مشخص کردم برنامه بیاد و این o رو با a تعویض کنه فقط اینو بگم که نمی خوام از instrاستفاده کنم

salam man khoobam to cheh tori


با تشکر

مبین رنجبر
چهارشنبه 21 آذر 1386, 17:52 عصر
با استفاده از این کد میتونی :




Dim I As Long
Dim Str As String
Dim Str2 As String
Str = "SALAM KHOOBI CHETORI"
For I = 1 To Len(Str)
Str2 = Str2 + Mid(Str, I, 1)
If I = 5 Then
Str2 = Left(Str2, Len(Str2) - 1)
Str2 = Str2 + "O"
End If
Next I
Print Str2


در کد بالا جمله SALAM KHOOBI CHETORI رو داریم و با کد بالا حرف M موجود در کلمه SALAM رو با O عوض میکنه .. در این کد I = 5 یعنی به حرف 5 ام رسید جایگزین میکنه ..

mononok
پنج شنبه 22 آذر 1386, 10:14 صبح
می توانی از تابع زیر استفاذه کنی
Replace(string,find string,replace string,start)
خیلی کوتاه وساده است

ali_habibi1384
پنج شنبه 22 آذر 1386, 17:05 عصر
با استفاده از این کد میتونی :




Dim I As Long
Dim Str As String
Dim Str2 As String
Str = "SALAM KHOOBI CHETORI"
For I = 1 To Len(Str)
Str2 = Str2 + Mid(Str, I, 1)
If I = 5 Then
Str2 = Left(Str2, Len(Str2) - 1)
Str2 = Str2 + "O"
End If
Next I
Print Str2


در کد بالا جمله SALAM KHOOBI CHETORI رو داریم و با کد بالا حرف M موجود در کلمه SALAM رو با O عوض میکنه .. در این کد I = 5 یعنی به حرف 5 ام رسید جایگزین میکنه ..
اینهمه کد چرا؟

text1.selstart=11
text1.sellength=1
text1.seltext=x

در داخل text1 متن شما نوشته شده . با فرمان خط اول و دوم متن سلول دوازدهم شما در حالت انتخاب قرار میگیره و با خط سوم مقداری که در حالت انتخاب قرار داره رو با محتویات داخل x جایگزین میکنه.

vbhamed
پنج شنبه 22 آذر 1386, 23:16 عصر
سلام بچه ها
یک استفاده غیر متعارف از دستور Mid می تونه این کار رو برای ما انجام بده که فکر کنم کمتر تا حالا دیدین
فرض کنیم قراره حرف 13 قرمز (اگر از 1 بشمریم میشه 13) عوض بشه پس می نویسیم


dim s$

s$ = "salam man khoobam to cheh tori"

Mid$(s,13,1) = "a"


یعنی از Mid سمت چپ تساوی استفاده میشه !
البته Mid تنها دستوریه که میشه اینطوری ازش استفاده کرد

مبین رنجبر
شنبه 24 آذر 1386, 09:38 صبح
جناب ali_habibi1384 هیچ کسی نگفت کد شما غلطه .. اتفاقا درسته ... ولی روش اصولی ای نیست ... میدونی چرا ؟ الان شما میتونی برنامه کاری که این متدها می کنن رو بنویسی ؟
text1.selstart=11
text1.sellength=1
text1.seltext=x

مثلا همین 3 تا متدی که نوشتی .. این متدها کدهای آماده خود ویژوال بیسیک هستند که به صورت متد در اومده و براحتی مورد استفاده قرار میگیره .. اما شما میتونی برنامه این متد هارو بنویسی ؟ ( در ضمن متدهایی هم هست که نمیشه برنامه اونارو نوشت).... روشی که من گفتم روش مفهومی کار هست که کاربر محترم sanaz13x سوال کردن .. اگر مثلا ایشون از کد شما استفاده کنه کارش راه میوفته اما میتونه درک کنه که این 3 تا متد دقیقا چه جوری کار میکنند و چه جوری این متد ها نوشته شدند که این کارو انجام میده ؟

vbhamed
شنبه 24 آذر 1386, 10:51 صبح
سلام بچه ها

مثالی که من گذاشتم رو نگاه کنید فکر نکنم ساده تر از این بشه ها

bobrus
شنبه 24 آذر 1386, 12:33 عصر
روش همه درسته ولی

آقای ali_habibi1384 برنامه باید انعطاف پذیر باشه یعنی با یه تغییر کوچولو از کار نیفته و کد شما این اشکال رو داره

آقای vbhamed روش جالبیه و این ترفندها برای کد نویسی حرفه ای نیازه خوبه که اینجوری به دستورات نگاه کنیم کلا برنامه نویس کسیه که با کمترین کد بیشترین استفاده رو ببره

آقای lsass.crc32 وقتی vb خودش متد گذاشته چرا ما باید دوباره کاری کنیم
ولی روش کاربردی بنظر من روش آقای vbhamed می باشد

ali_habibi1384
شنبه 24 آذر 1386, 23:36 عصر
جناب ali_habibi1384 هیچ کسی نگفت کد شما غلطه .. اتفاقا درسته ... ولی روش اصولی ای نیست ... میدونی چرا ؟ الان شما میتونی برنامه کاری که این متدها می کنن رو بنویسی ؟
text1.selstart=11
text1.sellength=1
text1.seltext=x

مثلا همین 3 تا متدی که نوشتی .. این متدها کدهای آماده خود ویژوال بیسیک هستند که به صورت متد در اومده و براحتی مورد استفاده قرار میگیره .. اما شما میتونی برنامه این متد هارو بنویسی ؟ ( در ضمن متدهایی هم هست که نمیشه برنامه اونارو نوشت).... روشی که من گفتم روش مفهومی کار هست که کاربر محترم sanaz13x سوال کردن .. اگر مثلا ایشون از کد شما استفاده کنه کارش راه میوفته اما میتونه درک کنه که این 3 تا متد دقیقا چه جوری کار میکنند و چه جوری این متد ها نوشته شدند که این کارو انجام میده ؟
نداستن دلیل بر نبودن نیست. چون شما طرز استفاده از این متدها رو نمی دونستی فکر می کردی که وجود هم نداره و الآن هم چون تا حالا بهش برخورد نکردید فکر می کنی سخته و کار با اونا آسون نیست . بقول دوستمون چرا وقتی خود وی بی همچین متدهایی گذاشته ما بریم بدنبال کارهای دشوارتر؟ برنامه حرفه ای برنامه ای هستش که با کمترین کد بیشترین استفاده رو بکنه!
مرتبه زمانی الگوریتم شما از درجه n هستش اما مال من 1 هستش . بازهم دلیل می خواهید؟

Mbt925
یک شنبه 25 آذر 1386, 09:01 صبح
دوستان ما همه توی این سایت مثل برادر هستیم و دور هم جمع شدیم تا از هم چیز یاد بیگیریم.

تصور کنین یه بازدید کننده بیگانه یا خارجی بیاد و این پست ها رو ببینه ، با خودش چی فکر می کنه؟
اینکه دنیا داره هر لحظه پیشرفت می کنه و اعضای این سایت برای هر جواب ساده ای که به یه سوال می دن ، تا مدت ها با هم بحث می کنن.
شما که از اعضای فعال این سایت هستید و برنامه نویس های قابلی هم هستین ازتون خیلی خیلی بیشتر از اینا انتظار میره.
ببخشید که من دخالت کردم.
صلوات بفرستین.

ermia2008
یک شنبه 25 آذر 1386, 09:16 صبح
سلام دوستان. منم با Mbt925 ,موافقم. ما اومدیم اینجا تا مشکلاتمونو حل کنیم نه با هم کل کل کنیم و بخوایم حال همدیگرو بگیریمو از اینجو کارا. صلوات بفرستیدو برید همدیگرو ماچ کنید.

Runtime_Error_999
پنج شنبه 29 آذر 1386, 10:21 صبح
البته اگه از حق نگذریم مقصر اصلی آقای Lsass هست!