- 締切済み
ファイルの末尾を指定バイト数削除するには
ファイルの末尾を指定バイト数削除する方法で ・プログラミングを要するもの ・バイナリエディタを用いる方法(※) ・専用ツール(ファイル末尾カッターなど)を用いる方法 以外をご存知でしたら教えてください。 ※バイナリエディタではないソフトのバイナリエディタ機能でできるよ、 という場合は是非教えてください
- wek00
- お礼率75% (55/73)
- その他(ソフトウェア)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- astra2000t
- ベストアンサー率65% (27/41)
削除したいファイルが多数あるのならプログラムで作るのが、あとあと楽だと思います。 プログラムはPowerShell、Perl、Pyhon、PHPなどのスクリプト系が手軽でしょう。 PowerShellなら最近のWindowsには標準で入っていますから、一番楽だと思います。 処理の内容はお調べください。 バイナリエディタなら「Stirling 」というソフトがおすすめです。 私が長年愛用しているフリーソフトです。
関連するQ&A
- ファイルの終端5バイトを削除するには?
fopen()で開いたファイルを、末尾から数えて5バイト分削除するにはどのようにしたら良いでしょうか? ファイル全体のバイト数を数えて、「バイト数-5バイト」を別ファイルにコピーする方法でも結構です。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- ファイル内の1行(レコード)から指定バイト数だけを読込みたい。
ファイル内の1行(レコード)から指定バイト数だけを読込みたい。 // ファイルオープン FileInputStream fis = new FileInputStream(file); InputStreamReader isr; isr = new InputStreamReader(fis); BufferedReader result = new BufferedReader(isr); while (result.readLine() != null) { // 末尾まで移動する } 上記のようにBufferedReaderを使い、ファイルを読み込んでいるのですが、 ファイル内の1行ごとに指定バイト数だけを読み込みたいです。 readLineメソッドでは1行を全部読み込んでしまうため出来ません。 (readLineで一度他の変数へ入れてからというのは無しです。読込む時点で指定バイト数としたいのです。) readメソッドでは、行ごとの指定って出来ないですよね・・・。 ファイル操作系の知識が少ない為、なかなか探せません。 読み込む時点で1行の取得レコード長に制限値を設ける方法はないでしょうか? また、取得レコード長が制限値を超えた場合、エラーメッセージを出したいのですがその判定とかも可能でしょうか? どうかよろしくお願いします。 ロジックとしてはこんな感じにしたいです。 while(ファイルの終端まで行を読み込む){ // 読み込んだ1行が2048バイト未満かを判定 if(読み込んだ1行が2048バイトを超えている場合){ エラーメッセージを出力する(処理はそのまま続行) } 1行から2048バイト未満を取得 }
- ベストアンサー
- Java
- ファイル末尾10バイトを削る
ファイルを開き、末尾10バイトを削り、上書きする というプログラムを作成しています。 とりあえず、以下のようなソースが出来ました。 ------------------------------------------------------------------ ifp = fopen( "openfile.dat", "rb"); ofp = fopen( "outfile.dat", "wb" ); fseek( ifp, -10, SEEK_END ); pos_end = ftell( ifp ); fseek( ifp, 0, SEEK_SET ); for( pos_now = ftell( ifp ) ; pos_now < pos_end; pos_now = ftell( ifp )){ rCnt = fread( pbuf, sizeof( char ), 1, ifp ); f( rCnt == EOF ) break; fwrite( pbuf, sizeof( char ), 1, ofp ); } fclose( ifp ); *(openfile削除) *(リネーム処理:outfile.dat -> openfile.dat) 以下略 ------------------------------------------------------------------ ソースにあるとおり、 ファイルを開く -> ファイルの末尾10バイト目を記憶する。 -> アウトファイルを開く -> 記憶した位置までコピーする -> オープンファイルの削除 -> リネーム処理 という順番で処理を行っています。 本来は、 ファイルを開く -> ファイルの末尾10バイト目にEOFをいれる -> ファイルを閉じる みたいな感じでやるつもりだったのですが、うまくいきませんでした。 後者のやり方や「私ならこうする!」等アドバイスがありましたら、是非お聞かせください。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- アドレスを指定して削除できるバイナリエディタ
マウスで選択した範囲を削除できるバイナリエディタは 多数あると思います。 アドレスで指定した範囲を削除できるバイナリエディタは ありませんか? できればフリーソフトでお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- 巨大ファイルの最後の数バイトを削除したい
WINAPIのみを使って、たとえば、1ギガバイトぐらいの巨大なバイナリデータファイルがあって、このファイル最後から数バイト分を削除したい場合はどのようにやるのでしょうか? WriteFile()、SetFilePointer()などの組み合わせを探してみましたが、最適なものがみつからないです。 地道に1ギガ分のバイナリデータを最初からコピーするしかないのでしょうか?
- ベストアンサー
- C・C++・C#
- CSVファイルの末尾のコンマ削除
Excelを使ってCSVファイルを作りました。各行の長さが違うので、末尾に大量のコンマがありますが、途中の連続コンマを削除せずに末尾の連続コンマだけ削除する方法はありますか。 (現状) Ressya.,,,,,,,,,, Syubetsu=0,,,,,,,,,, EkiJikoku=020,021,,,025,026,027,,028,029,030 (目標) Ressya. Syubetsu=0 EkiJikoku=020,021,,,025,026,027,,028,029,030 (条件) 目的:OudiaSecondに貼り付ける コンマ区切り(スペース区切りは不可) Excel以外のソフトを使用しても可
- 締切済み
- Excel(エクセル)
- 固定長ファイルのバイナリ表示と編集ができるエディタを探しています
指定バイト数で折り返して表示する固定長ファイルに対して、 バイナリ表示と編集ができるエディタを探しています。 通常のバイナリエディタだと、16文字分を1行として表示しますが、 それを任意で指定したいです。 用途はCOBOLで作成した固定長ファイルを表示するためです。 フリーソフトでそのようなソフトはありませんでしょうか。 昔、NECの『日本語ファイルメンテナンス』という ソフトを使ったことがあります。(有償ですが)。
- ベストアンサー
- その他(業務ソフトウェア)
- 浮動小数点(float)型の16進数->10進数の変換
16進数->10進数の変換について教えてください。 -ファイルをバイナリエディタで見てみると、該当箇所は41 20 00 00(16進)となっています。 -4byte長のfloat型であることもわかっています。 -BiG Endianです。 ビッグエンディアンなので0x00002041という事だと思いますが、これを10進数に直すとどうなるのでしょうか? また、直し方のわかるサイトなんかがあれば教えていただけますでしょうか? よろしくいお願いします。
- ベストアンサー
- 数学・算数
- ファイルを16進数で見るには
ファイルをまるごとそのまま16進数に変換し,それをテキストファイルにしたいのですが,フリーウェア等ないでしょうか。逆に,記述した16進数をバイナリファイルにする機能もあると良いです。 :WindowsXP .
- 締切済み
- その他(プログラミング・開発)
- AIXでの指定ディレクト以下の全ファイル削除について
お世話になっております。 AIX5.1のOSで、指定ディレクトリ以下(ファイルのみしか存在しない)ファイルを全て自動で削除するようにシェルを組むことは可能でしょうか? 以下のようにシェルを作成しましたが、ファイル数が多すぎるらしくエラーで削除することができませんでした。 ちなみに、ファイル数は約4000以上あります。 rm -f /(指定ディレクトリ)/* ファイル数が多くても削除できるようにしたいのですが、何かよい方法はありますでしょうか? 以上宜しくお願い致します。
- ベストアンサー
- その他(ITシステム運用・管理)
お礼
削除依頼は受け付けられませんでした。 日頃の行いのせいで罰が当たったのでしょうね。 戒めといたします。 本当にありがとうございました。
補足
(T_T)