Зависит от того, о чем Вы заботитесь. Если Вы подразумеваете, что СТЕННОЕ ВРЕМЯ (как в, время на часах на Вашей стене), time.clock () не обеспечивают точности, потому что это может управлять процессорным временем.
Если строка, которую вы хотите удалить, основана на содержимом строки:
string line = null;
string line_to_delete = "the line i want to delete";
using (StreamReader reader = new StreamReader("C:\\input")) {
using (StreamWriter writer = new StreamWriter("C:\\output")) {
while ((line = reader.ReadLine()) != null) {
if (String.Compare(line, line_to_delete) == 0)
continue;
writer.WriteLine(line);
}
}
}
Или, если она основана на номере строки:
string line = null;
int line_number = 0;
int line_to_delete = 12;
using (StreamReader reader = new StreamReader("C:\\input")) {
using (StreamWriter writer = new StreamWriter("C:\\output")) {
while ((line = reader.ReadLine()) != null) {
line_number++;
if (line_number == line_to_delete)
continue;
writer.WriteLine(line);
}
}
}
Вы работаете в операционной системе Unix?
Вы можете сделать это с помощью редактора потока "sed". Прочтите страницу руководства для "sed"
Лучший способ сделать это - открыть файл в текстовом режиме, прочитать каждую строку с помощью ReadLine (), а затем записать ее в новый файл с помощью WriteLine (), пропуская одну строку. вы хотите удалить.
Насколько мне известно, не существует универсальной функции удаления строки из файла.
Один из способов сделать это, если файл не очень большой, - загрузить все строки в массив:
string[] lines = File.ReadAllLines("filename.txt");
string[] newLines = RemoveUnnecessaryLine(lines);
File.WriteAllLines("filename.txt", newLines);
Вы можете использовать для этого универсальные шаблоны C #, чтобы упростить задачу:
var file = new List<string>(System.IO.File.ReadAllLines("C:\\path"));
file.RemoveAt(12);
File.WriteAllLines("C:\\path", file.ToArray());
Прочтите и запомните каждую строчку
Определите ту, от которой вы хотите избавиться из
Забудьте об этом
Напишите остальное поверх файл
Что? Используйте открытие файла, позицию поиска, затем строку стирания потока с использованием null.
Понял? Просто, поток, без массивов, которые съедают память, быстро.
Эта работа на vb .. Пример строки поиска culture = id, где культура - это имя, значение, а идентификатор - значение, и мы хотим изменить его на культуру = en
Fileopen(1, "text.ini")
dim line as string
dim currentpos as long
while true
line = lineinput(1)
dim namevalue() as string = split(line, "=")
if namevalue(0) = "line name value that i want to edit" then
currentpos = seek(1)
fileclose()
dim fs as filestream("test.ini", filemode.open)
dim sw as streamwriter(fs)
fs.seek(currentpos, seekorigin.begin)
sw.write(null)
sw.write(namevalue + "=" + newvalue)
sw.close()
fs.close()
exit while
end if
msgbox("org ternate jua bisa, no line found")
end while
вот и все .. использовать #d