PDA

View Full Version : جدا کردن 10 کلمه 10 کلمه از یک رشته



dele_ghamgin_2008
سه شنبه 18 خرداد 1395, 18:32 عصر
سلام. می خواهم برنامه ای بسازم که هر ده کلمه از متن را جدا کرده و به لیست باکس اضافه کند.
مثلا این رشته را به او بدهم. و اون بیاد هر ده کلمه رو جدا کنه و بریزنه توی لیست باکس تا به اخر رشته برسه.


در موارد ضعیف تری که هنوز افسردگی در حد یک اختلال ظاهر نشده است، انجام روش هایی برای کاهش فشار و استرس از جمله تبدیل کارهای بزرگ به کارهای کوچک، حق تقدم (برای) برخی (کارها) قرار دادن و ورزش معتدل (ملایم) مانند رفتن به یک سینما، شرکت کردن در یک (مراسم) مذهبی، اجتماعی یا فعالیت هایی که ممکن است به شما کمک کنند، مصرف 12-8 لیوان آب قلیایی، مثبت اندیشی، تماشای فیلم های خنده دار و شاد، رفتن به مسافرت، احساس بهتری برای شما به وجود می آورد.

دلتنگ اسمان
سه شنبه 18 خرداد 1395, 18:49 عصر
string str = "در موارد ضعیف تری که هنوز افسردگی در حد یک اختلال ظاهر نشده است، انجام روش هایی برای کاهش فشار و استرس از جمله تبدیل کارهای بزرگ به کارهای کوچک، حق تقدم (برای) برخی (کارها) قرار دادن و ورزش معتدل (ملایم) مانند رفتن به یک سینما، شرکت کردن در یک (مراسم) مذهبی، اجتماعی یا فعالیت هایی که ممکن است به شما کمک کنند، مصرف 12-8 لیوان آب قلیایی، مثبت اندیشی، تماشای فیلم های خنده دار و شاد، رفتن به مسافرت، احساس بهتری برای شما به وجود می آورد.";
int k=(str.Length/10)*10;
string l = str.Substring(k,str.Length-k);
for (int t = 0; t <= k-10; t += 10)
comboBox1.Items.Add(str.Substring(t, 10));
comboBox1.Items.Add(l);

ronix3
سه شنبه 18 خرداد 1395, 19:06 عصر
دوست عزیز متد substring کارکتر جدا می کنه این بنده خدا کلمه خواست

dele_ghamgin_2008
سه شنبه 18 خرداد 1395, 19:24 عصر
string str = "در موارد ضعیف تری که هنوز افسردگی در حد یک اختلال ظاهر نشده است، انجام روش هایی برای کاهش فشار و استرس از جمله تبدیل کارهای بزرگ به کارهای کوچک، حق تقدم (برای) برخی (کارها) قرار دادن و ورزش معتدل (ملایم) مانند رفتن به یک سینما، شرکت کردن در یک (مراسم) مذهبی، اجتماعی یا فعالیت هایی که ممکن است به شما کمک کنند، مصرف 12-8 لیوان آب قلیایی، مثبت اندیشی، تماشای فیلم های خنده دار و شاد، رفتن به مسافرت، احساس بهتری برای شما به وجود می آورد.";
int k=(str.Length/10)*10;
string l = str.Substring(k,str.Length-k);
for (int t = 0; t <= k-10; t += 10)
comboBox1.Items.Add(str.Substring(t, 10));
comboBox1.Items.Add(l);


کار با ساب استرینگ و اسپلیت رو بلدم. من می خواهم بر اساس کلمه جدا کنم نه بر اساس کاراکتر.

ronix3
سه شنبه 18 خرداد 1395, 19:27 عصر
string[] str = "در موارد ضعیف تری که هنوز افسردگی در حد یک اختلال ظاهر نشده است، انجام روش هایی برای کاهش فشار و استرس از جمله تبدیل کارهای بزرگ به کارهای کوچک، حق تقدم (برای) برخی (کارها) قرار دادن و ورزش معتدل (ملایم) مانند رفتن به یک سینما، شرکت کردن در یک (مراسم) مذهبی، اجتماعی یا فعالیت هایی که ممکن است به شما کمک کنند، مصرف 12-8 لیوان آب قلیایی، مثبت اندیشی، تماشای فیلم های خنده دار و شاد، رفتن به مسافرت، احساس بهتری برای شما به وجود می آورد.".Split(' ');
for(int i=0;i<str.Length/10;i++)
{
string s=null;
for (int c = i*10; c <i*10+ 10; C++‎‎‎‎‎‎)
{
s += str[c] + " ";
}
listBox1.Items.Add(s);
}
if(str.Length%10!=0)
{
string s = null;
for (int i=(str.Length / 10)*10;i< str.Length;i++)
{
s += str[i] + " ";
}
listBox1.Items.Add(s);
}
تست شده
موفق باشید

dele_ghamgin_2008
سه شنبه 18 خرداد 1395, 19:35 عصر
string str = "در موارد ضعیف تری که هنوز افسردگی در حد یک اختلال ظاهر نشده است، انجام روش هایی برای کاهش فشار و استرس از جمله تبدیل کارهای بزرگ به کارهای کوچک، حق تقدم (برای) برخی (کارها) قرار دادن و ورزش معتدل (ملایم) مانند رفتن به یک سینما، شرکت کردن در یک (مراسم) مذهبی، اجتماعی یا فعالیت هایی که ممکن است به شما کمک کنند، مصرف 12-8 لیوان آب قلیایی، مثبت اندیشی، تماشای فیلم های خنده دار و شاد، رفتن به مسافرت، احساس بهتری برای شما به وجود می آورد.";
int k=(str.Length/10)*10;
string l = str.Substring(k,str.Length-k);
for (int t = 0; t <= k-10; t += 10)
comboBox1.Items.Add(str.Substring(t, 10));
comboBox1.Items.Add(l);



با این دستور ده تا کاراکتر جدا میشه. من کلمه میخواهم.

string strInput = textBox1.Text;

int k = strInput.Length;
for (int t = 0; t <= k - 10; t += 10)
listBox1.Items.Add(strInput.Substring(t, 10));

dele_ghamgin_2008
سه شنبه 18 خرداد 1395, 19:40 عصر
خطا می دهد. لطفا راهنمایی کنید.
140766

ronix3
سه شنبه 18 خرداد 1395, 19:49 عصر
تو تصویر مشخص نیست به کجا ایراد گرفته از سورس من استفاده کنید

ronix3
سه شنبه 18 خرداد 1395, 19:51 عصر
من تو خط اول کاکتر space رو اسپلیت گرفتم احتمال داره وقتی کپی کردید به خاطر کپی از سایت کارکتر حذف شده باشه از کد لطفا بررسی کنید

دلتنگ اسمان
سه شنبه 18 خرداد 1395, 19:53 عصر
string str = "در موارد ضعیف تری که هنوز افسردگی در حد یک اختلال ظاهر نشده است، انجام روش هایی برای کاهش فشار و استرس از جمله تبدیل کارهای بزرگ به کارهای کوچک، حق تقدم (برای) برخی (کارها) قرار دادن و ورزش معتدل (ملایم) مانند رفتن به یک سینما، شرکت کردن در یک (مراسم) مذهبی، اجتماعی یا فعالیت هایی که ممکن است به شما کمک کنند، مصرف 12-8 لیوان آب قلیایی، مثبت اندیشی، تماشای فیلم های خنده دار و شاد، رفتن به مسافرت، احساس بهتری برای شما به وجود می آورد.";

string[] arrystr = str.Split(' ');
int k = (arrystr.Length / 10) * 10;
string l = "", p = "";
for (int t = k + 1; t < arrystr.Length; t++)
l += arrystr[t] + " ";
for (int t = 0; t <= k; t++)
{
p += arrystr[t] + " ";
if (t % 10 == 0)
{
comboBox1.Items.Add(p);
p = "";
}
}

comboBox1.Items.Add(l);

mrprestige
سه شنبه 18 خرداد 1395, 20:17 عصر
سلام. می خواهم برنامه ای بسازم که هر ده کلمه از متن را جدا کرده و به لیست باکس اضافه کند.
مثلا این رشته را به او بدهم. و اون بیاد هر ده کلمه رو جدا کنه و بریزنه توی لیست باکس تا به اخر رشته برسه.


در موارد ضعیف تری که هنوز افسردگی در حد یک اختلال ظاهر نشده است، انجام روش هایی برای کاهش فشار و استرس از جمله تبدیل کارهای بزرگ به کارهای کوچک، حق تقدم (برای) برخی (کارها) قرار دادن و ورزش معتدل (ملایم) مانند رفتن به یک سینما، شرکت کردن در یک (مراسم) مذهبی، اجتماعی یا فعالیت هایی که ممکن است به شما کمک کنند، مصرف 12-8 لیوان آب قلیایی، مثبت اندیشی، تماشای فیلم های خنده دار و شاد، رفتن به مسافرت، احساس بهتری برای شما به وجود می آورد.


سلام دوست من وقتت بخیر ، شما با این کد میتونی 10 تا کلمه از یه جمله رو برداری و داخل لیست باکست قرار بدی اینجا چون من با عجله کد ها رو نوشتم بجای 2 عدد 10 رو بزار به همراه متن مورد نظرت

int C = 0;
string s = "احمد دیروز تنهایی به مسافرت رفت ";
string[] words = s.Split(' ');
foreach (string word in words)
{
C++‎‎‎;
if (C<=2)
{
listBox1.Items.Add(word);
}
}


پیروز و موفق باشی

ژیار رحیمی
سه شنبه 18 خرداد 1395, 21:22 عصر
سلام روش جدا کردن کلمات فارسی با جدا کردن جمله با شاخص فاصله خالی ممکنه در در برخی موارد اونم بستگی به جمله فارسی شما طبق روش بالا به جواب برسی.ولی مشکل اصلی تشخیص کلمات هست.ما (مثبت اندیشی) رو یک کلمه در نظر میگریم ولی با کد بالا به دو کلمه تبدیل میشود.وهمچنین کلمه (می آورد) به دو کلمه تبدیل میشود که صحیح نمیباشد

mrprestige
سه شنبه 18 خرداد 1395, 21:54 عصر
سلام روش جدا کردن کلمات فارسی با جدا کردن جمله با شاخص فاصله خالی ممکنه در در برخی موارد اونم بستگی به جمله فارسی شما طبق روش بالا به جواب برسی.ولی مشکل اصلی تشخیص کلمات هست.ما (مثبت اندیشی) رو یک کلمه در نظر میگریم ولی با کد بالا به دو کلمه تبدیل میشود.وهمچنین کلمه (می آورد) به دو کلمه تبدیل میشود که صحیح نمیباشد
سلام و عرض ادب خدمت جناب رحیمی ، فرمایشتون کاملا متین هست ولی من نمیخواستم زیاد بهش شاخ و بست بدم وگرنه مثلا میشد بگیم کلمه ای که بعد " می" میاد خودش رو یک کلمه جدا حساب کنه و خیلی موارد دیگه ولی منظور بنده این خواستم به ایشون بخش اصلی قضیه رو نشون بدم که میشه توی حول این محور هم کار کنن .

با تشکر

ronix3
سه شنبه 18 خرداد 1395, 21:58 عصر
سلام روش جدا کردن کلمات فارسی با جدا کردن جمله با شاخص فاصله خالی ممکنه در در برخی موارد اونم بستگی به جمله فارسی شما طبق روش بالا به جواب برسی.ولی مشکل اصلی تشخیص کلمات هست.ما (مثبت اندیشی) رو یک کلمه در نظر میگریم ولی با کد بالا به دو کلمه تبدیل میشود.وهمچنین کلمه (می آورد) به دو کلمه تبدیل میشود که صحیح نمیباشد
آره ولی اگه بخوایم اینجور کلمات رو تشخیص بده که باید به برنامه لیست این کلماتو بدیم تازه این کد ها واسه نشون دادن راه بود وگرنه تو همین متن ویرگول وجود داره این روش ویرگول رو هم یک کلمه در نطر می گیره و باید یه شرط دیگه اضافه کرد که اگه آرایه یک کاراکتر بود اونو کلمه در نطر نگیره

dele_ghamgin_2008
سه شنبه 18 خرداد 1395, 23:08 عصر
ronix3 عزیز ممنون. فقط میشه لطف کنی توضیح بدی که این دستور دقیق داره به ترتیب چه کاری رو انجام میده ؟

dele_ghamgin_2008
سه شنبه 18 خرداد 1395, 23:09 عصر
سلام دوست من وقتت بخیر ، شما با این کد میتونی 10 تا کلمه از یه جمله رو برداری و داخل لیست باکست قرار بدی اینجا چون من با عجله کد ها رو نوشتم بجای 2 عدد 10 رو بزار به همراه متن مورد نظرت

int C = 0;
string s = "احمد دیروز تنهایی به مسافرت رفت ";
string[] words = s.Split(' ');
foreach (string word in words)
{
C++‎‎‎‎;
if (C<=2)
{
listBox1.Items.Add(word);
}
}


پیروز و موفق باشی

این دستور که فقط 10 کلمه اول رو جدا میکنه
من میخوام. ده کلمه اول رو بریزه توی آیتم 1 لیست باکس، ده تای دوم رو بریزی توی آیتم 2 لیست باکس و ....
نه اینکه کلمه اول توی آیتم 1 و کلمه دوم توی آیتم 2
تونستم منظور رو برسونم؟

dele_ghamgin_2008
سه شنبه 18 خرداد 1395, 23:14 عصر
string[] str = "در موارد ضعیف تری که هنوز افسردگی در حد یک اختلال ظاهر نشده است، انجام روش هایی برای کاهش فشار و استرس از جمله تبدیل کارهای بزرگ به کارهای کوچک، حق تقدم (برای) برخی (کارها) قرار دادن و ورزش معتدل (ملایم) مانند رفتن به یک سینما، شرکت کردن در یک (مراسم) مذهبی، اجتماعی یا فعالیت هایی که ممکن است به شما کمک کنند، مصرف 12-8 لیوان آب قلیایی، مثبت اندیشی، تماشای فیلم های خنده دار و شاد، رفتن به مسافرت، احساس بهتری برای شما به وجود می آورد.".Split(' ');
for(int i=0;i<str.Length/10;i++)
{
string s=null;
for (int c = i*10; c <i*10+ 10; C++‎‎‎‎‎‎‎)
{
s += str[c] + " ";
}
listBox1.Items.Add(s);
}
if(str.Length%10!=0)
{
string s = null;
for (int i=(str.Length / 10)*10;i< str.Length;i++)
{
s += str[i] + " ";
}
listBox1.Items.Add(s);
}
تست شده
موفق باشید

درست بود. ممنون. فقط چون اون C++ شما مشکل داشت ارور میداد. پاکش کردم و دوباره نوشتم حل شده بود. خیلی ممنون از همه عزیزان که در این بخش مرا راهنمایی کردند.

ronix3
چهارشنبه 19 خرداد 1395, 03:56 صبح
ronix3 عزیز ممنون. فقط میشه لطف کنی توضیح بدی که این دستور دقیق داره به ترتیب چه کاری رو انجام میده ؟

خواهش می کنم خوشحال ک تونستم کمکی بهتون بکنم


//کلمات انگلیسی رو فارسی می نویسم چون جملات نا مفهوم می شه
//یه آرایه از نوع رشته تعریف کردم و از کاراکتر اسپیس اسپلیت گرفتم اینطوری تعداد کلمات بدست اومد
string[] str = "در موارد ضعیف تری که هنوز افسردگی در حد یک اختلال ظاهر نشده است، انجام روش هایی برای کاهش فشار و استرس از جمله تبدیل کارهای بزرگ به کارهای کوچک، حق تقدم (برای) برخی (کارها) قرار دادن و ورزش معتدل (ملایم) مانند رفتن به یک سینما، شرکت کردن در یک (مراسم) مذهبی، اجتماعی یا فعالیت هایی که ممکن است به شما کمک کنند، مصرف 12-8 لیوان آب قلیایی، مثبت اندیشی، تماشای فیلم های خنده دار و شاد، رفتن به مسافرت، احساس بهتری برای شما به وجود می آورد.".Split(' ');
//اینجا متغییر آی به اضای هر ۱۰ کلمه یکی بهش اضافه می شه پس مقدار متغییر آی از صفر شروع می شه و حلقه تا زمانی ک متغییر آی برابر تعداد ۱۰ کلمه ها متن بشه ادامه داره و اگه مثلا تعداد کلمات ۵۲ تا باشه متغییر آی از ۰ تا ۵ هست و ان ۲تا کلمه ی آخر می مونه که بعد از پایانه این حلقه واسش شرط گذاشتم
for(int i=0;i<str.Length/10;i++)

{
string s=null;
//اینجا متغییر آی رو دوباره در ۱۰ ضرب کردم تا ایندکس کلمه هایی ک باید به لیست اضافه بشه بدست بیاد حلقه هم ۱۰ بار تکرار می شه و ۱۰ تا کلمه به متغییر استرینگ اضافه می کنه
for (int c = i*10; c <i*10+ 10; C++‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎)

{
//اینجا چون از اسپیس اسپلیت گرفته بود دیگه فاصله ای بین کلمات نبود و اگه همینطوری بدون فاصله به متغییر اضافه می کردم کلمات بهم می چسبیدن پس بعد از هر کلمه یه فاصله هم گذاشتم


s += str[c] + " ";
}
listBox1.Items.Add(s);
}
// اینجا چک می کنه که اگه باقیمانده ی تقسیم تعداد کلمات بر ۱۰ صفر نبود یعنی تعداد کلمات بر ۱۰ بخش پذیر نبود مثل همون ۵۲ تا
if(str.Length%10!=0)
{
string s = null;
//تعداد کلمات رو به ۱۰ تقسیم کردم که مقدار صحیح اون رو بر می گردونه یعنی ۵ و دو باره در ۱۰ ضرب کردم که می شه ۵۰ و حلقه از کلمه ۵۰ تا ۵۲ ادامه داره و اونا رو هم به لیست اضافه می کنه


for (int i=(str.Length / 10)*10;i< str.Length;i++)
{
s += str[i] + " ";
}
listBox1.Items.Add(s);
}




سوالی بود در خدمتم
موفق باشید