PDA

View Full Version : حرفه ای: یافتن کلمه خاص در فایل Word و انتخاب ادامه متن موجود در سطهای بعدی



رامین مرادی
چهارشنبه 09 خرداد 1397, 11:50 صبح
سلام دوستان . وقت بخیر.
من میتونم تو فایل ورد سرچ کنم و کلمات رو پیدا کنم اما مد نظرم گرفتن متن های بعد از اون کلمه هست. برای مثال نمونه زیر رو ببینید.

پاراگراف:
-این یک متن تست برای سطر اول می باشد.
-این یک متن تست برای سطر دوم می باشد.

این مثال من بود. البته اینم بگم بعد از کلمه پاراگراف هر چی باشه جزو انتخاب های من تو همون صفحه هست. در ضمن هر انتخاب تا علامت . (نقطه) انتخاب میشه بعد باید برم سطر بعدی و در صورت وجود متن اونم بخونم .تا الی آخر. (فقط همون صفحه)

نتیجه خروجی که به من میده اینجور باید باشه (*این یک متن تست برای سطر اول می باشد.*این یک متن تست برای سطر دوم می باشد.)
ممنون میشم راهنماییم کنید.

رامین مرادی
یک شنبه 13 خرداد 1397, 08:02 صبح
سلام
خیلی گنگ توضیح دادی من که اصلا متوجه نشدم قراره چکاری انجام بشه؟
منظورم نتجیش هست

نتیجش رو نوشتم ولی چشم بازم میگم.
من انتهای فایل وردم که یک صفحه هست نوشته زیر رو دارم:



پاراگراف:
-این یک متن تست برای سطر اول می باشد.
-این یک متن تست برای سطر دوم می باشد.


حالا میخوام یه خروجی اینجوری بدست بیارم.


*این یک متن تست برای سطر اول می باشد.*این یک متن تست برای سطر دوم می باشد.

در کل میخوام هر چی متن بعد از کلمه پاراگراف هست رو بدست بیارم.؟
اگه بازم نامفهوم بود با شکل توضیح بدم!!

danialafshari
یک شنبه 13 خرداد 1397, 10:48 صبح
با سلام

string str = richTextBox1.Text;
string Result = str.Substring(str.IndexOf("پاراگراف:")+10);

یا

var Result = str.Split(new[] { "پاراگراف:" }, StringSplitOptions.None)[1];

در ضمن اگر نیاز به تک تک جملات به صورت جداگانه دارید چون (-) ابتداشون هست میتونی با Split جدا کنید

string Result = str.Substring(str.IndexOf("پاراگراف:")+11);
string[] result2 = Result.Split('-');

موفق باشید

رامین مرادی
پنج شنبه 17 خرداد 1397, 09:07 صبح
ممنون آقای افشاری. حالا اگه تو متن چندتا کلمه پاراگراف باشه اونوقت برا انجام اینکار چطوری بعد از آخرین کلمه پاراگراف موجود به بعد انتخاب بشه؟

danialafshari
پنج شنبه 17 خرداد 1397, 21:39 عصر
با سلام
منظورتون مثل زیر هست؟

پاراگراف:
-این یک متن تست برای پاراگراف سطر اول می باشد.
-این یک متن تست برای پاراگراف سطر دوم می باشد.

میتونید از اون : جلوی پاراگراف برای تمایز و تشخیص استفاده کنید
موفق باشید

رامین مرادی
یک شنبه 20 خرداد 1397, 14:44 عصر
با سلام
منظورتون مثل زیر هست؟

پاراگراف:
-این یک متن تست برای پاراگراف سطر اول می باشد.
-این یک متن تست برای پاراگراف سطر دوم می باشد.

میتونید از اون : جلوی پاراگراف برای تمایز و تشخیص استفاده کنید
موفق باشید

ممنون آقای افشاری. فقط یه مشکل عجیب پیش میاد وقتی کلمه پاراگراف: اصلا وجود نداشته باشه کل متن رو برمیگردونه:متفکر:(منظورم تو همون کد اولی هست)
در ضمن این عدد 10 برای چیه؟


string str = richTextBox1.Text;
string Result = str.Substring(str.IndexOf("پاراگراف:")+10) ;

danialafshari
یک شنبه 20 خرداد 1397, 17:39 عصر
ممنون آقای افشاری. فقط یه مشکل عجیب پیش میاد وقتی کلمه پاراگراف: اصلا وجود نداشته باشه کل متن رو برمیگردونه:متفکر:(منظورم تو همون کد اولی هست)
در ضمن این عدد 10 برای چیه؟


string str = richTextBox1.Text;
string Result = str.Substring(str.IndexOf("پاراگراف:")+10) ;



اگر چیزی درون IndexOf قرار نگیره همش رو شامل میشه و در روش دوم هم یک Exception هست که بنظرم از روش دوم استفاده کنید بهتره
شما باید قبلش Validate کنید و در صورت وجود، جستجو رو انجام بدید

public static void SelectedText(string TextSource, string SearchWord)
{
if (TextSource.Contains(SearchWord))
{
var Result = TextSource.Split(new[] { SearchWord }, StringSplitOptions.None)[1];
//MessageBox.Show(Result);
}
}

در ضمن اون 10 به این دلیل هست که IndexOf ابتدای کلمه رو پیدا میکنه و +10 نوشتم که اون کلمه رو نادیده بگیره
موفق باشید