PDA

View Full Version : بررسی نوشته های یک TextBox



mohsen_f_b
چهارشنبه 13 آبان 1388, 21:40 عصر
سلام
یه سوال فنی.
چطوری می تونم نوشته های یک TextBox رو بررسی کنم که چه حرفهای توی اون جمله استفاده شده و تعداد اونارو بهم نمایش بده؟
مثلا توی کلمه Hello

بنوبسه

H -1
e- 1
ll – 2
o – 1

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

esmartiz_red
چهارشنبه 13 آبان 1388, 22:49 عصر
http://barnamenevis.org/forum/showthread.php?t=95001

mohsen_f_b
چهارشنبه 13 آبان 1388, 23:01 عصر
http://barnamenevis.org/forum/showthread.php?t=95001

ممنونم.
ولی به غیر از این چیزی دیگه ای بدردم نخورد.
حالا با این کد می شه همچین کاریو کرد یا نه ؟





string testStr = "Sinpin";
foreach (char c in testStr)
MessageBox.Show(c.ToString());



باتشکر

esmartiz_red
چهارشنبه 13 آبان 1388, 23:07 عصر
دوست عزیز منابعی که شما خوندین مثال و راهنمایی هستن شما با استفاده از اونها می تونی عملی که خواستین رو انجام بدین
من براتون می نویسم اینجا می ذارم

viper2009
چهارشنبه 13 آبان 1388, 23:09 عصر
ممنونم.

ولی به غیر از این چیزی دیگه ای بدردم نخورد.
حالا با این کد می شه همچین کاریو کرد یا نه ؟





string testStr = "Sinpin";
foreach (char c in testStr)
MessageBox.Show(c.ToString());



باتشکر

میشه دوباره این حروف ها رو مقایسه یا با حرفه دیگه جایگزین کرد؟

mohsen_f_b
پنج شنبه 14 آبان 1388, 09:11 صبح
سلام

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


خیلی ممنونم. هرچی سریعتر بهتر


میشه دوباره این حروف ها رو مقایسه یا با حرفه دیگه جایگزین کرد؟


کار نشد نداره.
بزارین "esmartiz_red" کد رو بزاره با اون این کا رو می شه کرد.

mohsen_f_b
جمعه 15 آبان 1388, 10:16 صبح
دوست عزیز منابعی که شما خوندین مثال و راهنمایی هستن شما با استفاده از اونها می تونی عملی که خواستین رو انجام بدین
من براتون می نویسم اینجا می ذارم



سلام
پس چی شد "esmartiz_red" جان.
منتظریم.
باتشکر

Salar Ashgi
جمعه 15 آبان 1388, 14:16 عصر
با استفاده از یه متود ساده میشه این کار رو انجام داد :



string char_counter(string str)
{
List<int> list = new List<int>();
foreach (char c in str)
list.Add((int)(c));
int max = list.Max();
int[] ar = new int[max + 1];
int index = 0;
foreach (char c in str)
{
index = (int)(c);
ar[index]++;

}
string res = "";
foreach (char c in str)
{
res += c.ToString() + " , " + ar[(int)(c)].ToString() + "\n";
}
return res;
}


موفق باشید .

mohsen_f_b
جمعه 15 آبان 1388, 14:46 عصر
سلام
خیلی ممنونم.


یه چندتا مشکل.
1.توی این قسمت ازمن مشکل میگیره




int max = list.Max();


2. اینکه با عکسی که شما گذاشتین 2 بار a رو بررسی کرده و دوبار چاپ کرده باید یک بار چاپ کنه.
باتشکر

Salar Ashgi
جمعه 15 آبان 1388, 18:34 عصر
سلام
خیلی ممنونم.


یه چندتا مشکل.
1.توی این قسمت ازمن مشکل میگیره




int max = list.Max();
2. اینکه با عکسی که شما گذاشتین 2 بار a رو بررسی کرده و دوبار چاپ کرده باید یک بار چاپ کنه.
باتشکر




نمیدونم شما چه نسخه ای از دات نت رو استفاده می کنید ، ولی برای من که از دات نت 3.5

استفاده میکنم ، max بعنوان یک متود تعریف شده است !

در مورد قسمت دوم هم ، میتونید با یک شرط این کار رو انجام بدید !

mohsen_f_b
جمعه 15 آبان 1388, 19:01 عصر
سلام
ببخشید مشکل از من بود.
اصلا حواسم نبود .Net من رفته بود روی 2.0 بازم شمنده.
حالا یه سوال دیگه.
چطوری 2 به 2 چک کنم؟
یعنی Salam alaykom
Sa -1
al – 2
la – 2
am – 1
ay – 1
yk – 1

و...
همین طور ادامه پیدا کنه 2 حرف 2 حرف چک کنه نه بجای یک حرف یک حرف.



باتشکر

mohsen_f_b
شنبه 16 آبان 1388, 21:35 عصر
سلام
راستی یک سوال دیگه چطوری می تونیم یک لیست باک رو Sort کنیم؟



باتشکر

AliRezaPro
شنبه 16 آبان 1388, 22:06 عصر
آقایون یه سئوال
Max() در List.Max()کارش چیه؟
int max = list.Max();

mn_zandy63
شنبه 16 آبان 1388, 23:44 عصر
حالا یه سوال دیگه.
چطوری 2 به 2 چک کنم؟
یعنی [/SIZE][/FONT][/SIZE][/FONT]Salam alaykom
Sa -1
al – 2
la – 2
am – 1
ay – 1
yk – 1

و...
همین طور ادامه پیدا کنه 2 حرف 2 حرف چک کنه نه بجای یک حرف یک حرف.



باتشکر


سلام دوست من، آخر شبه و این راه در این لحظه به ذهنم میرسه
با توجه به اینکه با .net 3.5 مینویسی از Linq میتونی استفاده کنی، مثلا به این شکل
const int cnstLength = 2;

var str = "Salam alaykom";
var arrParts = new List<string>();

for (int i = 0; i <= str.Length - cnstLength; i++)
if (!str.Substring(i, cnstLength).Contains(" "))
arrParts.Add(str.Substring(i, cnstLength));

var strPartGroups = from part in arrParts
group part by part into g
orderby g.Key
select g;

var output = "";
foreach (var grp in strPartGroups)
{
output += grp.Key + " - " + grp.Count() + Environment.NewLine;
}
MessageBox.Show(output);

به جای cnstLength می تونی هر عددی بذاری، مثلا 3، تا 3 تا 3 تا جدا کنه.

mn_zandy63
یک شنبه 17 آبان 1388, 00:09 صبح
برای حالت تک کاراکتر هم به جز استفاده از کد بالا، به صورت ساده تر میتونی از کد زیر استفاده کنی:
var str = "Salam alaykom";

var strPartGroups = from part in str.ToCharArray()
where part != ' '
group part by part into g
orderby g.Key
select g;

var output = "";
foreach (var grp in strPartGroups)
{
output += grp.Key + " - " + grp.Count() + Environment.NewLine;
}
MessageBox.Show(output);


و اگه خواستی به حروف کوچک و بزرگ حساس نباشه، مقدار strPartGroups رو میتونی بذاری:
var strPartGroups= from part in str.ToCharArray()
where part != ' '
group part by part.ToString().ToLower() into g
orderby g.Key
select g;


موفق باشی

mn_zandy63
یک شنبه 17 آبان 1388, 00:30 صبح
آقایون یه سئوال
Max() در List.Max()کارش چیه؟
int max = list.Max();

داخل لیست بزرگترین عنصر رو بر میگردونه.