0

最初の行をスキップしてテキストファイルに書き込みたいのですが、それ以外の場合はすべて上書きします。ファイルから読み込んでいる配列があり、テキストファイルのデータを修正する必要がある場合は、それを使用してデータを保存および操作し、すぐにデータを書き戻したいと考えています。元のテキストファイルには、タブで区切られた2つの列と、保持したい上部の1行があります。

ありがとう、

アマンダ

4

2 に答える 2

1

あなたはこれを試すことができます:

var content = System.IO.File
    .ReadLines(file_path)
    .Skip(1)
    .ToArray();

これで、ヘッダー行ではなく、コンテンツのみを含む配列ができました。ですから、これを心ゆくまで修正してください。

次に、ヘッダー行を保持するには、次のようにして書き戻します。

System.IO.File.WriteAllLines(
    file_path,
    System.IO.File
        .ReadLines(file_path)
        .Take(1)
        .Concat(content));

それはあなたのために働きますか?

于 2012-11-06T01:36:03.837 に答える
1

次の手順に従って実行できます。

  1. を使用してすべての行を読みますReadAllLines method

    string[] lines = System.IO.File.ReadAllLines(@"File Path");
    

    lines[0]安全を保つために、で何かを変更する以外は何でも変更します。

  2. 最初の行をスキップして、残りの変更可能な行を取得し、それを保持します。

    lines = lines.Skip(1).ToArray();
    
  3. 最初の行変更可能な行と連結して、ファイルに書き込む新しい配列を作成します。

    var newLines = new string[] { lines[0] }.Concat(lines);
    
  4. を使用してすべての行を書き戻しますWriteAllLines method

    System.IO.File.WriteAllLines(@"File Path", newLines);
    

注:この方法では、実際のファイルに対して2回のIO呼び出しを行う必要はありません。これは、コストのかかる操作です。

于 2012-11-06T01:25:51.850 に答える