• پیدا کردن متن در سی شارپ
    #1
    Note 
    سلام من کد پایین رو دارم این کد فقط تگ <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
    پاسخ
    #2
    Note 
    سلام،
    کدی که اونبار بهت دادم واسه یکی بود!
    کلا فقط وقتی میدونی چیزی که دنبالشی یکیه از اون استفاده کن.
    این یکی جوابته!
    متد:
    [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]

    موفق باشی

    See your dreams every where  and every time , try to remember your dreams because a man lives with his dreams forever
    پاسخ
    #3
    Note 
    تشکر بابت این که جوابمو دادید
    من میخاستم بدونم از چه راهی استفاده کنم میتنم کد ها رو سریع تر بشناسم ، من الان خودم خیلی نمیتونم برنامه بنویسم به خاطر اینکه کدهارو نمی شناسم ، پیشنهاد شما چی هست از چه روشی استفاده کنم تا کد هارو سریعتر یاد بگیرم با تشکر .

    پاسخ
    #4
    Note 
    والا من خودم تازه کارم توی برنامه نویسی و بیشتر کدها رو نمیتونم حفظ کنم(حافظه ضعیفه!)
    مثلا واسه کد بالا همچین چیزی رو هیچ جا پیدا نکردم اما یه کد پیدا کردم :
    [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% همشون گیج کننده هستن، چرا؟
    چون ممکنه از کدی استفاده کنن که تو تا حالا از اون استفاده نکردی و واست سخت باشه که خیلی سر خودم اومده.
    از "ساده" شروع کن تا برسی به "سخت" که اصول هرکاری همینه.
    تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین کن تا جایی که میتونی بقیش میشه مثه کاری که هر روز آدم میکنه( بیدار میشه، دستشویی، صورت شستن و....).
    سوال : این فایلِ تکستت واسه چیه؟ چرا اینجوری؟ به چه دردی میخوره؟
    موفق باشی

    See your dreams every where  and every time , try to remember your dreams because a man lives with his dreams forever
    پاسخ
    #5
    Note 
    دوستان برنامه نویس کسی نیست که کد حفظ میکنه، برنامه نویس کسیه که میدونه چطور باید کد بنویسه همونطور که دوستمون the arrow اومد یه چیزی به کدهای قبلی اضافه کرد تا شد اون چیزی که arfanz میخواست. اگر انیشتن هم باشید این همه کد رو نمیتونید حفظ کنید حالا زبانهای برنامه نویسی مختلف هم وجود دارن فقط یکی که نیست.

    آخرین ویرایش: 26-08-2014 ساعت 10:28، توسط Stack OverFlow
    مردم دنیا 10 دسته هستند: کسانی که باینری میفهمند و کسانی که باینری نمیفهمند !
    پاسخ
    #6
    Note 
    The Arrow نوشته است:والا من خودم تازه کارم توی برنامه نویسی و بیشتر کدها رو نمیتونم حفظ کنم(حافظه ضعیفه!)
    مثلا واسه کد بالا همچین چیزی رو هیچ جا پیدا نکردم اما یه کد پیدا کردم :
    [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% همشون گیج کننده هستن، چرا؟
    چون ممکنه از کدی استفاده کنن که تو تا حالا از اون استفاده نکردی و واست سخت باشه که خیلی سر خودم اومده.
    از "ساده" شروع کن تا برسی به "سخت" که اصول هرکاری همینه.
    تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین تمرین کن تا جایی که میتونی بقیش میشه مثه کاری که هر روز آدم میکنه( بیدار میشه، دستشویی، صورت شستن و....).
    سوال : این فایلِ تکستت واسه چیه؟ چرا اینجوری؟ به چه دردی میخوره؟
    موفق باشی

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

    پاسخ
    #7
    Note 
    سلام یک مشکل کوچیک پیش اومده خیلی اینور و اونورش کردم اما را نیفتاد لطفا راهنمایی کنید
    [تصویر:  Untitled_2387.jpg]

    پاسخ
    #8
    Note 
    عزیز این خودش متده، نمیتونی توی یک متد دیگه بنویسیش! باید پایین یا بالای 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]

    See your dreams every where  and every time , try to remember your dreams because a man lives with his dreams forever
    پاسخ
    ایجاد موضوع جدید   پاسخ به موضوع  

    موضوعات مرتبط با این موضوع...
    موضوع نویسنده پاسخ بازدید آخرین ارسال
    Note کتاب آموزش Parse کردن یک خبر خوان وردپرسی برای ویندوزفون The Arrow 0 1,416 23-04-2015 ساعت 09:24
    آخرین ارسال: The Arrow
    Note سوال ساخت تقویم فارسی در ویندوز 8.1 The Arrow 2 1,464 16-01-2015 ساعت 00:32
    آخرین ارسال: The Arrow
    Note دیتابیس SQLite در سی شارپ The Arrow 3 3,142 07-11-2014 ساعت 22:40
    آخرین ارسال: VBProgrammer
    Note FileAssociation در سی شارپ The Arrow 1 715 05-11-2014 ساعت 12:32
    آخرین ارسال: SOFTAFZAR
    Note آموزش کامل سی شارپ (ویدئو) xMAN 2 846 02-10-2014 ساعت 12:50
    آخرین ارسال: xMAN
    Note explorer سی شارپ cMan 1 607 30-08-2014 ساعت 12:07
    آخرین ارسال: SOFTAFZAR
    Note برنامه نویسی موازی با سی شارپ xMAN 0 549 05-08-2014 ساعت 12:01
    آخرین ارسال: xMAN
    Note جستجو در یک متن در سی شارپ arfanz 12 2,875 16-07-2014 ساعت 09:32
    آخرین ارسال: Stack OverFlow
    Note مخفف کنترلهای سی شارپ mshayan 2 1,038 15-07-2014 ساعت 13:32
    آخرین ارسال: mshayan
    Note فرم 1 بعد از چند ثانیه بسته شود و فرم 2 باز شود. سی شارپ davoodshahveisi 4 1,312 23-06-2014 ساعت 14:09
    آخرین ارسال: Stack OverFlow

    کاربرانِ درحال بازدید از این موضوع:   2 مهمان