
失礼します。
ひとつのフォルダ内に複数のテキストファイルがあります。
それらのテキストの中に書かれている内容を一括して置き換えたいのです。
例:
AAA = 150
を
AAA = 0
に、というものなのですが、
ここで2点、問題があるのです。
1点は、置き換えたい元の
AAA = 150
これは例として150と書かせてもらいました。
実際は100以上の数値なら何でも、0に書き換えたいというものなのです。
2点目は
AAA = 150
ではなく、
AAAと、=と、150の間の2つの半角スペースが
tabキーを押して入力される空白のものが使われているテキストが混在している事です。
上記の書き換え作業を既存のソフトウェアに頼らず、という事であれば、
どのようなプログラムを作るものなのでしょうか。
私まずこの部分から知識がないもので。
プログラムも色々なものあると聞きまして。
もし出来ましたら
上記のようなものだとこのようになる、といった具体的な記述など、
書いて見せて頂ければ有難いです。
失礼します。
No.4ベストアンサー
- 回答日時:
「既存のソフトウェアに頼らず」というのは確かにどう解釈していいか悩むところです。
とはいえ、ここはとりあえず極めて身勝手に
汎用のプログラミング言語ならたとえOS標準のものでなくとも「既存のソフトウェア」ではない(といってもこれもかなりあいまいではありますが)
と解釈させていただき、
Windows XP において なでしこ(1.5332) で書いた例を示します。
###ここから###
対象フォルダはマイドキュメントでフォルダ選択
対象ファイル群は対象フォルダ&「*.txt」のファイル列挙
もし(対象ファイル群の配列要素数)が0ならば
終わる
エラー監視
エラーならば
もし書込ハンドル<>「」ならば
書込ハンドルをファイルストリーム閉じる
エラーメッセージを言う
終わる
書込ハンドルは「」
対象ファイル群で反復
対象ファイルは対象フォルダ&それ
対象一時ファイルは対象フォルダで対象ファイルのユニークファイル名生成
書込ハンドルは対象一時ファイルを「書」でファイルストリーム開く。
対象ファイルを毎行読んで反復
一行はそれ
もし一行が「AAA[ {タブ}]=[ {タブ}][1-9]##*」にワイルドカード一致ならば
一行の「[1-9]##*」を「0」にワイルドカード置換して一行に代入
書込ハンドルで一行&改行をファイルストリーム書く
書込ハンドルをファイルストリーム閉じる
書込ハンドルは「」
対象ファイルを(対象ファイルを「.bak」に拡張子変更)にファイル名変更
対象一時ファイルを対象ファイルにファイル名変更
終わる
###ここまで###
念のため使用時の注意点を書きますが、テキストファイルと同じファイル名で拡張子が.bakのファイルがあると、上書きされます。また、元のファイルの最後の行に改行がない場合置換後のファイルには改行が付加されます。
参考URL:http://nadesi.com/
具体的かつ簡潔に書いていただきどうもありがとうございます。
これでやっていきたいと思います。
大変どうもありがとうございました。
No.3
- 回答日時:
テキストファイルの置換ならテキストエディタを使うのが一番。
例えば無料で使えるEmEditor Freeを使って画像のような置換処理をすれば一発終了。
プログラムを作る必要なんてない。
参考URL:http://jp.emeditor.com/modules/download2/rewrite …

No.2
- 回答日時:
既存のソフトウェアに頼らずって、アセンブラもコンパイラも使わないんです?
機械語で基本的な入出力から作ることになりますが‥‥。
揚げ足を取ってるのではなく、杓子定規に解釈するとそうなる、と言ってます。
質問者さんの要求がいまひとつ理解できません。
既存のソフトウェアを頼っていいならsedを使えば1行で済みますね。
sed /AAA[ \t]=[ \t][1-9][0-9][0-9][0-9]*/AAA = 0/
正規表現が使えるテキストエディタでも同様に可能です。
No.1
- 回答日時:
>プログラムも色々なものあると聞きまして。
>もし出来ましたら
>上記のようなものだとこのようになる、といった具体的な記述など、
>書いて見せて頂ければ有難いです。
以下のようなアルゴリズムになる。
1.読み込みたいファイルをリードモードで開く
2.結果ファイルを新規作成モードで開く
3.入力ファイルから1行読み込む。入力が尽きたら10.へ
4.読み込んだ行の先頭3文字が「AAA」か調べる。違うなら9.へ
5.行の4文字目以降「=」が現われるまで、タブとスペースを読み飛ばす。タブもスペースも「=」も現われなかったら9.へ
6.「=」の次から、タブとスペースを読み飛ばす。
7.タブでもスペースでもない文字が現われたら、そこ以降の文字列を「数値に変換」してみる。変換できなかったら9.へ
8.変換した結果、100以上で、かつ、後ろに文字が残っていないなら「AAA = 0」を結果ファイルに出力して3.から繰り返し
9.入力した行をそのまま結果ファイルに出力して3.から繰り返し
10.入力ファイルと結果ファイルを閉じる
11.入力ファイルを削除して、結果ファイルを入力ファイルの名前にリネームする
あとは「使用する言語に合わせて、アルゴリズム通りに書くだけ」です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- その他(IT・Webサービス) 少し複雑なテキスト置換がしたいです。 2 2022/10/13 14:42
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- その他(プログラミング・Web制作) プログラミング pythonの問題について 2 2022/04/19 00:41
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- フリーソフト サクラエディタの正規表現(grep機能)の使い方 3 2022/06/22 10:29
- その他(パソコン・周辺機器) Windows10でXBOX360用RAPVX-SA用の非公式ドライバがインストール出来ない 1 2023/01/10 19:37
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- 会社・職場 エレメント交換について 人によって基準が異なるので困っています。 7 2022/04/21 16:32
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語・ファイルから読み込んだ...
-
Cでexcelを読込み
-
このプログラムの解説を
-
ダイアログボックスで複数フォ...
-
VBでファイルの関連付け
-
ログ転送フラグに関して
-
C言語初心者の質問失礼します。
-
急にプログラムが正しく動かな...
-
ソースとヘッダの境界とは?
-
VBAでcsvファイルを読み込み、...
-
iniファイルに追記がしたいです。
-
include元ファイルでのgetEleme...
-
DVD動画のFlashへの取り込み
-
XMLファイルの表示について
-
xoops モジュールでの「.tplフ...
-
PCゲームについて質問です。 PC...
-
エクセル 複数のファイルから...
-
グローバル変数のよくない使い...
-
外部ファイルの読み込みと書き込み
-
スタイルシート切替はどこまで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語初心者の質問失礼します。
-
ファイル名の先頭にアンダース...
-
csvファイルを開かずに文字を検...
-
バッチで118項目のCSVを処理し...
-
CSVファイルへの保存の際、デー...
-
グローバル変数のよくない使い...
-
テキストファイルの最終行を削...
-
ドラッグアンドドロップでファ...
-
VB.NETによるプロセス間通信
-
VBAにてEXCEL以外のファイル(テ...
-
分割コンパイルの#defineについて
-
ファイルの結合
-
iniファイルに追記がしたいです。
-
VBに、Cのincludeのようなもの...
-
動画処理のライブラリについて
-
Cでのネットワークファイルの読...
-
ダイアログボックスで複数フォ...
-
C言語のfopenについて教えてく...
-
「VBScript」ADODB.Streamにお...
-
マウスポインタの変更
おすすめ情報