こんにちは、すべてのcsvファイルで行の削除を実現しようとしています。ファイルの例:
24 august 2013 г.,,14:00,00:00,;
24 august 2013 г.,,14:00,00:00,;
24 august 2013 г.,2342,14:00,00:00,23424;
24 august 2013 г.,2342,14:00,19:00,23424;
criteria - 24 august 2013 г.,2342
結果は次のようになる必要があります
24 august 2013 г.,,14:00,00:00,;
24 august 2013 г.,,14:00,00:00,;
私のアイデアオープンファイル -
FileStream fs = new FileStream(filePath, FileMode.Open,
FileAccess.ReadWrite);
StreamReader sr = new StreamReader(fs);
すべてのデータを配列に取得する
string lines = sr.ReadToEnd();
string []result = lines.Split(';');
データを削除するための条件を取得するよりも (文字列)
string criteria = dateTimePicker1.Text.ToString()+','
+eventNameDeleteTextBox.Text.ToString();
sr.Close();
配列で検索し、
int startStr = lines.IndexOf(criteria);//find start position
int length = lines.IndexOf(';',startStr)-startStr;//find end position
文字列を削除 dataRemoved = lines.Substring(startStr,length); viewTextBox.Text = dataRemoved;
ファイル更新データを書き込む
FileStream fs1 = new FileStream(filePath, FileMode.Open,
FileAccess.Write, FileShare.None);
StreamWriter sw = new StreamWriter(fs1);
sw.WriteLine(dataRemoved);
sw.Close();
しかし、それは正しく機能しません-ファイルの先頭に削除する必要がある文字列をコピーし、すべて削除する必要があります。シンボル、どこが間違っていますか?