- ベストアンサー
行頭、行末に任意の文字を挿入するフリーウェアを探しています
------------- ABCDE FGHIJ ------------- 上記のようなテキストデータファイルが6000個くらいあるのですが、 下記のように、行頭と行末の両方に任意の文字を挿入したいのですが、こういった作業を一括でしてくれる便利なソフトはないでしょうか? もしご存知でしたら、教えていただけたら幸いです。 なにとぞ、よろしくお願いいたします。 ------------ <html> ABCDE FGHIJ </html> ------------
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
開発の勧めっていうのもすごいな ^^; 探してもなさそうだったんで、適当に30分くらいで作ってみました。 もしよければ使ってみてください。 Cだと相手にコンパイルする環境がないと渡せないから WSHっていうのを使って作ってみた。 ◇インストール?の仕方 「ここから」から「ここまで」をテキストファイルにコピペして、 拡張子をjs(例 AddHeadTail.js)にして保存すれば ダブルクリックして実行できると思います。 まずはダブルクリックして実行できるか確かめてください。 できなかったらこの話なかったことに。 ◇文頭・文末挿入文字の編集 文頭・文末に入れる文字や、上書きモードにするかどうかは プログラムを直接いじってください (o ̄∀ ̄) ★まーくがついてるところの説明でわかると思うけど。 プログラムを開くときは、右クリック→編集で ノートパッドか何かで開くと思います。 ◇実行方法 実行するには、処理したいファイルをまとめて たとえば、AddHeadTail.jsファイルのアイコンの上に ドラッグ&ドロップします。 フォルダをもってくると、そのフォルダの中を全部処理します。 ◇注意 もし使うなら、一応、バックアップを取ってからでお願いします。 自分のほうではファイルが消えても何も保障できないんで。 一応自分のところで動かしてみて成功はしたけどね。 // ---------------------------------------ここから // ★文頭・文末に挿入する文字列をここで編集します。 // ★改行させたいときは「\n」を使ってください。 var strHead = "<html>ここに文頭に入れたい文章を記入します。\n二行目は改行文字の後ろに続けて記入。\n"; var strTail = "ここに文末に入れたい文章を記入します。</html>\n"; // ★この値(overwrite)を1にすると上書きモードになります。 // ★0を指定すると、ファイル名のうしろに _ をつけたファイルを作成します。 var overwrite = 0; var FSO = WScript.CreateObject("Scripting.FileSystemObject"); var WshShell = WScript.CreateObject("WScript.Shell"); var oArgs = WScript.Arguments; var strArg; var strTitle = "文頭・文末に行を挿入するプログラム"; if(oArgs.length == 0){ WshShell.Popup( " 文頭・文末に行を挿入したいファイルまたはフォルダを\n" + " このファイルにドラッグ&ドロップしてください。\n\n" + " (C) 2004 komugi100g" , 30, strTitle, 0 + 64); }else{ for(i=0;i<oArgs.length;i++){ strArg = oArgs(i); try{ if(FSO.FileExists(strArg)){ editFile(strArg); }else if(FSO.FolderExists(strArg)){ reflexFolder(strArg); } }catch(e){ WshShell.Popup("エラー。原因不明。", 5, strTitle, 0 + 48); WScript.Quit(1); } } } function reflexFolder(strFolder){ var TargetFolder = FSO.GetFolder(strFolder); var TargetFolderFiles = new Enumerator(TargetFolder.files); var TargetFolderSubFolders = new Enumerator(TargetFolder.SubFolders); for(; ! TargetFolderFiles.atEnd(); TargetFolderFiles.moveNext()) editFile(TargetFolderFiles.item()); for(; ! TargetFolderSubFolders.atEnd(); TargetFolderSubFolders.moveNext()){ reflexFolder(TargetFolderSubFolders.item()); } } function editFile(strFile){ try{ var strFilePath = FSO.GetParentFolderName(strFile); var strFileBase = FSO.GetBaseName(strFile); var strFileExt = FSO.GetExtensionName(strFile); var strNFF = "_"; var strNewFile = strFilePath + "\\" + strFileBase + (overwrite==0?strNFF:"") + "." + strFileExt; var oFileOld = FSO.OpenTextFile(strFile,1); var strFileOld = oFileOld.ReadAll(); var oFileNew = FSO.CreateTextFile(strNewFile); oFileNew.Write(strHead); oFileNew.WriteLine(strFileOld); oFileNew.Write(strTail); oFileNew.close(); oFileOld.close(); }catch(e){ WScript.Echo("エラー:"+ strFile); } } // ---------------------------------------ここまで
その他の回答 (3)
- koma1000nin
- ベストアンサー率30% (342/1133)
この程度の処理は新入社員研修の一環として実施する、「C言語初級」講座の範囲内技術で解決できます。彼ら彼女達は丸腰で入社し、三箇月の期間内に社内規定,英会話,Office習得,C言語初級,ソフト開発実習…とこなしていくのですが、ご質問の処理なら彼らのレベルでもできるのです。 特別の機能を有するエディタは大方有料ですが、"秀丸"は一ヶ月の試用期間があるので、この間に処理終了する作業であれば導入されるとよろしい。 一ファイルの処理が実現できたとしても、6,000ファイルの繰り返し処理をするとなると短期間内に人手で処理するのは不可能でしょう。将来いろいろと応用なさることを考えたら、ここは一番ふんばって、目的範囲内でC言語初級を学習されてはどうですか? C言語で分からないことはOKWebに質問すれば、まるごと教えてくれる方もいます。
- nakachie
- ベストアンサー率33% (12/36)
フリーソフトでなくとも、テキストエディタの「正規表現」を利用した「置換」でもできると思います。 有名なテキストエディタ(秀丸など)のヘルプにその記載がありますので、呼んでみてはいかがでしょうか。 または、エクセルで加工するという方法も可能です。 そのテキストデータの文章をそのままコピーでD列にペーストします。 A列には文字列「<a href="」B列にはそのD列と同じものをペースト、C列には「">」、そしてE列には「</a>」としてテキストに書き出ししてみては? (以前私がやった苦肉の策です)
- nakachie
- ベストアンサー率33% (12/36)
HTMLのタグを挿入するのでしたら、vectorの下記サイトにテキストをHTMLに変換してくれるソフトがフリーでたくさんありますので、ご要望に応えられるものがあると思います。
補足
回答いただきありがとうございます。 説明不足ですみません。 今回の文章では、下記のように、ある程度HTML文章が出来上がっています。そのため、変換という形ではなく、文頭へ文字の追加という方法で探しております。 もし、心当たりがありましたら、教えていただけたら幸いです。 --------- <a href=ABCD>abcd</a> <a href=ABCD>abcd</a> ---------