textmoduleは、Lua標準のstringライブラリをDLLで再現したモジュールです。
Unicodeで処理するため、Windows-31J(Shift JIS)によって発生する特有の不具合を防ぐことが出来ます。

ダウンロード

バージョンダウンロード更新内容
0.0.1ダウンロード初版
0.0.2ダウンロードbyte、char、gmatch、hiragana、katakana、halfwidth、fullwidth関数の追加
引数入力時の処理を修正
0.0.3ダウンロードgetinfo、time、date関数の追加
0.1.0ダウンロードutf8_byte、utf8_char関数の追加
0.1.1ダウンロード開発環境をC++20へ移行、例外時の処理を修正
date関数の処理を修正
0.1.2ダウンロードmojibake関数の追加、ソースファイルを分割
0.1.3ダウンロードdebug_print関数の追加
0.1.4 ダウンロードRGB、HSV、color関数の追加
ソースファイルを分割
0.1.5 ダウンロードcolor関数の処理を修正

ドキュメント

構文概要
debug
info = getinfo(name, index)textmoduleの情報を取得します。
nameで取得する内容を設定します(下記の「getinfoで取得できる情報」を参照)。
indexを指定しない場合は、1となります。
t = debug_print(...)0個以上の引数を指定すると、それらを文字列に変換し、aaa,1234,trueのように,区切りで連結し返します。
またこの文字列をOutputDebugString()に送ります。
デバッグ用に使用することが出来ます。
stringnumberboolean以外の型の引数は、その型名が表示されます。
string
start, end = find(string, pattern)stringにあるpatternを検索し、その開始位置と終了位置を返します。
ただし、patternは正規表現です。
t = sub(string, start, end)stringstart文字目からend文字目までを返します。
endを省略した場合、start文字目~最後までを切り抜きます。
t = gsub(string, pattern, repl, num)stringにあるpatternreplで置換します。
ただし、patternは正規表現です。
numで置換の回数を指定しますが、指定しない場合は1になります。
l = len(string)stringの長さを返します。
ワイド文字列においての長さであるため、Lua標準のstring.lenとは値が異なります。
t = reverse(string)stringを逆順にした文字列を返します。
例:「あいうえお」→「おえういあ」
t = upper(string)string内の英語小文字を大文字に変換して返します。
t = lower(string)string内の英語大文字を小文字に変換して返します。
t = match(string, pattern, num)stringpatternを比較して、最初にマッチした部分を返します。
ただし、patternは正規表現です。
numで検索を開始する位置を指定できますが、指定しない場合は1になります。
t = byte(string, i, j)文字列stringi文字目からj文字目の文字コードを返します。
文字コードの数値は、ワイド文字列の状態で取得します。
iを指定しない場合は、1になります。
jを指定しない場合は、iと同じ値になります。
t = char(i1, i2, ...)0個以上の数値 i1, i2 ... を指定すると、 各文字が与えられた引数と等しい内部コードを持ち、長さが引数の数に等しい、文字列を返します。
文字コードの数値は、ワイド文字列の状態で取得します。
func = gmatch(string, pattern)stringからpatternに当てはまる部分を次々と返すような、イテレータ関数を返します。
ただし、patternは正規表現です。
tmstring
t = hiragana(string)string内のカタカナをひらがなに変換して、返します。
t = katakana(string)string内のひらがなをカタカナに変換して、返します。
t = halfwidth(string, m)string内の全角文字を半角文字に変換して、返します。
m(ブーリアン値)を指定すると、全角スペースを半角スペースに変換するかどうかを指定できます。
mを指定しない場合は、trueとなります。
t = fullwidth(string, m)string内の半角文字を全角文字に変換して、返します。
m(ブーリアン値)を指定すると、半角スペースを全角スペースに変換するかどうかを指定できます。
mを指定しない場合は、trueとなります。
t = mojibake(string)文字列stringを文字化けさせます。
stringをUTF-8に変換し、それをShift JISとして扱うことで文字化けさせています。
改行\nなどの特殊な記号の一部は無視されます。
その仕様上、半角英数字などのASCII文字は基本的には文字化けしません。
time
t = time(table)テーブルtableで指定された時刻を表す数値を返します。
nilもしくはなにも指定しない場合は、現在時刻を返します。
tableには最低限yearmonthdayの要素がなければなりません。

 

テーブルの構造は、下記の「日付のテーブル構造」の項目を確認してください。

t = date(format, time)時間を表す数値timeformatをもとに、文字列へ変換します。
formatの書式はこちらを参照してください。

 

format"*t"のときは、以下の構造で表されるテーブルで値を返します。
ただし、formatの先頭1文字が"!"の場合は、UTC(世界協定時刻)で計算します。

utf8
t = utf8_byte(string, i, j)文字列stringi文字目からj文字目の文字コードを返します。
文字コードの数値は、UTF-8で取得します。
iを指定しない場合は、1になります。
jを指定しない場合は、iと同じ値になります。
t = utf8_char(i1, i2, ...)0個以上の数値 i1, i2 ... を指定すると、 各文字が与えられた引数と等しいUTF-8符号を持ち、長さが引数の数に等しい、文字列を返します。
文字コードの数値は、ワイド文字列の状態で取得します。
color
color = RGB(r, g, b)
r, g, b = RGB(color)
文字列 or 数値型の16進数のcolor0x0000000xffffff)とRGB値を相互に変換します。
RGB値はそれぞれ0~255の間をとります。
color = HSV(h, s, v)
h, s, v = HSV(color)
文字列 or 数値型の16進数のcolor0x0000000xffffff)とHSV値を相互に変換します。
Hは0~360を、SVはそれぞれ0~100の間をとります。
value = color(from, to, v1, ...)様々な形式の色データを相互に変換します。
fromには引数のデータの形式を文字列で指定します。
toには返り値のデータの形式を文字列で指定します。
fromtoの書き方については、「colorの引数」を参照)

getinfoで取得できる情報

第1引数第2引数返り値の型
内容
"version"1stringtextmoduleのバージョン
2numbertextmoduleのバージョン(通し番号 / 1~)
"name"1string「textmodule」を返す

日付のテーブル構造

名前概要
year
month
day
hour時間
min
sec
wday曜日(1が月曜日)
yday年内の通し日数(1-366)
isdst夏時間フラグ(数値 / 負の場合は夏時間なし)

colorの引数

指定方法引数 / 返り値の形式概要
"RGB"r, g, bRGB値(整数 / 0~255)
"color"color16進数のRGB値(整数 / 0x0000000xffffff
"color_string"color16進数のRGB値(文字列 / "0x000000""0xffffff"
"HSV" , "HSB"h, s ,vHSV値(整数 / H:0~360 , SV:0~100)
"HSL"h, s ,lHSL値(整数 / H:0~360 , SL:0~100)
"CMYK"c, m, y, kCMYK値(浮動小数点実数 / 0~1)

サンプルコード