任意の文字数の英字の文字列をにアルファベット順一覧生成するフリーソフト、サービスはありますか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/11/16 15:17:49
  • 終了:2008/11/23 15:20:03

回答(3件)

id:pahoo No.1

pahoo回答回数5960ベストアンサー獲得回数6332008/11/16 18:27:54

ポイント35pt

ご質問の文字列は

AAA, AAB, AAC‥‥

といったイメージでしょうか。

であれば、Windows限定になりますが、下記のVBScriptで実現できます。

拡張子 vbs で保存(例:hogehoge.vbs)し、実行してみてください。


結果を出力するファイル名を Fname に、文字数は Col(ここでは3文字)に、並べる文字種は Table に指定します。Table には小文字や数字を順番に記述すれば、その順番通りに文字列を生成します。

Option Explicit

const Fname = "hogehoge.txt"                 '出力ファイル名
const Col = 3                                '出力桁数
const Table = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"   '対象文字種

'------文字列作成のための再帰関数
Function addchar(str, cnt)
    Dim i, c
    If cnt <= Col Then
        For i = 1 to Len(Table)
            c = mid(Table, i, 1)
            addchar = addchar(str & c, cnt + 1)
        Next
    Else 
        outfile.Write(str & chr(13))
    End If
End Function

'--------メイン・プログラム
Dim str, fs, outfile

Set fs = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
    Set outfile = fs.OpenTextFile(Fname, 2, True)
End If

str = ""
str = addchar(str, 1)
outfile.Close

Set fs = Nothing
Set outfile = Nothing

WScript.Echo Fname & " : 出力完了!"

参考サイト

id:kazafee

あ、これです。

これを3桁の時、”aaaaabaacaad・・・”ではなく

aaa

aab

aac

aad

のように縦に出力したのですが・・

できますか?

2008/11/16 19:03:35
id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332008/11/16 19:19:11

ポイント35pt

#1で回答したプログラムは、改行処理が間違っていました。ごめんなさい。

以下に差し替えていただければ、メモ帳で開いたときに縦に並ぶと思います。

Option Explicit

const Fname = "hogehoge.txt"                 '出力ファイル名
const Col = 3                                '出力桁数
const Table = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"   '対象文字種

'------文字列作成のための再帰関数
Function addchar(str, cnt)
    Dim i, c
    If cnt <= Col Then
        For i = 1 to Len(Table)
            c = mid(Table, i, 1)
            addchar = addchar(str & c, cnt + 1)
        Next
    Else 
        outfile.Write(str & chr(13) & chr(10))
    End If
End Function

'--------メイン・プログラム
Dim str, fs, outfile

Set fs = WScript.CreateObject("Scripting.FileSystemObject")
If Err.Number = 0 Then
    Set outfile = fs.OpenTextFile(Fname, 2, True)
End If

str = ""
str = addchar(str, 1)
outfile.Close

Set fs = Nothing
Set outfile = Nothing

WScript.Echo Fname & " : 出力完了!"

※設定された回答回数の上限になりました。さらにフォローが必要でしたら、コメント欄を開けていただくか、回答回数を増やしてください。

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 Gay_Yahng 724 660 26 2008-11-17 11:05:43

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

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

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

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

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません