GeneXusでのランダム文字列生成について

初期パスワードの発行などでランダムな文字列を生成したい場合があると思います。

ただGeneXusではランダム数字の生成関数はあっても、ランダム文字列の生成関数はありません。

ないなら自前で作ってしまおうと言うのが今回の記事となります。

まぁ、一番お手軽な方法はGUIDを取得して、そのGUIDからハイフンを除いて指定した桁数に切り取る方法ですかね。
ただそれだと大文字と数字だけの文字列になってしまうから、途中でBase64変換を挟もうと思います。

コンテンツ一覧

実装

ランダム文字列生成処理は下記のようになります。

コピペ用にコードも貼っておきます。

/*
	ランダム文字列生成処理
*/

//GUID取得してハイフンを削除
&GUID = GUID.NewGuid().ToString().Replace('-','') //&GUID:VarChar(32)

//上記GUIDをBase64変換
&Base64GUID = ToBase64(&GUID) //&Base64GUID:VarChar(256)

//Base64変換した文字列を10文字に整形
&RandomChar = &Base64GUID.Substring(1,10) //&RandomChar:VarChar(10)

動作確認

ボタンを押すごとに、ランダム文字が生成されるように実装しました。
大文字、小文字、数字混在で問題なく動作しておりますね。

まとめ

今回は10文字固定にしましたが、パラメータで切り取る文字数を受け取って、呼ぶ側で文字数を指定できるようにするのもありですね。

ランダム文字列は初期パスワード生成くらいにしか使わないかもしれませんが、良かったら使ってみてください。

Blog一覧へ