PDA

View Full Version : تکه کردن یک رشته



mahsa_kb
دوشنبه 29 مرداد 1386, 15:23 عصر
سلام،
من یه رشته دارم که طولش مشخص نیست ، حالا می خوام این رشته رو به 3 قسمت تقسیم کنم و هر قسمت رو داخل یک متغییر بریزم .......
لطفا راهنمائیم کنید .

پرواز
دوشنبه 29 مرداد 1386, 15:31 عصر
می شه سوالتون رو واضحتر بپرسید؟
چندتا متد واسه این کار وجود داره:

ShoeMessage(Copy(String, Index, Count))
تابع Copy رشته String رو گرفته و از کاراکتر شماره Index شروع می کنه و Count تا کاراکتر برمیداره.

پرواز
دوشنبه 29 مرداد 1386, 15:34 عصر
ShowMessage(RightStr(String, Count))
اینم Count کاراکتر از سمت راست String جدا می کنه.
LeftStr هم مشابه همینه که از سمت چپ عمل می کنه.

پرواز
دوشنبه 29 مرداد 1386, 15:38 عصر
ضمنا به جای تابع Copy می تونی از MidStr با همون آرگومانها استفاده کنی.
موفق باشی

Hamid.Kad
دوشنبه 29 مرداد 1386, 15:43 عصر
فرض کنیم اسم رشته Str باشه.
توجه داشته باشید که دستورات زیر باقیمانده رشته که بر 3 بخش پذیر نیست رو در رشته آخر میریزه. با کمی دستکاری اعداد میتونید اونو به دلخواه خودتون عوض کنید

(Str1 := Copy(Str,1 , Length(Str) div 3
((Str2: = Copy(Str, (Length(Str) div 3) +1 , 2*(Length(Str) div 3
((Str3: = Copy(Str, 2*(Length(Str) div 3) +1 ,Length(Str)- 2*(Length(Str) div 3

farnaz2003
دوشنبه 29 مرداد 1386, 15:43 عصر
از تابع Length استفاده کن تا طول رشتتو بدست بیاری توی متغییر Integer بریز و تقسیم 3 کن بعد هم از تابع Copy که گفتند استفاده کن.
i:=Length(s);
i:=i div 3;
s1:=copy(s,1,i);
s2:=copy(s,i+1,2*i);
s3:=copy(s,2*i+1,3*i);

Hamid.Kad
دوشنبه 29 مرداد 1386, 15:48 عصر
جالبه که دقیقاً توی یه لحظه جوابها رو فرستادیم. ولی فکر کنم دستور آخری رو اگه بصورت زیر اصلاح کنید، بهتر باشه (تا اگه طول رشته به 3 بخش پذیر نبود، مابقی در s3 قرار بگیره)

s3:=copy(s,2*i+1,length(s) -2*i)

Mahmood_M
سه شنبه 30 مرداد 1386, 01:57 صبح
با سلام
این یک نمونه هست که درست کردم و حروف رو به صورت سه قسمتی جدا میکنه ...
البته دوستان جواب کامل رو دادند ولی فکر کنم برنامه گویاتر باشه ...

-------------------
لینک دانلود برنامه (http://nabegheh.parsaspace.com/Examples/MergString.rar)
-------------------

----------------------------------------------
خوندن این مقاله هم می تونه کمکتون کنه (http://barnamenevis.org/forum/showthread.php?t=70145)
----------------------------------------------

موفق باشید ...

mahsa_kb
سه شنبه 30 مرداد 1386, 16:41 عصر
ممنون از همه ............