「テキストファイル」で指定の文字を、その指定した文字の後ろに半角数字1,1,2,2,3,3…(連続してから1つ数字を足しまた連続し、また1つ数字を足す…)という順に足すようして「置換」たいのですが、
そのようなソフトまたは作成して頂ける方はいないでしょうか?
例えば、適当に入力をしたのですが以下の文字列で@が指定の文字の場合は「jydop@@gj@kf@j@」→「jydop@1@1gj@2kf@2j@3」
というようにしたいのです。文書を貼り付けのときに右クリックができるのをお願いいたします。
変換する文書は、10000行程あります。
実用的(問題なく実際に使用可能なもの、あとから条件を追加する場合があります。)なものに1000ポイント差し上げます。また、すいませんがポイントの低い方が作成したソフトは、いたずら防止のためダウンロードしない場合があります。わかりずらいかもしれませんが、宜しくお願いいたします。WindowsXP使用
そのようなことが出来るソフトは知りませんが、マイクロソフトのワード(Word)が有ったら、ツールバーのエディット(Edit)からスクロールダウンしたところに(Find)と言うのが有るので、それで変換したい言葉を一つ一つ見つけて、一つずつ直していったらいいと思われます。 一行に一個直したい字があって一つ直すのに4秒かかり10000行直すとすると、667分かかるようですね。ん〜 お助け出来ないのが残念です。 でも直したい字が数百個程度なら、この方法でやれば、少し大変ですが、自分で画面をスクロールして字を探して直すより、ぜんぜん正確だし早いと思います。 的外れなアドバイスだったらすいません。
すいません。1個づつ置き換えるのが大変なので、質問しています。
Yahoo! JAPAN
URLはダミーです。
動作は簡単なのですが、そんな高度な指定が出来るプログラムは多分存在しないでしょう。特に作らない限り。
作ってみようかなーと思うので逆質問です
・元テキストファイルと置き換え文字を指定してまるごと変換、テキストファイルで出力する
・指定文字は一文字
・コンソールアプリケーションでも可
でよろしいですか?一応この条件で動くものは作ってみますが…
右クリック云々の意味がちょっと分からないので、よろしければ説明をお願いします。
>・元テキストファイルと置き換え文字を指定して>まるごと変換、テキストファイルで出力する
はい、そうです。
>・指定文字は一文字
予定では、一文字ですので、一文字でお願いいたします。
>・コンソールアプリケーションでも可
・コンソールアプリケーションの意味がわからないので検索したのですが、MS-DOSで、操作するということですよね。それで、OKです。
>右クリック云々の意味
http://www.hatena.ne.jp/1082461864の4の方のを見てください。ctrl+vとかで、するのではなく、右クリックで「貼り付け」や、「すべて選択」をできればしたいということです。
宜しくお願いいたします。
ありがとうございます。ですが、どうも文章が長すぎるみたいでフリーズしてしまいます。
それから、これは、いわなかったので申し訳ないですがCGIやPHP(javascriptは可)です。などのHP上で、変換するのではなく、PC内で変換できるソフトをお願いいたします。ここで、回答していただいたソフトは、回答し頂いた時点で、私が、個人的に、使用することを了解して頂いたものとします。
excelマクロで作ってみました
何行目が実行されているかみえますのでフリーズしているかどうか確認できると思います
ありがとうございます。
http://pcweb.mycom.co.jp/special/2002/cygwin/002.html
【特集】Windowsユーザーへ贈るUnixへの架け橋 - Cygwinを使いこなそう (3) Cygwinのインストール(1) | パソコン | マイコミジャーナル
perlが使える環境だと、次の一行コマンドで出来たりします。
$ echo ”jydop@@gj@kf@j@” | perl -pe ’s/(.*?@)((.*?@)|)/$a++;$3eq””?”$1$a”:”$1$a$2$a”/eg’
jydop@1@1gj@2kf@2j@3
windowsXPでcygwinを使って確認しました。
1)cygwin をインストールする(パッケージはperlがあればいい)
2)c:¥ に変換したテキストファイルをtmp.txtという名前でコピーする
3)スタート>プログラム>Cygwin>Cygwin Bash Shellでコンソールを開き
4)以下のように入力する
cd /cygdrive/c
perl -i -pe ’s/(.*?@)((.*?@)|)/$a++;$3eq””?”$1$a”:”$1$a$2$a”/eg’ tmp.txt
#すべて半角です。
これで、tmp.txt が置き換わっています。
Greplaceを使用して
検索文:
@
置換文(置換式):
@${calc:${calc:${calc:${calc:${match:number}+1}%2}+${calc:${match:number}+1}}/2}
詳細オプション:
正規表現使う
を使うと置換自体は実現できそうですよ
上記式で例題に対して、置換を行うと以下になりました
jydop@@gj@kf@j@xyz@zyx(xyz@zyxの部分は、例題に追加しました)
↓
jydop@1@1gj@2kf@2j@3xyz@3zyx
もっと上手い置換語(置換式)があるかもしれません
使い方、正規表現を覚えれば、条件が変わっても、
対応できるのではないでしょうか
置換対象がファイルになっている事が前提です
これを↓1行として、同じ行内容で11000行を試しました
jydop@@gj@kf@j@xyz@zyxjydop@@gj@kf@j@xyz@zyx
Greplace.exeで10000行を実行すると、
GUIの検索結果部分(プレビュー見たい感じ)でとてつもなく時間がかかるので
(時間がかかり過ぎて、途中で止めたので不明、多分20分以上、その時点でメモリも150M位使用)
Creplace.exe(Greplace.exeのコマンドライン版一緒に入ってます)を使うと
IBMx21 pen3 700M で、1分ちょっとくらいです
GUIで、何行か試してCUIで全部を置換が良いと思います。
11000行の最後の行は、↓こんなになりました
jydop@65995@65995gj@65996kf@65996j@65997xyz@65997zyxjydop@65998@65998gj@65999kf@65999j@66000xyz@66000zyx
お試しください
http://www.hatena.ne.jp/1082461864
ある文字が出てきたら、1,2,3,4,5,6,7…という数字の順に置き換えていきたいのですが、そのようなソフトはないでしょうか? 例えば、適当に入力をしたのですが以下の文字列.. - 人力検索はてな
ちなみに、Greplaceで
jydop@@gj@kf@j@
↓
jydop12gj3kf4j5 の置換自体は
検索文:
@
置換語:
${calc:${match:number}+1}
で、実現できます
http://www.lyricfathom.com/etc/okikae.zip
lyricfathom.com
作ってみました。
インストール作業などなしでそのまま使えます。
ダウンロードして解凍し、moto_fileフォルダに変換したいファイルを入れて、okikae.exeをダブルクリックしてください。
変換する文字を聞かれますので文字を入力してエンターを押します。
dekiagariフォルダに変換済みファイルが生成されます。
サンプルテストのためのファイルをmoto_fileフォルダにあらかじめ入れてありますので、ためしにやってみてください。
python + py2exeで作っています。
http://briefcase.yahoo.co.jp/freetea
Yahoo!ブリーフケースエラーメッセージ
作ってみました。
Yahooのブリーフケースの tool にある conv.lzh です。
アップ前に、ウィルスチェックはしました。
プログラム中で外部ファイルI/O等は行っていません。
気が向いたら、使ってみてください。
みなさんありがとうございます。これで終了いたします。1000ポイントを含めた配点は、2,3日以内にさせていただきます。1000ポイントは、1名のみとなります。最初に説明していませんでした。すいません。
ありがとうございます。置換えはこれでいいのですが、短い文章はOKなのですが、置換えたい文章の場合、どうも長すぎてフリーズしてしまいます。半分にしても駄目なようです。