組合せ文字出力するソフトを作ってくれませんか
例えば、「□ふ□□ん□ー□」と入力すればそれに応じた組合せの全てのひらがなの文字通りの出力するソフトを作って欲しいです。
「①ふ②③ん④ー⑤」と風に分析して、
①には、(あ い う え お か き く け こ さ し す せ そ た ち つ て と な に ぬ ね の は ひ ふ へ ほ ま み む め も や ゆ よ ら り る れ ろ わ が ぎ ぐ げ ご ざ じ ず ぜ ぞ だ ぢ づ で ど ば び ぶ べ ぼ ぱ ぴ ぷ ぺ ぽ)まで任意指定。
②には、(あ い う え お か き く け こ さ し す せ そ た ち つ て と な に ぬ ね の は ひ ふ へ ほ ま み む め も や ゆ よ ら り る れ ろ わ を ん が ぎ ぐ げ ご ざ じ ず ぜ ぞ だ ぢ づ で ど ば び ぶ べ ぼ ぱ ぴ ぷ ぺ ぽ ぁ ぃ ぅ ぇ ぉ)まで任意指定。
③には、 (あ い う え お か き く け こ さ し す せ そ た ち つ て と な に ぬ ね の は ひ ふ へ ほ ま み む め も や ゆ よ ら り る れ ろ わ を ん が ぎ ぐ げ ご ざ じ ず ぜ ぞ だ ぢ づ で ど ば び ぶ べ ぼ ぱ ぴ ぷ ぺ ぽ ぁ ぃ ぅ ぇ ぉ ゃ ゅ ょ)まで任意指定
④には、(あ い う え お か き く け こ さ し す せ そ た ち つ て と な に ぬ ね の は ひ ふ へ ほ ま み む め も や ゆ よ ら り る れ ろ わ が ぎ ぐ げ ご ざ じ ず ぜ ぞ だ ぢ づ で ど ば び ぶ べ ぼ ぱ ぴ ぷ ぺ ぽ)まで任意指定。
⑤には、あ い う え お か き く け こ さ し す せ そ た ち つ て と な に ぬ ね の は ひ ふ へ ほ ま み む め も や ゆ よ ら り る れ ろ わ を ん が ぎ ぐ げ ご ざ じ ず ぜ ぞ だ ぢ づ で ど ば び ぶ べ ぼ ぱ ぴ ぷ ぺ ぽ)まで任意指定。
こういう任意の文字の指定が出来るようにして欲しいです。そして最後は、以下のようなTXTファイルとして出力して欲しいのです
例.txt
-ここから-
あふああんあーあ
あふああんあーい
……
……
ろふんんんんーん
-ここまで-
こんな感じです。最後の文字は「ん」でなくてもかまいません。さきほどBATでやるやり方を教えてもらったのですが、途方もない時間がかかるためになるたけ処理を高速化してそれに特化したソフトウェアを作って欲しいのです。
どうかよろしくお願いします。m(__)m
下記をメモ帳に貼り付けて 組み合わせ.vbs という名前で保存
ダブルクリックで実行されます 処理が終わると
作成した個数と 開始/終了時間が表示されます
myName = "Sample.txt"
myT1 = "あ,い,う,え,お,か,き,く,け,こ,1,2,3,4,5,6,7,8,9,0"
myT2 = "あ,い,う,え,お,か,き,く,け,こ,1,2,3,4,5,6,7,8,9,0"
myT3 = "あ,い,う,え,お,か,き,く,け,こ,1,2,3,4,5,6,7,8,9,0"
myT4 = "あ,い,う,え,お,か,き,く,け,こ,1,2,3,4,5,6,7,8,9,0"
myT5 = "あ,い,う,え,お,か,き,く,け,こ,1,2,3,4,5,6,7,8,9,0"
Call myTXTc
myST = Now
For Each my1 In Split(myT1, ",")
For Each my2 In Split(myT2, ",")
For Each my3 In Split(myT3, ",")
For Each my4 In Split(myT4, ",")
For Each my5 In Split(myT5, ",")
myTXT = myTXT & my1 & "ふ" & my2 & my3 & "ん" & my4 & "ー" & my5 & vbCrLf
i = i + 1
If i Mod 1000 = 0 Then
WScript.Sleep 10
Call myTXTw
myTXT = ""
End If
Next
Next
Next
Next
Next
If myTXT <> "" Then Call myTXTw
Msgbox i & vbCrLf & myST & vbCrLf & Now
Sub myTXTc()
With CreateObject("Scripting.FileSystemObject") _
.OpenTextFile(myName, 2, True)
.Close
End With
End Sub
Sub myTXTw()
With CreateObject("Scripting.FileSystemObject")
With .OpenTextFile(myName, 8, True)
.Write myTXT
.Close
End With
End With
End Sub
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1262189512
前回の質問では 300万個程度まで作成したい とのこと
20種の5乗で 約300万個になるので
上記のコードでテストしたところ 自機で5分程度かかりました
メモりとCPUに依存します
メモりに全部記憶して 最後に1発でファイル化すると遅くなる印象でした
逆にあまりファイル保存の回数を増やすとそれでも遅くなるので
1000個単位としました この辺はメモりとの相談で調整可能かと
作ったよwwwwwwwwwww
おもしろそうなので、作ってみようかとも思ったけど、ざっと計算しても
69*76*79*69*71
=2029538124通りの組み合わせになる。約20億。この数字で作るのは、あきらめました;;
1つ、0.001秒(1000分の1秒)としても 2029538.124秒
=33825.6354分
=563.76059時
=23.49日
(計算間違ってたら、ごめん。)
しかも、テキストファイルが32GBってとこかな?
Cで書いてもらうしかないね。
没有评论:
发表评论