PDA

View Full Version : سوال: خواندن متن از یک فایل txt و تقسیم آن بین textbox ها



c-sharp_South
شنبه 21 اردیبهشت 1392, 21:28 عصر
سلام دوستان.
یک سوال داشتم.
میخوام یک سری اطلاعات و متن رو توی یک فایل متنی ذخیره کنم.
فرض کنید متنم اینه:


ID#
mehdi.izadi
pw#
123456
About#
Man Motevalede Sale 1370 Hastam
Dar Shahre Shiraz Be Donya Umadam
Va Dar Daneshgah Azade Shahremun
Dar Reshte Hesabdari Dars Mikhunam
Intertersting#
networking
programming
accounting
footbal
End#

خب الان موقع Form Load برنامه بیاد متن بعد از ID# تا قبل از pw# رو توی textBox1 قرار بده.
متن بعد از pw# و قبل از About# رو در textBox2 قرار بده.
متن بعد از About# و قبل از Intertersting# رو در richtextBox1 قرار بده.
و متن بعد از Intertersting# تا قبل از end# رو هم در richtextBox2 قرار بده.

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

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

mousa1992
شنبه 21 اردیبهشت 1392, 21:50 عصر
سلام

از این روش میتونی متن فایل txt رو بخونی

System.IO.StreamReader sr = new System.IO.StreamReader(@"C:\Users\ASUS\Desktop\New Text Document (2).txt");
string text = sr.ReadToEnd();
sr.Close();

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

string age=text.Substring(text.IndexOf("#age"+4,text.IndexOf("عنصر بعدی "));

موفق باشی

c-sharp_South
شنبه 21 اردیبهشت 1392, 22:19 عصر
مرسی . واسه خواندن فایل متنی رو فهمیدم چی شده . جداسازی رو متوجه نشدم.
ممکنه بر اساس مثال خودم جداسازی رو یک مثال بزنید که مثلا:
متن بعد از About# و قبل از Intertersting# رو در richtextBox1 قرار بده.

mousa1992
شنبه 21 اردیبهشت 1392, 22:28 عصر
عذر میخوام بابت تاخیر
string about = text.Substring(text.IndexOf("About#") + 6, text.IndexOf("Intertersting#"));

ببینید تو این کد ما یک قسمتی از رشته رو انتخاب میکنیم و پارامتر اول اندیس شروع متن مورد نظرمون رو میگیره و پارامتر دوم پایانشو - ما دقیقا میخوای بعد از اتمام # مربوط به ABOUT متن رو بگیریم و تا اغاز رشته ی interesting# و با استفاده از متدهای indexOf اندیس رشته های مورد نظر رو پیدا میکنیم

موفق باشی

c-sharp_South
شنبه 21 اردیبهشت 1392, 22:49 عصر
مرسی این رو کامل فهمیدم. :بوس::قلب:
فقط نفهمیدم اینکه اون قسمت تعیین شده در کدوم textbox یا richtextbox نشان داده بشه رو چرا تعیین نکرده؟
مثلا همین قسمت باید در richtextBox1 نشان داده بشه. :قلب:

mousa1992
شنبه 21 اردیبهشت 1392, 23:10 عصر
دوست خوبم شامل توی هر فایل اطلاعات چندین نفرو دارید درسته ؟
منظورتون اینه که نمیدونین اطالاعاتی رو که خوندید بریزید مثلا توی richtextBox 1 یا 2 ؟

c-sharp_South
شنبه 21 اردیبهشت 1392, 23:25 عصر
دوست خوبم شامل توی هر فایل اطلاعات چندین نفرو دارید درسته ؟
منظورتون اینه که نمیدونین اطالاعاتی رو که خوندید بریزید مثلا توی richtextBox 1 یا 2 ؟

آره دقیقا . نمیدونم چطوری اطلاعات جدا شده رو بریزم توی richtextbox1 یا 2 :گیج:

mousa1992
شنبه 21 اردیبهشت 1392, 23:37 عصر
دوست عزیز این مشکل هم به راحتی حل میشه شما ی مشخصه توی فایلتون دارید که اطلاعات مربوط به هر نفر رو از هم جدا میکنه ( مرز بین رکورد هارو تعیین میکنه ) که اون end# هست
خب با استفاده از کد زیر

string[]splited = text.Split(new string[] { "end" }, StringSplitOptions.None);
foreach (string st in splited)
label1.Text += "\n" + st;

میاین اطلاعات مربوط به هر فرد رو میریزید توی یک خانه از ارایه ای که تعریف شده - در واقع متنتون بر اساس کلمه کلیدی end# از هم جدا میشه و ریخته میشه توی ارایه و حالا من اینجا برا نمونه اونا رو توی ی لیبل نشون دادم ولی شما میتونید با ی حلقه foreach مثل بالا اونارو به ترتیب بریزید توی richtextbox ها و یا کنترل های مربوط به خودشون

موفق باشید