View Full Version : جستجو در فایل txt
s.Jabbari
شنبه 10 بهمن 1388, 14:25 عصر
من یک فایل txt دارم.میخوام توش جستجو کنم و سطری رو که ali داشته باشه برگردونه.
میشه یا نه؟؟
s.Jabbari
شنبه 10 بهمن 1388, 22:04 عصر
جستجو رو خودم ردیف کردم
کسی میدونه چطوری میشه یک سطر از فایل متنی رو پاک کرد؟؟؟
Salar Ashgi
شنبه 10 بهمن 1388, 23:38 عصر
سیستم فایلینگ مثل سیستم پایگاه داده ای نیست که شما هر رکوردی که خواستید حذف کنید ،
عموما ما تو فایل دسترسی ترتیبی داریم و نه تصادفی !
کارشدنیه ، ولی زیاد بهینه نیست !
مثل فایل رو با دستور File.Delete حذف کرده و تمام اطلاعات به جز اطلاعات مورد نظر رو در فایل write
کنید .
موفق باشید .
Netsky
یک شنبه 11 بهمن 1388, 01:35 صبح
جستجو رو خودم ردیف کردم
سلام .
دوست عزیز اگه راه حلش رو پیدا کردی واسه ما هم بزار .
شاید سوال خیلی ها باشه . یکیش خود من !!!
Yasersadegh
یک شنبه 11 بهمن 1388, 10:07 صبح
سلام خدمت همه دوستان
جستجو رو خودم ردیف کردم
کسی میدونه چطوری میشه یک سطر از فایل متنی رو پاک کرد؟؟؟
دوست عزیز همونطور که استاد گرامی salar_cpp_cs فرمودند کار با سیستم فایلینگ به راحتی کار با پایگاه داده نیست!! برایه حذف یک سری داده از فایل راه هایی هر چند غیر بهینه و سخت وجود دارد که بستگی به داده های موجود در فایل دارد!!
یکی از راه ها روشی است که استاد گرامی salar_cpp_cs اشاره کردند!! که این روش تقریبا برایه همه نوع داده ای جواب میده ولی سرعت رو پایین میاره و بهینه نیست! به این روش حذف فیزیکی گفته می شود!
اما اگه در فایل هر سطر از داده ها مشخص است و می خواهید سطر به سطر حذف کنید می تونید یه بیت فلگ1 (0یا1) در ابتدای هر سطر قرار بدید و هر سطری که حذف شد آن بیت را 0 کنید. موقع نمایش یا جستجو هم سطرهایی که با 1 شروع میشوند را در نظر بگیرید! هنگام اضافه کردن سطر جدید هم بر روی سطرهایی که 0 هستند بنویسید!! یعنی در واقع از حذف منطقی استفاده کنید!!
موفق باشید:چشمک:
s.Jabbari
یک شنبه 11 بهمن 1388, 16:07 عصر
این کد فقط یک سطر رو برمی گردونه.یعنی اولین سطری که حاوی متن مورد نظر ماست.
کسی میتونه این رو یه جوری تغییر بده که همه ی سطر های مورد نظر رو برگردونه؟
fs = new FileStream(@"c:\jabbari.txt", FileMode.Open, FileAccess.ReadWrite);
StreamReader s = new StreamReader(fs);
string currentLine;
string searchString = searchtext.Text;
bool foundText = false;
string tr="";
do
{
currentLine = s.ReadLine();
if (currentLine != null)
{
foundText = currentLine.Contains(searchString);
tr = currentLine;
}
}
while (currentLine != null && !foundText);
if (foundText)
{
ttarget.Text = tr;
}
else
MessageBox.Show("Not find "+ searchtext.Text,"Error");
s.Close();
fs.Close();
aminh85
یک شنبه 11 بهمن 1388, 16:19 عصر
من با این کد جواب گرفتم!
string Names = newstring[100];
string Datas = newstring[100];
string myflag = newstring[100];
StreamReader sr = newStreamReader("d:\\names.dat");
while (!sr.EndOfStream)
{
//txt.Text = sr.ReadToEnd();
Names[i] = sr.ReadLine();
if (Names[i]=="ali")
MessageBox.Show("ok");
txt.Text = txt.Text + Names[i];
Datas[i] = sr.ReadLine();
txtd.Text = txtd.Text + Datas[i];
i++;
}
sr.Close();
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.