PDA

View Full Version : سوال: چگونه یک سری از متن های خاص را replace کنیم ؟



dele_ghamgin_2008
یک شنبه 30 آذر 1393, 12:59 عصر
سلام . من یک ریچ تکست باکس دارم که داخل این مقادیری که در تصویر زیر مشاهده می کنید موجود است :

126758

حالا می خواهم وقتی روی باتن کلیک کردم : ریچ تکس باکسم به شکل زیر در بیاد :

126759

همانطور که در تصویر مشاهده می کنید موارد زیر پس از کلیک بر روی باتن حذف گردیدند :
1- اسپیس های الکی و بی خود
2- اعداد که بعد از برند اصلی وجود داشتند . لطفاً راهنمایی کنید که باید چیکار کنم . من خودم از دستوری ریپلایس استفاده می کنم. مثلا بهش میگم هرجا عدد 1 رو دید بجاش خالی بذاره ولی عدد اصلی که در کنار آن برند هم نوشته شده رو میگیره پاک میکنه . من فقط می خواهم آن اعداد بی خودی که در تصویر هم مشخص شده پاک شوند و اعدادی که مرتبط با موضوع نوشته هست پاک نشود . لطفاً راهنمایی کنید .

برای نمونه :



چاقوی سرامیکی 112 2 Submit Submit
چوب افرا 1100 8 Submit Submit
چوب تبریزی 24 Submit Submit
چوب توسکا 10 Submit Submit

shahryari
یک شنبه 30 آذر 1393, 16:18 عصر
سلام
1- ابتدا همه متن رو بریز تو متغیر
2 - متغیر رو براساس \r\n اسپلیت کن و بریز تو آرایه
3- با حلقه به تعداد سطرها ، هر سطر رو مجدد براساس \t اسپلیت کن و بریز تو آرایه و خانه صفرم آرایه رو انتقال بده به ریچ تکست
الگوریتمش با خودت

dele_ghamgin_2008
یک شنبه 30 آذر 1393, 20:21 عصر
سلام
1- ابتدا همه متن رو بریز تو متغیر
2 - متغیر رو براساس /r/n اسپلیت کن و بریز تو آرایه
3- با حلقه به تعداد سطرها ، هر سطر رو مجدد براساس /t اسپلیت کن و بریز تو آرایه و خانه صفرم آرایه رو انتقال بده به ریچ تکست
الگوریتمش با خودت

مرسی . ولی اینهایی که گفتید رو باید چجوری انجام بدم !؟

shahryari
دوشنبه 01 دی 1393, 10:02 صبح
مرسی . ولی اینهایی که گفتید رو باید چجوری انجام بدم !؟
دوست گرامی قرار شد درحد راهنمایی باشه دیگه...

این کد رو امتحان کن
string[] allRows = System.IO.File.ReadAllText("C:\\1.txt").Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);
foreach (string row in allRows )
{
string[] records = row.Split('\t');
richTextBox1.Text += records[0] + Environment.NewLine;
}

dele_ghamgin_2008
دوشنبه 01 دی 1393, 11:30 صبح
دوست گرامی قرار شد درحد راهنمایی باشه دیگه...

این کد رو امتحان کن
string[] allRows = System.IO.File.ReadAllText("C:\\1.txt").Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);
foreach (string row in allRows )
{
string[] records = row.Split('\t');
richTextBox1.Text += records[0] + Environment.NewLine;
}

این کد درسته ولی برای مقادیر کم . به عنوان مثال وقتی می خواهم فایل زیر را بهش بدهم که برام درستش کنه خیلی طول میکشه و سیستم هنگ می کنه

shahryari
دوشنبه 01 دی 1393, 16:29 عصر
یه پروگرس بار به فرمت اضافه کن و پیشرفت کار رو به کاربر نشون بده و کدت رو به شکل زیر بنویس

string[] allRows = System.IO.File.ReadAllText("aaa.txt").Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);
progressBar1.Maximum = allRows.Length;
progressBar1.Value = 0;
foreach (string row in allRows )
{
string[] records = row.Split('\t');
richTextBox1.Text += records[0] + Environment.NewLine;
progressBar1.Value ++;
Application.DoEvents();
}

dele_ghamgin_2008
پنج شنبه 04 دی 1393, 13:51 عصر
یه پروگرس بار به فرمت اضافه کن و پیشرفت کار رو به کاربر نشون بده و کدت رو به شکل زیر بنویس

string[] allRows = System.IO.File.ReadAllText("aaa.txt").Split(new string[] { "\r\n", "\n" }, StringSplitOptions.None);
progressBar1.Maximum = allRows.Length;
progressBar1.Value = 0;
foreach (string row in allRows )
{
string[] records = row.Split('\t');
richTextBox1.Text += records[0] + Environment.NewLine;
progressBar1.Value ++;
Application.DoEvents();
}

مهندس جان خیلی لطف کردی . مشکلم حل شد . متشکرم پاسخ صحیح بود . مشکل سرعت هم با این کار حل کردم :


LstAll.Items.Add(records[0]);