Вот тут есть обсуждение и пример c# кода:Всем привет, подскажите как кодом c# удалить первую строку из файла ( не из списка).
Можете брать строку этим способом без удаления.спасибо, но мне нужно взять без удаления и потом, в случае совпадения строк, удалить эту строку
Проверял код, работало удаление.так почему-то не работает, пробовал
Привет. Так можно:Всем привет, подскажите как кодом c# удалить первую строку из файла ( не из списка).
IZennoList MyList = project.Lists["MyList"];
string LoneTxt = MyList[0];
//Будет всегда браться только первая строка, без сортировки и без удаления
//Если потом нужно будет добавить удаление, то добавляем:
MyList.RemoveAt(0);
//Если нужно, чтобы была сортировка и файл не оставался пустым, то:
MyList.Add(LoneTxt);
Заработало, надо было просто прописать разные имена переменных, которым присваивается значение первой строки.Проверял код, работало удаление.
string text = List2[0];
for (int i = 0; i < list.Count; i++) {
string str = list[i].Split(';')[1];
string a = list[i].Split(';')[0];
if (str == text)
return a;
list1.Add(a);
List2.RemoveAt(0);
}
этот код не решил проблему. Результат такой жеC#:string text = List2[0]; for (int i = 0; i < list.Count; i++) { string str = list[i].Split(';')[1]; string a = list[i].Split(';')[0]; if (str == text) list1.Add(a); } List2.RemoveAt(0);
string path1 = @"C:\Users\akolb\OneDrive\Desktop\pairs.txt";//список пар мыло;токен
string path2 = @"C:\Users\akolb\OneDrive\Desktop\tokens.txt";//список токенов
string path3 = @"C:\Users\akolb\OneDrive\Desktop\mails.txt";//список мыл
string[] pairs = File.ReadAllLines(path1);
string[] tokens = File.ReadAllLines(path2);
List<string> mails = new List<string>();
foreach(string pair in pairs){
project.SendInfoToLog(pair,true);
if(tokens.Contains(pair.Split(';')[1]))
mails.Add(pair.Split(';')[0]);
}
File.WriteAllLines(path3, mails, Encoding.UTF8);
Это гениально! Работает! Спасибо!C#:string path1 = @"C:\Users\akolb\OneDrive\Desktop\pairs.txt";//список пар мыло;токен string path2 = @"C:\Users\akolb\OneDrive\Desktop\tokens.txt";//список токенов string path3 = @"C:\Users\akolb\OneDrive\Desktop\mails.txt";//список мыл string[] pairs = File.ReadAllLines(path1); string[] tokens = File.ReadAllLines(path2); List<string> mails = new List<string>(); foreach(string pair in pairs){ project.SendInfoToLog(pair,true); if(tokens.Contains(pair.Split(';')[1])) mails.Add(pair.Split(';')[0]); } File.WriteAllLines(path3, mails, Encoding.UTF8);
Подскажи, как правильно сделать, чтобы e-mail'ы дописывались в список, а не перезаписывались?C#:string path1 = @"C:\Users\akolb\OneDrive\Desktop\pairs.txt";//список пар мыло;токен string path2 = @"C:\Users\akolb\OneDrive\Desktop\tokens.txt";//список токенов string path3 = @"C:\Users\akolb\OneDrive\Desktop\mails.txt";//список мыл string[] pairs = File.ReadAllLines(path1); string[] tokens = File.ReadAllLines(path2); List<string> mails = new List<string>(); foreach(string pair in pairs){ project.SendInfoToLog(pair,true); if(tokens.Contains(pair.Split(';')[1])) mails.Add(pair.Split(';')[0]); } File.WriteAllLines(path3, mails, Encoding.UTF8);
string path1 = @"C:\Users\akolb\OneDrive\Desktop\pairs.txt";//список пар мыло;токен
string path2 = @"C:\Users\akolb\OneDrive\Desktop\tokens.txt";//список токенов
string path3 = @"C:\Users\akolb\OneDrive\Desktop\mails.txt";//список мыл
string[] pairs = File.ReadAllLines(path1);
string[] tokens = File.ReadAllLines(path2);
List<string> mails = new List<string>(File.ReadAllLines(path3).ToList());//занесем во временный список уже собранные мыла
foreach(string pair in pairs){
if(tokens.Contains(pair.Split(';')[1]))
if(!mails.Contains(pair))//и будем добавлять в него только те мыла, которых нет. Так избавимся от возможности появления дублей
mails.Add(pair.Split(';')[0]);
}
File.WriteAllLines(path3, mails, Encoding.UTF8);//и все-таки перезапишем файл в конце
File.AppendAllLines(path3, mails.ToList(), Encoding.UTF8);
для простого добавлениятам нужно пустую строку добавить в начале потому, что потом первую строку добавляет в конец последней существующей строки, то есть выглядит так:или просто поменяйте последнюю строчку в прошлом коде на этуFile.AppendAllLines(path3, mails.ToList(), Encoding.UTF8);
для простого добавления