پیدا کردن متن در سی شارپ

#C

توسط arfanz در 4 سال پیش
0 1.4k 7 4 سال پیش
arfanzthearrowstackoverflow
0

سلام من کد پایین رو دارم این کد فقط تگ <MI> در اولین خط را پیدا میکنه ، باید چه دستوری اضافش کنم که درون فایل تکس تمامی تگ های <MI> را همزمان باهم انتخاب کند [CSHARP]string startTag = "<MI>", endTag = "</MI>", body = richText.Text; if (!string.IsNullOrEmpty(body)) { int i1 = body.IndexOf(startTag) + 4; string str = body.Substring(i1); int i2 = str.IndexOf(endTag) + 0; str = str.Substring(0, i2); richText.SelectionStart = i1; richText.SelectionLength=str.Count(); listBox1.Items.Add(richText.SelectedText); richText.SelectionBackColor = Color.Yellow;

        }
        else
            txt_serch.Text = "Please insert text";[/CSHARP]

این هم نمونه فایل تکس <SQ></SQ><ND> </ND><RD>930102</RD><VD>13931229</VD><PT>103</PT><SN>34904259</SN><RN>6</RN><PC>105726</PC><PP>34700</PP><PS>10410</PS><IS>24290</IS><SS>3490963830</SS><CK>0</CK><PG>1</PG><SG>02</SG> <MH><MG>0085023</MG><MP>15100</MP><MI>88888</MI><MS>4530</MS><MR>1</MR><MD>1</MD></MH> <MH><MG></MG><MP>10700</MP><MI>7490</MI><MS>3210</MS><MR>1</MR><MD>1</MD></MH> <MH><MG>0080001</MG><MP>8900</MP><MI>6230</MI><MS>2670</MS><MR>1</MR><MD>1</MD></MH> <PH> <SQ></SQ><ND>930101</ND><RD>930101</RD><VD></VD><PT>103</PT><SN>349022794852406705</SN><RN>5</RN><PC>105726</PC><PP>38400</PP><PS>11520</PS><IS>26880</IS><SS></SS><CK></CK><PG>3</PG><SG>02</SG> </PH> <MH><MG>0081000</MG><MP>10700</MP><MI>7490</MI><MS>3210</MS><MR>1</MR><MD>1</MD></MH> <MH><MG>0087086</MG><MP>18800</MP><MI>13160</MI><MS>5640</MS><MR>1</MR><MD>1</MD></MH> <MH><MG>0080001</MG><MP></MP><MI>6230</MI><MS>2670</MS><MR>1</MR><MD>1</MD></MH> <PH> <SQ></SQ><ND>930101</ND><RD>930101</RD><VD></VD><PT>103</PT><SN>237145631457407103</SN><RN>3</RN><PC>105726</PC><PP>38400</PP><PS>11520</PS><IS>26880</IS><SS>2371456314</SS><CK>3</CK><PG>2</PG><SG>02</SG> </PH> <MH><MG>0081000</MG><MP>10700</MP><MI></MI><MS>3210</MS><MR>1</MR><MD>1</MD></MH> <MH><MG>0087086</MG><MP>18800</MP><MI>13160</MI><MS>5640</MS><MR>1</MR><MD>1</MD></MH> <MH><MG>0080001</MG><MP>8900</MP><MI>6230</MI><MS>2670</MS><MR>1</MR><MD>1</MD></MH>

آخرین ویرایش: 25-08-2014 ساعت 20:09، توسط Daniel
0

سلام، کدی که اونبار بهت دادم واسه یکی بود! کلا فقط وقتی میدونی چیزی که دنبالشی یکیه از اون استفاده کن. این یکی جوابته! متد: [CSHARP] private void FindMyWord(string startTag, string endTag, RichTextBox body) { if (!string.IsNullOrEmpty(body.Text)) { int index = 0; while (index < body.Text.LastIndexOf(startTag)) { int i = body.Find(startTag, index, richText.TextLength, RichTextBoxFinds.None); string a = body.Text.Substring(i + startTag.Length); a = a.Substring(0, a.IndexOf(endTag) + 0); body.SelectionStart = i + startTag.Length; body.SelectionLength = a.Length; body.SelectionColor = Color.Blue; index = body.Text.IndexOf(startTag, index) + 1; listBox1.Items.Add(a); } } else MessageBox.Show("Please insert text"); } [/CSHARP]

آموزش استفاده: [CSHARP] FindMyWord("<MI>", "</MI>", richText); [/CSHARP]

موفق باشی

0

تشکر بابت این که جوابمو دادید من میخاستم بدونم از چه راهی استفاده کنم میتنم کد ها رو سریع تر بشناسم ، من الان خودم خیلی نمیتونم برنامه بنویسم به خاطر اینکه کدهارو نمی شناسم ، پیشنهاد شما چی هست از چه روشی استفاده کنم تا کد هارو سریعتر یاد بگیرم با تشکر .

0

والا من خودم تازه کارم توی برنامه نویسی و بیشتر کدها رو نمیتونم حفظ کنم(حافظه ضعیفه!) مثلا واسه کد بالا همچین چیزی رو هیچ جا پیدا نکردم اما یه کد پیدا کردم : [CSHARP] if (richTextBox1.Text != string.Empty) { int index = 0; String temp = richTextBox1.Text; richTextBox1.Text = ""; richTextBox1.Text = temp; while (index < richTextBox1.Text.LastIndexOf("void")) { richTextBox1.Find("void", index, richTextBox1.TextLength, RichTextBoxFinds.None); richTextBox1.SelectionColor = cl; index = richTextBox1.Text.IndexOf("void", index) + 1; } } [/CSHARP] با کدی که قبلا توی اون یکی سوالت داده بودم، مخلوط کردم، شد کدی که میخواستی. واسه اینکه کد ها رو یاد بگیری بیشتر تمرین کن. مثلا یک برنامه رو بساز و همینجوری چیزایی که یاد میگیری یا پیدا میکنی و به اون مرتبط هست رو روش پیاده کن تا بهتر یاد بگیری. اصل برنامه نویسی هم مثله یاد گرفتن زبان میمونه و باید از "الف" شروع کرد تا رسید به "ی". درسته یادگیری همیشه حوصله آدمو سر میبره اما تا جایی که میتونی تا وقتی که نیاز پیدا نکردی سراغ سورس های آماده نرو، چون 90% همشون گیج کننده هستن، چرا؟ چون ممکنه از کدی استفاده کنن که تو تا حالا از اون استفاده نکردی و واست سخت باشه که خیلی سر خودم اومده. از "ساده" شروع کن تا برسی به "سخت" که اصول هرکاری همینه. تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین کن تا جایی که میتونی بقیش میشه مثه کاری که هر روز آدم میکنه( بیدار میشه، دستشویی، صورت شستن و....). سوال : این فایلِ تکستت واسه چیه؟ چرا اینجوری؟ به چه دردی میخوره؟ موفق باشی

0

دوستان برنامه نویس کسی نیست که کد حفظ میکنه، برنامه نویس کسیه که میدونه چطور باید کد بنویسه همونطور که دوستمون the arrow اومد یه چیزی به کدهای قبلی اضافه کرد تا شد اون چیزی که arfanz میخواست. اگر انیشتن هم باشید این همه کد رو نمیتونید حفظ کنید حالا زبانهای برنامه نویسی مختلف هم وجود دارن فقط یکی که نیست.

آخرین ویرایش: 26-08-2014 ساعت 10:28، توسط Stack OverFlow
0

> والا من خودم تازه کارم توی برنامه نویسی و بیشتر کدها رو نمیتونم حفظ کنم(حافظه ضعیفه!) مثلا واسه کد بالا همچین چیزی رو هیچ جا پیدا نکردم اما یه کد پیدا کردم : [CSHARP] if (richTextBox1.Text != string.Empty) { int index = 0; String temp = richTextBox1.Text; richTextBox1.Text = ""; richTextBox1.Text = temp; while (index < richTextBox1.Text.LastIndexOf("void")) { richTextBox1.Find("void", index, richTextBox1.TextLength, RichTextBoxFinds.None); richTextBox1.SelectionColor = cl; index = richTextBox1.Text.IndexOf("void", index) + 1; } } [/CSHARP] با کدی که قبلا توی اون یکی سوالت داده بودم، مخلوط کردم، شد کدی که میخواستی. واسه اینکه کد ها رو یاد بگیری بیشتر تمرین کن. مثلا یک برنامه رو بساز و همینجوری چیزایی که یاد میگیری یا پیدا میکنی و به اون مرتبط هست رو روش پیاده کن تا بهتر یاد بگیری. اصل برنامه نویسی هم مثله یاد گرفتن زبان میمونه و باید از "الف" شروع کرد تا رسید به "ی". درسته یادگیری همیشه حوصله آدمو سر میبره اما تا جایی که میتونی تا وقتی که نیاز پیدا نکردی سراغ سورس های آماده نرو، چون 90% همشون گیج کننده هستن، چرا؟ چون ممکنه از کدی استفاده کنن که تو تا حالا از اون استفاده نکردی و واست سخت باشه که خیلی سر خودم اومده. از "ساده" شروع کن تا برسی به "سخت" که اصول هرکاری همینه. تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین کن تا جایی که میتونی بقیش میشه مثه کاری که هر روز آدم میکنه( بیدار میشه، دستشویی، صورت شستن و....). سوال : این فایلِ تکستت واسه چیه؟ چرا اینجوری؟ به چه دردی میخوره؟ موفق باشی

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

0

سلام یک مشکل کوچیک پیش اومده خیلی اینور و اونورش کردم اما را نیفتاد لطفا راهنمایی کنید

0

عزیز این خودش متده، نمیتونی توی یک متد دیگه بنویسیش! باید پایین یا بالای Eventـه کلیک بنویسیش! اینجوری:

[CSHARP] private void button3_Click(object sender, EventArgs e) { FindMyWord("<MI>", "</MI>", richText); // اموزش استفاده }

    private void FindMyWord(string startTag, string endTag, RichTextBox body)
    {
        if (!string.IsNullOrEmpty(body.Text))
        {
            int index = 0;
            while (index < body.Text.LastIndexOf(startTag))
            {
                int i = body.Find(startTag, index, richText.TextLength, RichTextBoxFinds.None);
                string a = body.Text.Substring(i + startTag.Length);
                a = a.Substring(0, a.IndexOf(endTag) + 0);
                body.SelectionStart = i + startTag.Length;
                body.SelectionLength = a.Length;
                body.SelectionColor = Color.Blue;
                index = body.Text.IndexOf(startTag, index) + 1;
                listBox1.Items.Add(a);
            }
        }
        else
            MessageBox.Show("Please insert text");
    }

[/CSHARP]

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.

لطفا ابتدا لاگین کنید