PDA

View Full Version : تعدا د کلمات داخل یه فیلد



nima_dir
چهارشنبه 04 بهمن 1385, 21:04 عصر
سلام دوستان
من یه کد میخواستم که بتونه یه کلمه رو توی یه فیلد سرچ کنه و تعداد اون رو برگردونه
ممنون میشم کمک کنید

eyelash
چهارشنبه 04 بهمن 1385, 23:18 عصر
1- Length فیلدت را بدست بیار.
2- توی یک حلقه که از مقدار یک تا طول فیلد منهای طول کلمت مقدار دهی شده هر بار به اندازه ی طول کلمه ی مورد نظرت و از محل شروع شمارنده حلقه یک رشته جدا کن.
3-اگر رشته جدا شده با کلمه مورد نظرتون همخوانی داره به متغیری که قراره تعداد کلمه را ذخیره کنه یک واحد اضافه کن. و شمارنده حلقه را به اندازه طول کلمت جلو ببر. ولی اگه رشته جدا شده رشته مورد نظر نبود شمارنده را یک واحد به جلو بر.
البته اگر توی رشتت امکان تکرار حروف وجود داره بهتره که همیشه شمارنده را یکی جابجا کنی.
اگه وقت شد کدش را براتون می ذارم
موفق باشید

nima_dir
چهارشنبه 04 بهمن 1385, 23:22 عصر
سلام دوست عزیز من سعی خودم رو میکنم
اما اگه شما یکم بیشتر راهنمایی کنید ممنون میشم

eyelash
چهارشنبه 04 بهمن 1385, 23:34 عصر
این هم کد :


Declare @SightlyWord as nvarchar (5)
Declare @LSW as integer
set @SightlyWord = N'aaaaa' -- تعریف و مقداری دهی متغیر حاوی کلمه
set @LSW = Len(@SightlyWord)

Declare @Fild as nvarchar(500)
Declare @LF as integer
select @Fild = ltrim(Fildname) from TableName --where( )شرط
set @Fild = Rtrim (@Fild)
set @LF = Len(@Fild)

declare @Loop as integer
Declare @Count as smallint
Declare @word as nvarchar(5)
Set @Loop = 1
set @Count = 0

while @Loop <> @Count - @LSW
Begin
set @Word = substring(@Fild, @Loop, @LSW)
if @Word = @SightlyWord
Begin
Set @Count = @Count + 1
Set @Loop = @Loop + @LSW
End
Else
Set @Loop = @Loop + 1
End

من کد را کامل تریس نکردم ولی فکر هم نمی کنم مشکلی داشته باشه!
روشی که به نظر من رسید این بود اگه دوستان روش بهتر و کارآمد تری دارن خوشحال می شیم بذارن