- ベストアンサー
テキストファイルの最終行を消すには。
C#を使っていますが、だいたい同じだと 思いますのでVBで質問します。 テキストファイルの最終行を 消したいのですが、いい方法は、 ないでしょうか。 (指定行を消す方法でも) お願いします。
- みんなの回答 (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(); }
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
テキストファイルがシーケンシャルファイルとすると、一般のファイルアクセスメソッドを使う限り、削除すると言う概念はありません。削除した別のファイルを先頭から作り直しになるはずです。 ランダムアクセスは別の仕組みですが。高等なファイルアクセスメソッドでは、それができる風に見せかける仕組みがつくられてますが。
お礼
回答ありがとうございます。 簡単な命令があると思ったのですが、 なさそうですね。 最後の改行をたよりに、ファイルを 修正して、保存しなおそうと思っています。
- fortranxp
- ベストアンサー率26% (181/684)
ADOでしたら Recordset.MoveLast Recordset.MovePrevious Recordset.Delete ではどうですか。
お礼
回答ありがとうございます。 簡単な命令があると思ったのですが、 なさそうですね。 データベースとして使えば なんとかなりそうですけど、 簡単なものなので、データベース までは、考えられないのです。
line input で読み込んで指定行を削除したあと、というか 指定行をとばして、print で保存したらどうでしょうか? 定石かどうか知りませんが・・・
お礼
回答ありがとうございます。 簡単な命令があると思ったのですが、 なさそうですね。 全部を読み込んで、最後の改行 以下を削除することになりそうです。
お礼
非常に丁寧な回答ありがとうございます。 簡単な命令があると思ったのですが、 なさそうですね。 最後の改行を頼りに作り直そうとは 思ったのですが、1050YENさんの回答を そのまま、使ってみようと思います。 ありがとうございました。