PDA

View Full Version : نحوه حذف line دد richtextbox



sobaisobai
چهارشنبه 09 آذر 1390, 20:05 عصر
سلام
کسی میدونه چه جوری میشه یه خط رو از richtextbox حذف کرد؟

Hajivandian
چهارشنبه 09 آذر 1390, 20:18 عصر
سلام، کد اصولیش به صورت زیره


richTextBox1.Select(richTextBox1.GetFirstCharIndex FromLine(yourline)-1, richTextBox1.Lines[yourline].Length+1);
richTextBox1.SelectedRtf = string.Empty;

sobaisobai
چهارشنبه 09 آذر 1390, 21:36 عصر
ممنون
من با کد زیر میخوان بگم کل line های richtextbox رو بگرد و هر خطی که توش کلمه h بود، اون خط رو حذف کن
var listLineText = newList<string>(richTextBoxPrintCtrl1.Text.Split('\n'));
for (int i = 0; i < listLineText.Count; i++)
{
if (listLineText[i].Contains(textBox2.Text.Trim()))
{
int counter = 1;
foreach (string str1 in richTextBoxPrintCtrl1.Text.Split('\n'))
{
if (counter++ == (i + 1))
{
richTextBoxPrintCtrl1.Select(richTextBoxPrintCtrl1 .GetFirstCharIndexFromLine(i)-1, richTextBoxPrintCtrl1.Lines[i].Length);
richTextBoxPrintCtrl1.SelectedRtf = string.Empty;
}
}
}
}

چیکار باید بکنم؟

Hajivandian
چهارشنبه 09 آذر 1390, 22:12 عصر
for (int i = 0; i < richTextBox1.Lines.Count(); i++)
{
if (richTextBox1.Lines[i].Contains("h"))
{
richTextBox1.Select(richTextBox1.GetFirstCharIndex FromLine(i), richTextBox1.Lines[i].Length + 1);
richTextBox1.SelectedRtf = string.Empty;

i--;
}
}

sobaisobai
چهارشنبه 09 آذر 1390, 22:22 عصر
دوست عزیز line که count نداره؟

سوداگر
چهارشنبه 09 آذر 1390, 23:15 عصر
کسی بلد نیست؟
توی برنامه ای که قبلا توی این لینک (http://barnamenevis.org/showthread.php?313047-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88-%D8%AF%D8%B1-%D8%AA%DA%A9%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3&p=1374366#post1374366) نوشته بودم (پست 27) رو به این صورت اصلاح کن (حوصله ضمیمه کردن رو نداشتم!):

private void btnSplit_Click(object sender, EventArgs e)
{
int counter = 1;
string st = "";
foreach (string str in richTextBox1.Text.Split('\n'))
{
if (counter++ == int.Parse(textBox1.Text))
continue;
else
st += str+"\n";

}
richTextBox1.Text = st;
}

Hajivandian
چهارشنبه 09 آذر 1390, 23:30 عصر
من اینو با دات نت فریم ورک 4 نوشتم تو اون که داره !
در ضمن پاسخ Dezfoul اشتباهه به این دلیل که اگر اینجوری خط ها رو حذف کنیم، در ظاهر درست عمل میکنه اما اگه متن تکست باکس داریه استایل باشه استایلش می پره تست کن متوجه می شی
مگر اینکه استایل برات مهم نباشه.

sobaisobai
چهارشنبه 09 آذر 1390, 23:32 عصر
خیلی ممنون
میخوام کل richtextbox رو بگرده و تو هر خطی حرف h بود اون خط رو حذف کنه
if (richTextBox1.Lines[i].Contains("h")) {


}

میشه راهنمایی کنید؟

mmd2009
چهارشنبه 09 آذر 1390, 23:41 عصر
خیلی ممنون
میخوام کل richtextbox رو بگرده و تو هر خطی حرف h بود اون خط رو حذف کنه
if (richTextBox1.Lines[i].Contains("h")) {


}

میشه راهنمایی کنید؟


برای این کار یک روش خیلی ساده استفاده از List هست. بعدش join کنید خط هارو باز به RichTextBox به این شکل :


var lineList = new List<string>(richTextBox1.Text.Split('\n'));

lineList.RemoveAll(d => d.Contains("h"));

richTextBox1.Text = string.Join("\n", lineList);




میتونید به این روش هم بنویسید :


var lineList = new List<string>(richTextBox1.Text.Split('\n'));

richTextBox1.Text = string.Join("\n", lineList.Where(d => !d.Contains("h")));


موفق باشید.

sobaisobai
چهارشنبه 09 آذر 1390, 23:46 عصر
تو freamwork 2 ارور میده

mmd2009
چهارشنبه 09 آذر 1390, 23:48 عصر
تو freamwork 2 ارور میده

Linq در نسخه 2 وجود نداره متاسفانه.

sobaisobai
چهارشنبه 09 آذر 1390, 23:49 عصر
خب این برنامه رو چه جوری به freamwork4 تبدیل کنم که ارور نده؟
لینک (http://www.codeproject.com/KB/cs/getwordtext.aspx)

mmd2009
چهارشنبه 09 آذر 1390, 23:51 عصر
برای کانورت کردن باید با ورژن مورد نظرتون برنامه رو Open کنید

فرضا با Vs2010 برنامه رو باز کنید

sobaisobai
چهارشنبه 09 آذر 1390, 23:54 عصر
ممنون درست شد

sobaisobai
پنج شنبه 10 آذر 1390, 13:20 عصر
سلام مجدد
من میخوام بگم اگه تو خط هیچ کلمه فارسی نبود بود اون خط رو حذف کن
به جای textbox2.text چی باید بزارم؟
lineList.RemoveAll(d => d.Contains(textBox2.Text));
ممنون

sobaisobai
پنج شنبه 10 آذر 1390, 17:05 عصر
کسی نمیدونه؟

nima000
یک شنبه 04 فروردین 1392, 12:22 عصر
سلام من میخوام خط 6 یه richTextBox رو حذف کنم از تمام کد های بالا استفا ده کردم متاسفانه نتیجه ای نشد هم رو freamwork4 و هم روی freamwork2 تست کردم
اگر میشه راهنمایی کنید در این خصوص ممنون میشم

tooraj_azizi_1035
یک شنبه 04 فروردین 1392, 12:33 عصر
باید برای تشخیص انگلیسی بودن یک رشته از Regex استفاده کنید:

var regex = new Regex("[a-zA-Z0-9 ]*");
var result = str.Split(' ')
.Where(s => regex.Match(s).Value == s)
.ToArray();

nima000
یک شنبه 04 فروردین 1392, 17:28 عصر
باید برای تشخیص انگلیسی بودن یک رشته از Regex استفاده کنید:

var regex = new Regex("[a-zA-Z0-9 ]*");
var result = str.Split(' ')
.Where(s => regex.Match(s).Value == s)
.ToArray();



دوست عزیز من منطورتون رو متوجه نشدم ببینید من فقط میخوام خط 6 یک richTextBox را پاک کنم
ممنون میشم راهنمایی کنید

nima000
یک شنبه 04 فروردین 1392, 19:08 عصر
just up

من میخوام خط 6 از richTextBox را پاک کنم دوستان اگر ممکنه راهنمایی کنند

nima000
یک شنبه 04 فروردین 1392, 20:18 عصر
یکی نیس جواب بده ؟

nima000
دوشنبه 05 فروردین 1392, 12:28 عصر
دوستان کسی بلد نیس راهنمایی کنه
ممنون میشم راهنمایی کنید

Hajivandian
دوشنبه 05 فروردین 1392, 13:00 عصر
سلام،
کدی که توی پست دوم نوشتم مشکلی نداره.
برنامه ات رو بزار ببینیم چیکار کردی که میگی نمیشه!

Hajivandian
دوشنبه 05 فروردین 1392, 13:08 عصر
البته میتونی از این کامپوننت هم که خودم کدنویسی کردم استفاده کنی.
کامپوننت رو به نوار ابزارت اضافه کن؛ بعد میتونی از دستوراتی که بهش اضافه شده استفاده کنی.

مثال:

wordpad1.DeleteLine(1);

nima000
دوشنبه 05 فروردین 1392, 15:11 عصر
سلام و تشکر از راهنمایی شما ببنید من دو تا دکمه دارم یکی که فایل متنی رو لود میبکنه دومی میخوام زمانی کلیک شد بر روی دکمه خط شیشم رو پاک کنه ممنون از راهنمایی شما

Hajivandian
دوشنبه 05 فروردین 1392, 15:35 عصر
private void button2_Click(object sender, EventArgs e)
{
try
{
richTextBox1.Select(richTextBox1.GetFirstCharIndex FromLine(6) - 1, richTextBox1.Lines[6].Length + 1);
richTextBox1.SelectedRtf = string.Empty;
}
catch
{
}
}

nima000
سه شنبه 06 فروردین 1392, 11:17 صبح
سلام
دوست عزیز این کد هایی که داده بودید رو هم اضافه کردم اخطار میده
ممنون میشم خودتون یه برسی کنید
با تشکر

Hajivandian
سه شنبه 06 فروردین 1392, 12:18 عصر
یعنی اینقدر سخته! تشخیص اینکه بین این دوتا کلمه فاصله نیست!! (ادیتور برنامه نویس بعضی اوقات کدها رو یک مقدار بد نشون میده)

http://s1.picofile.com/file/7703901826/Code.png