• ベストアンサー

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

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

  • rheda
  • お礼率69% (257/372)

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

  • ベストアンサー
回答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/17068)
回答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

  • テキストファイルの最終行の削除

    C++Builder6です。 テキストファイルの最終行だけを削除する方法を 探しています。 詳しく言えば、ファイルを開けないで、最後にある 改行コード?のみを削除したいです。 よろしくお願いします。

  • VB2005でテキストファイルの操作

    vb2005でテキストファイルを開き任意の行の編集を行いたい 最終行に追加する方法はわかったのですが 任意の行の編集方法がどのように実装してよいのかわかりません 編集したいテキストファイルは 各行の長さはまちまちです 普段は追記で文章が追加されますが 一定行になると再び最初の行(もしくは指定の行)から 上書きというのは可能なのでしょうか?

  • テキストファイルから最終行の抽出

    テキストファイルに出力された内容のうち、 最終行のみ抽出し、他のテキストファイルに 落とし込みたいと考えています。 DOSコマンドを使用して実現したいと思うのですが 良い方法などございましたら、ご教授ください。 宜しくお願い致します。 ※OSはWindows Server 2003を使用しています。

  • テキストファイルの最終行を削除したいのですが

    初めまして。 batかVBSのプログラムで、テキストファイルを開いて最終行のみを削除したいのですが、どうしても実現が出来ません。 もし分かる方がおられましたら、是非ともご教授をお願い致します。

  • テキストファイルの行を指定して読み込み

    テキストファイルの読み込みたい行を指定して テキストボックスに表示させたいのですが、 どのようにすればよいでしょうか? StreamReaderには一行分の文字を読み取るReadLine メソッドがありますが、行は指定はできないようです。 良い方法があればアドバイスを頂きたいです。 よろしくお願いします。 --- 開発環境:VS2005 pro OS:Vista

  • テキストファイルの行を上下入れ替えるには?

    テキストファイルの行の上下を入れ替えたいです。 例えば4行あるとすると、最初の行を最終行、2行目を3行目、3行目を2行目、最終行を最初の行にしたいです。 かなりの行数があるのでコピペでは大変なので自動でできるようにしたいです。 どうすれば簡単にできるでしょうか?

  • vb2008 テキストファイルを開くには?

    vb2008 テキストファイルを開くには? VB2008を使用している者です。今回もアドバイス宜しくお願い致します。 あるテキストファイルをOPENしたいと思っているのですが、やり方がわかりません。 VB2008でファイルを開く方法として一般的なのがOpenFileDialogを使用した方法ですが、 これだといちいち開きたいファイルを指定しなければなりません。その都度ファイルを 指定するのではなく、開きたいファイルをピンポイントで開きたいのです。 いろいろ検索しましたが、全くヒットしませんでした。 皆様のご指導、宜しくお願い致します。

  • 二つのテキストファイルを行単位で交互に一つに

    10000行のテキストファイルが二つあります。 二つのテキストファイルの内容を行単位で交互に結合させて一つのテキストファイルにまとめたいのですが 例えると下記のようにしたいです。 二つのテキストファイルA.txtとB.txtがあるとします。 ---------------------------------------------- A.txt ああああああああああああああ ささささささささささささささささ ななななななななななななななな ------------------------------------------------ ------------------------------------------------ B.txt かかかかかかかかかかかかかか たたたたたたたたたたたたたた はははははははははははははは ----------------------------------------------- A.txtとB.txtの内容を行単位で交互に一つのテキストファイルとしてC.txtのように保存したいです。 ----------------------------------------------- C.txt ああああああああああああああ かかかかかかかかかかかかかか ささささささささささささささささ たたたたたたたたたたたたたた ななななななななななななななな はははははははははははははは ---------------------------------------------- 検索して調べてみたのですが Pasteコマンドで実現させる方法を試してみたのですが うまくいかず、もしかしたらWindowsにもともと備わっていない機能なのではないかと思い検索したらbusybox64.exeを ダウンロードしてインストールしようと思いましたが コマンドプロンプトにbusybox64.exe --installを 入力してみますとうまく生きました。 busyboxを使わずに行単位で交互にテキストファイルを結合させる方法も知りたいです。 よろしくお願い致します。 返答をお待ちしております。

  • 最終行をファイルを開かずにカットする方法はありますか?

    UNIXのviでファイルを開くと最終行が不完全といわれてしまいます。最後に半角スペースと変な文字が入っているようです。 viエディタのコマンドで、DDを押し最終行を手動でカットすると直るのですが、 Cやシェルなどで最終行をカットする方法はありますでしょうか?

  • テキストファイルの行抽出

    linux環境のプログラムについて質問です。 ある特定のファイル(テキストファイル)内のデータで 指定の行を抽出する方法を教えていただきたいと思います。 現在はawkを使用してbashスクリプト内で下記のように head, tailを使用していますが、処理が重いように 感じます。perlまたはawkなどで行抽出の軽い処理は できないでしょうか? (他のunixコマンドでも結構です。) ---------------------------------------- RNUM=`awk 'END{print NR}' $1` #行番号取得 for iwl in `seq 1 $RNUM`;do BASE=`head -n $iwl $1 | tail -n 1` done #iwl ---------------------------------------- Fortran, Cなども使えますが、色々組み合わせて使う上で bash内のスクリプトで行ないたいと思います。

専門家に質問してみよう