プロが教える店舗&オフィスのセキュリティ対策術

自分で書きためたメモが複数のテキストファイルになっています。
それを読むとき、一つずつ開くのは面倒です。
そこで複数のテキストファイルを一つのテキストファイルにまとめたいのです。
単純に結合するだけであれば、既にいくつもの答えが出ています。
しかし、それでは、どこからどこ迄がどのファイルであったか分かりません。
そこで、結合後のテキストファイルに、元のファイル名と最終更新日時と区切り線を入れたいのです。
例えば
abc.txt (2019.05.03 13:45) ***********************************
として、この後に abc.txt を表示するように。
十数年前、在職中に C でプログラムで書いた記憶があるのですが、今、再度トライするのは少々しんどいので。
よろしくお願いします。

A 回答 (4件)

これくらいでしたら、スクリプト/バッチファイルでもできそうですね。


例として Windows のバッチファイルですが、

@echo off
set TARGET=%1

if exist %TARGET% del %TARGET%

:LOOP
shift
if "%1" == "" goto :EOF
echo %1 (%~t1) ********* >>%TARGET%
type %1 >> %TARGET%
goto LOOP

を join.bat などの名前で保存して、コマンドラインで

join.bat target.txt abc.txt def.txt ghi.txt

とかすると、target.txt に結合したテキストが保存されます。
    • good
    • 1
この回答へのお礼

ありがとうございます。
昔Cで作ったときには、各ファイルを一文字ずつ読んではまとめ先のファイルに1文字ずつ書き込んでいました。
こんなに簡単にできるとは、隔世の感がありますね。
試してみます。

お礼日時:2019/05/25 10:51

結合するファイルの順序はでたらめでも良いのでしょうか。

それともファイルの名前順とかファイルの最終更新日時順とか、指定があるのでしょうか。
perlとかrubyとかなら簡単にできますが、C言語でないといけないのでしょうか。
    • good
    • 0
この回答へのお礼

ありがとうございます。
Cは私が昔プログラミングしたことがあるというだけです。
perlやrubyは取り組んだことがありません。
簡単にできるなら挑戦したいと思いますが・・・

お礼日時:2019/05/25 10:52

C++17 以降を使用してもいいのなら、std::filesystem の last_write_time でファイルの最終更新日時を取得できますね。

    • good
    • 0

ISO C の範囲では「最終更新日時」がわからないから無理じゃないかなぁ.

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!