PDA

View Full Version : پاک کردن عبارتی از فایل



mahdishahidi
دوشنبه 10 آبان 1395, 19:11 عصر
سلام
یک تکه کد مبخوام که بگرده توی یک فایل دنبال چند رشته متن و اگر پیدا کردشون پاک کنه (ممکنه بیشتر از یک بار تکرار بشن این متن ها)
case sensitive هم نباید باشه

این هم کد:

static void DeleteLines(string filename, string searchText) {
bool searchTextFound = false;
var filteredLines = File.ReadLines(filename).Where(line => !(searchTextFound = line.Contains(searchText)));
if (searchTextFound)
{
string destFilename = Path.GetTempFileName();
File.WriteAllLines(destFilename, filteredLines);
File.Delete(filename);
File.Move(destFilename, filename);
} else {
MessageBox.Show("not found....");
}
}

نمیدونم چرا یکسره not found میده و شرط منفی میشه

Mahmoud.Afrad
سه شنبه 11 آبان 1395, 13:03 عصر
string allText = File.ReadAllText(filename);
if (allText.Contains(searchText))
{
string filteredLines = allText.Replace(searchText, String.Empty);
string destFilename = Path.GetTempFileName();
File.WriteAllText(destFilename, filteredLines);
File.Delete(filename);
File.Move(destFilename, filename);
}
else
{
MessageBox.Show("not found....");
}

mahdishahidi
دوشنبه 17 آبان 1395, 21:58 عصر
string allText = File.ReadAllText(filename);
if (allText.Contains(searchText))
{
string filteredLines = allText.Replace(searchText, String.Empty);
string destFilename = Path.GetTempFileName();
File.WriteAllText(destFilename, filteredLines);
File.Delete(filename);
File.Move(destFilename, filename);
}
else
{
MessageBox.Show("not found....");
}

فایل خیلی خوب کارمیکنه
تنها مشکل اینجاست که بعد از اجرای این کد کنار آیکون فایل یک قفل زرد رنگ میاد و اون فایل برای برنامه دیگر من غیر قابل استفاده میشه
این هم عکس برنامه:
http://s8.picofile.com/file/8273818600/icon.JPG