何度も繰り返しですいません。

「テキストファイル」で指定の文字を、その指定した文字の後ろに半角数字1,1,2,2,3,3…(連続してから1つ数字を足しまた連続し、また1つ数字を足す…)という順に足すようして「置換」たいのですが、
そのようなソフトまたは作成して頂ける方はいないでしょうか?
例えば、適当に入力をしたのですが以下の文字列で@が指定の文字の場合は「jydop@@gj@kf@j@」→「jydop@1@1gj@2kf@2j@3」
というようにしたいのです。文書を貼り付けのときに右クリックができるのをお願いいたします。
変換する文書は、10000行程あります。
実用的(問題なく実際に使用可能なもの、あとから条件を追加する場合があります。)なものに1000ポイント差し上げます。また、すいませんがポイントの低い方が作成したソフトは、いたずら防止のためダウンロードしない場合があります。わかりずらいかもしれませんが、宜しくお願いいたします。WindowsXP使用

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答11件)

id:inokuni No.1

回答回数1343ベストアンサー獲得回数21

ポイント100pt

JavaScript で作ってみました。

id:powan

ありがとうございます。置換えはこれでいいのですが、短い文章はOKなのですが、置換えたい文章の場合、どうも長すぎてフリーズしてしまいます。半分にしても駄目なようです。

2004/04/21 02:24:30
id:nyanta4649 No.2

回答回数12ベストアンサー獲得回数0

そのようなことが出来るソフトは知りませんが、マイクロソフトのワード(Word)が有ったら、ツールバーのエディット(Edit)からスクロールダウンしたところに(Find)と言うのが有るので、それで変換したい言葉を一つ一つ見つけて、一つずつ直していったらいいと思われます。 一行に一個直したい字があって一つ直すのに4秒かかり10000行直すとすると、667分かかるようですね。ん〜 お助け出来ないのが残念です。 でも直したい字が数百個程度なら、この方法でやれば、少し大変ですが、自分で画面をスクロールして字を探して直すより、ぜんぜん正確だし早いと思います。 的外れなアドバイスだったらすいません。

id:powan

すいません。1個づつ置き換えるのが大変なので、質問しています。

2004/04/21 02:25:53
id:malark No.3

回答回数26ベストアンサー獲得回数0

URLはダミーです。

動作は簡単なのですが、そんな高度な指定が出来るプログラムは多分存在しないでしょう。特に作らない限り。

作ってみようかなーと思うので逆質問です

・元テキストファイルと置き換え文字を指定してまるごと変換、テキストファイルで出力する

・指定文字は一文字

・コンソールアプリケーションでも可

でよろしいですか?一応この条件で動くものは作ってみますが…

右クリック云々の意味がちょっと分からないので、よろしければ説明をお願いします。

id:powan

>・元テキストファイルと置き換え文字を指定して>まるごと変換、テキストファイルで出力する

はい、そうです。

>・指定文字は一文字

予定では、一文字ですので、一文字でお願いいたします。

>・コンソールアプリケーションでも可

・コンソールアプリケーションの意味がわからないので検索したのですが、MS-DOSで、操作するということですよね。それで、OKです。

>右クリック云々の意味

http://www.hatena.ne.jp/1082461864の4の方のを見てください。ctrl+vとかで、するのではなく、右クリックで「貼り付け」や、「すべて選択」をできればしたいということです。

宜しくお願いいたします。

2004/04/21 03:07:36
id:inokuni No.4

回答回数1343ベストアンサー獲得回数21

ポイント100pt

php で作ってみました。

id:powan

ありがとうございます。ですが、どうも文章が長すぎるみたいでフリーズしてしまいます。

それから、これは、いわなかったので申し訳ないですがCGIやPHP(javascriptは可)です。などのHP上で、変換するのではなく、PC内で変換できるソフトをお願いいたします。ここで、回答していただいたソフトは、回答し頂いた時点で、私が、個人的に、使用することを了解して頂いたものとします。

2004/04/21 03:18:40
id:ycyc No.5

回答回数37ベストアンサー獲得回数6

ポイント100pt

excelマクロで作ってみました

何行目が実行されているかみえますのでフリーズしているかどうか確認できると思います

id:powan

ありがとうございます。

2004/04/21 10:37:48
id:kiichigo No.6

回答回数167ベストアンサー獲得回数0

ポイント100pt

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 が置き換わっています。

id:taka16 No.7

回答回数40ベストアンサー獲得回数0

ポイント200pt

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

お試しください

id:taka16 No.8

回答回数40ベストアンサー獲得回数0

ポイント200pt

http://www.hatena.ne.jp/1082461864

ある文字が出てきたら、1,2,3,4,5,6,7…という数字の順に置き換えていきたいのですが、そのようなソフトはないでしょうか? 例えば、適当に入力をしたのですが以下の文字列.. - 人力検索はてな

ちなみに、Greplaceで

jydop@@gj@kf@j@

jydop12gj3kf4j5 の置換自体は

検索文:

@

置換語:

${calc:${match:number}+1}

で、実現できます

id:aki73ix No.9

回答回数5224ベストアンサー獲得回数27

ポイント200pt

コピーだとリソースが足りなくなることがあるので

ファイル名指定で変換します

id:lyricfathom No.10

回答回数13ベストアンサー獲得回数0

ポイント400pt

作ってみました。

インストール作業などなしでそのまま使えます。

ダウンロードして解凍し、moto_fileフォルダに変換したいファイルを入れて、okikae.exeをダブルクリックしてください。

変換する文字を聞かれますので文字を入力してエンターを押します。

dekiagariフォルダに変換済みファイルが生成されます。

サンプルテストのためのファイルをmoto_fileフォルダにあらかじめ入れてありますので、ためしにやってみてください。

python + py2exeで作っています。

id:free-tea No.11

回答回数11ベストアンサー獲得回数0

ポイント1000pt

http://briefcase.yahoo.co.jp/freetea

Yahoo!ブリーフケースエラーメッセージ

作ってみました。

Yahooのブリーフケースの tool にある conv.lzh です。

アップ前に、ウィルスチェックはしました。

プログラム中で外部ファイルI/O等は行っていません。

気が向いたら、使ってみてください。

id:powan

みなさんありがとうございます。これで終了いたします。1000ポイントを含めた配点は、2,3日以内にさせていただきます。1000ポイントは、1名のみとなります。最初に説明していませんでした。すいません。

2004/04/21 11:21:47

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません