SQLからデータの配列をフェッチし、それらを文字列として連結して表示しています。関数は次のようになります。
function FetchTopStats( Conn, iLimit )
local sToReturn = "\tS.No. \t UserName \t Score\n\t"
SQLQuery = assert( Conn:execute( string.format( [[SELECT username, totalcount FROM chatstat ORDER BY totalcount DESC LIMIT %d]], iLimit ) ) )
DataArray = SQLQuery:fetch ({}, "a")
i = 1
while DataArray do
sToReturn = sToReturn..tostring( i ).."\t"..DataArray.username.." \t "..DataArray.totalcount.."\n\t"
DataArray = SQLQuery:fetch ({}, "a")
i = i + 1
end
return sToReturn
end
これにより、次のような出力が得られます。
S.No. UserName Score
1 aim 6641
2 time 5021
3 Shepard 4977
等々。string.format
次のように表示する関数を使用することを考えています。
S.No. UserName Score
1 aim 6641
2 time 5021
3 Shepard 4977
しかし、私はこれをどのように持つかについての考えから完全に外れています。私の頭に浮かぶ唯一のオプションは、ユーザー名の文字列の長さをチェックし、それに\t
応じて適用することです。それで、最後に使いたいです。