• ベストアンサー

テキストファイルの最終行を消すには。

C#を使っていますが、だいたい同じだと 思いますのでVBで質問します。 テキストファイルの最終行を 消したいのですが、いい方法は、 ないでしょうか。 (指定行を消す方法でも) お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

参照に Microsoft VisualBasic .NET Runtime を追加で static void Main(string[] args) { // // TODO: アプリケーションを開始するコードをここに追加してください。 // string filepath = "C:\\新規テキスト文書.txt"; System.Text.Encoding enc = System.Text.Encoding.GetEncoding(932); System.IO.StreamReader sr = new System.IO.StreamReader(filepath, enc); string[] ss = Microsoft.VisualBasic.Strings.Split(sr.ReadToEnd(),"\r\n",-1, Microsoft.VisualBasic.CompareMethod.Binary); sr.Close(); System.IO.StreamWriter sw = new System.IO.StreamWriter(filepath, false, enc); sw.Write(string.Join("\r\n",ss,0,ss.Length-1)); sw.Close(); }

rheda
質問者

お礼

非常に丁寧な回答ありがとうございます。 簡単な命令があると思ったのですが、 なさそうですね。 最後の改行を頼りに作り直そうとは 思ったのですが、1050YENさんの回答を そのまま、使ってみようと思います。 ありがとうございました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

テキストファイルがシーケンシャルファイルとすると、一般のファイルアクセスメソッドを使う限り、削除すると言う概念はありません。削除した別のファイルを先頭から作り直しになるはずです。 ランダムアクセスは別の仕組みですが。高等なファイルアクセスメソッドでは、それができる風に見せかける仕組みがつくられてますが。

rheda
質問者

お礼

回答ありがとうございます。 簡単な命令があると思ったのですが、 なさそうですね。 最後の改行をたよりに、ファイルを 修正して、保存しなおそうと思っています。

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.2

ADOでしたら Recordset.MoveLast Recordset.MovePrevious Recordset.Delete ではどうですか。

rheda
質問者

お礼

回答ありがとうございます。 簡単な命令があると思ったのですが、 なさそうですね。 データベースとして使えば なんとかなりそうですけど、 簡単なものなので、データベース までは、考えられないのです。

noname#27115
noname#27115
回答No.1

line input で読み込んで指定行を削除したあと、というか 指定行をとばして、print で保存したらどうでしょうか? 定石かどうか知りませんが・・・

rheda
質問者

お礼

回答ありがとうございます。 簡単な命令があると思ったのですが、 なさそうですね。 全部を読み込んで、最後の改行 以下を削除することになりそうです。

関連するQ&A