0

こんにちは、すべての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();

しかし、それは正しく機能しません-ファイルの先頭に削除する必要がある文字列をコピーし、すべて削除する必要があります。シンボル、どこが間違っていますか?

4

1 に答える 1