API > Textutils

「API/Textutils」の編集履歴(バックアップ)一覧はこちら

API/Textutils」(2013/02/26 (火) 21:29:13) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

このページでは Textutils API について解説する。 参考資料: -[[Textutils API>http://computercraft.info/wiki/Textutils_%28API%29]] 執筆時のバージョン: -ComputerCraft 1.5 for Minecraft 1.4.6 / 1.4.7 ---- #contents ---- *Textutils API 文字列操作に関するちょっとした便利API。 **slowWrite -textutils.slowWrite( &italic(){text}[, &italic(){rate}] ) -&italic(){text}(文字列)を一文字ずつ画面に表示する。表示速度は&italic(){rate}(数値)で指定する(省略時は20) -戻り値:nil カーソル位置から文字列を表示し始める。終了時のカーソル位置は最後の文字の次。 &italic(){rate}は一秒間に表示する文字数。 **slowPrint -textutils.slowPrint( &italic(){text}[, &italic(){rate}] ) -&italic(){text}(文字列)を一文字ずつ画面に表示し、最後に改行する。表示速度は&italic(){rate}(数値)で指定する(省略時は20) -戻り値:nil カーソル位置から文字列を表示し始める。終了時のカーソル位置は最後の文字の次の行の先頭。 &italic(){rate}は一秒間に表示する文字数。 **formatTime -textutils.formatTime( &italic(){time}[, &italic(){twentyFourHour}] ) -ゲーム内の時刻を表す実数値&italic(){time}(数値)を、時刻を表す文字列に変換する。&br()&italic(){twentyFourHour}(ブーリアン)が省略またはfalseのときは12時間表記、trueのときは24時間表記 -戻り値:文字列型。ゲーム内の時刻を表す文字列 &italic(){time}は[[os.time>API/OS#id_e29a4d45]]関数で得られる数値。 例: print( textutils.formatTime( os.time(), false ) ) ゲーム内時刻を12時間表記の文字列に変換し、表示する("5:30 AM"のように表示される)。 **tabulate -textutils.tabulate( &italic(){...} ) -引数はテーブル型または[[Colors APIの色定数>API/Redstone & Colors#id_3d3f6f8b]](数値型)で、複数指定可能。&br()引数に指定したテーブル型の要素をタブ区切りで表示する。引数に複数のテーブルがある場合、行・列の幅は自動で調整される。&br()引数にColors APIの色定数を指定すると、それ以降に表示されるの文字の色を変更することができる(カラー表示が可能な環境のみ) -戻り値:nil 引数に指定可能なテーブルは、要素が文字列型または数値型、nilのみで構成されているもの。それ以外の型(ブーリアン、テーブル、関数など)を要素に含む場合はエラーになる。 要素にnilが含まれる場合、そのテーブル内のnil以降の要素は表示されない。 カラー表示ができない環境で文字色を変更しようとするとエラーになる。 この関数中で変更した文字色は関数以降も継続する。 例: textutils.tabulate( {1,2,3}, {"A","B","C"} ) 2つのテーブルを成形して表示する。 画面には以下のように出力される。 1.0 2.0 3.0 A B C **pagedTabulate -textutils.pagedTabulate( &italic(){table}[, &italic(){...}] ) -textutils.tabulate()の表示内容が1画面分を超える長さのときに、1ページずつ表示するようにしたもの -戻り値:nil 1ページ分表示すると画面下部に"Press any key to continue"と表示され、何かキーを押すと次のページが表示される。 **pagedPrint -textutils.pagedPrint( &italic(){text}[, &italic(){lines}] ) -&italic(){text}(文字列)の表示行数が&italic(){lines}(数値、省略時は0)行を超えるとき、それ以降は1行ずつ表示するようにする -戻り値:数値型。表示された行数(改行された数) まず&italic(){text}が&italic(){lines}行を超えるまで表示され、それ以降は画面下部に"Press any key to continue"と表示されて、何かキーを押すごとに1行ずつ表示される。 **serialize -textutils.serialize( &italic(){anything} ) -オブジェクト&italic(){anything}(テーブルまたは文字列、数値、ブーリアン、nil)を文字列に変換する -戻り値:文字列型。オブジェクトを表す文字列 テーブルや数値、ブーリアン型を文字列型に変換することにより、それをRednetで送信したり、テキスト形式で保存したりできるようになる。文字列型に変換したオブジェクトは、textutils.unserialize()によって復元することができる。 変換できるのは、要素がテーブルまたは文字列、数値、ブーリアン、nilのみで構成されたテーブル、または文字列、数値、ブーリアン、nilである。それ以外の型(関数など)が含まれる場合はエラーになる。また、テーブルの要素に自己参照となるテーブルが存在する場合もエラーとなる。 例: myThing = { name = "Test", n = 2 } sThing = textutils.serialize( myThing ) rednet.send( receiverID, sThing ) -- 既にRednetがopenされていて、receiverIDには相手のIDが代入されているものとする。 myCopy = textutils.unserialize( sThing ) print( myCopy.name ) テーブルを文字列に変換した後Rednetで送信し、それを復元して要素の1つ(name)を表示する("Test"と表示される)。 **unserialize -textutils.unserialize( &italic(){text} ) -textutils.serialize()で文字列&italic(){text}に変換したオブジェクトを復元する -戻り値:テーブル型、あるいは数値型、文字列型、ブーリアン型、nil。復元されたオブジェクト **urlEncode -textutils.urlEncode( &italic(){text} ) -&italic(){text}をURLエンコードする -戻り値:文字列型。URLエンコードされた&italic(){text} 文字列中の記号をパーセントエンコーディングする(%+16進数の形)。ただし、改行は"%0D%0A"に、半角スペースは"+"に変換される。 URLに付加するデータ部分のエンコードに使えるが、URLそのものには使えない(":"や"/"もパーセントエンコーディングされてしまうため)。 例: sUnsafe = "http://computercraft.info/wiki/index.php?title=Textutils_(API)" sSafe = textutils.urlEncode( sUnsafe ) print( sSafe ) 文字列をURLエンコードして表示する。画面には以下のように表示される。 http%3A%2F%2Fcomputercraft%2Einfo%2Fwiki%2Findex%2Ephp%3Ftitle%3DTextutils%5F%28API%29 この例はtextutils.urlEncode()の&bold(){間違った用法}である。なぜなら、上記のように変換された文字列(sSafe)はもはやURLとして使えないからである。 正しくは以下の例のように使う。 例: sUnsafe = "Textutils_(API)" sBaseURL = "http://computercraft.info/wiki/index.php?title=" sSafe = textutils.urlEncode( sUnsafe ) sURL = sBaseURL .. sSafe print( sURL ) データの文字列をURLエンコードしてURLの文字列に付加し、それを表示する。画面には以下のように表示される。 http://computercraft.info/wiki/index.php?title=Textutils%5F%28API%29
このページでは Textutils API について解説する。 参考資料: -[[Textutils API>http://computercraft.info/wiki/Textutils_%28API%29]] 執筆時のバージョン: -ComputerCraft 1.5 for Minecraft 1.4.6 / 1.4.7 ---- #contents ---- *Textutils API 文字列操作に関するちょっとした便利API。 **slowWrite -textutils.slowWrite( &italic(){text}[, &italic(){rate}] ) -&italic(){text}(文字列)を一文字ずつ画面に表示する。表示速度は&italic(){rate}(数値)で指定する(省略時は20) -戻り値:nil カーソル位置から文字列を表示し始める。終了時のカーソル位置は最後の文字の次。 &italic(){rate}は一秒間に表示する文字数。 **slowPrint -textutils.slowPrint( &italic(){text}[, &italic(){rate}] ) -&italic(){text}(文字列)を一文字ずつ画面に表示し、最後に改行する。表示速度は&italic(){rate}(数値)で指定する(省略時は20) -戻り値:nil カーソル位置から文字列を表示し始める。終了時のカーソル位置は最後の文字の次の行の先頭。 &italic(){rate}は一秒間に表示する文字数。 **formatTime -textutils.formatTime( &italic(){time}[, &italic(){twentyFourHour}] ) -ゲーム内の時刻を表す実数値&italic(){time}(数値)を、時刻を表す文字列に変換する。&br()&italic(){twentyFourHour}(ブーリアン)が省略またはfalseのときは12時間表記、trueのときは24時間表記 -戻り値:文字列型。ゲーム内の時刻を表す文字列 &italic(){time}は[[os.time>API/OS#id_e29a4d45]]関数で得られる数値。 例: print( textutils.formatTime( os.time(), false ) ) ゲーム内時刻を12時間表記の文字列に変換し、表示する("5:30 AM"のように表示される)。 **tabulate -textutils.tabulate( &italic(){...} ) -引数はテーブル型または[[Colors APIの色定数>API/Redstone & Colors#id_3d3f6f8b]](数値型)で、複数指定可能。&br()引数に指定したテーブル型の要素をタブ区切りで表示する。引数に複数のテーブルがある場合、行・列の幅は自動で調整される。&br()引数にColors APIの色定数を指定すると、それ以降に表示されるの文字の色を変更することができる(カラー表示が可能な環境のみ) -戻り値:nil 引数に指定可能なテーブルは、要素が文字列型または数値型、nilのみで構成されているもの。それ以外の型(ブーリアン、テーブル、関数など)を要素に含む場合はエラーになる。 要素にnilが含まれる場合、そのテーブル内のnil以降の要素は表示されない。 カラー表示ができない環境で文字色を変更しようとするとエラーになる。 この関数中で変更した文字色は関数以降も継続する。 例: textutils.tabulate( {1,2,3}, {"A","B","C"} ) 2つのテーブルを成形して表示する。 画面には以下のように出力される。 1.0 2.0 3.0 A B C **pagedTabulate -textutils.pagedTabulate( &italic(){table}[, &italic(){...}] ) -textutils.tabulate()の表示内容が1画面分を超える長さのときに、1ページずつ表示するようにしたもの -戻り値:nil 1ページ分表示すると画面下部に"Press any key to continue"と表示され、何かキーを押すと次のページが表示される。 **pagedPrint -textutils.pagedPrint( &italic(){text}[, &italic(){lines}] ) -&italic(){text}(文字列)の表示行数が&italic(){lines}(数値、省略時は0)行を超えるとき、それ以降は1行ずつ表示するようにする -戻り値:数値型。表示された行数(改行された数) まず&italic(){text}が&italic(){lines}行を超えるまで表示され、それ以降は画面下部に"Press any key to continue"と表示されて、何かキーを押すごとに1行ずつ表示される。 **serialize -textutils.serialize( &italic(){anything} ) -オブジェクト&italic(){anything}(テーブルまたは文字列、数値、ブーリアン、nil)を文字列に変換する -戻り値:文字列型。オブジェクトを表す文字列 テーブルや数値、ブーリアン型を文字列型に変換することにより、それをRednetで送信したり、テキスト形式で保存したりできるようになる。文字列型に変換したオブジェクトは、textutils.unserialize()によって復元することができる。 変換できるのは、要素が「テーブルまたは文字列、数値、ブーリアン、nil」のみで構成されたテーブル、または文字列、数値、ブーリアン、nilである。それ以外の型(関数など)が含まれる場合はエラーになる。また、テーブルの要素に自己参照となるテーブルが存在する場合もエラーとなる。 例: myThing = { name = "Test", n = 2 } sThing = textutils.serialize( myThing ) rednet.send( receiverID, sThing ) -- 既にRednetがopenされていて、receiverIDには相手のIDが代入されているものとする。 myCopy = textutils.unserialize( sThing ) print( myCopy.name ) テーブルを文字列に変換した後Rednetで送信し、それを復元して要素の1つ(name)を表示する("Test"と表示される)。 **unserialize -textutils.unserialize( &italic(){text} ) -textutils.serialize()で文字列&italic(){text}に変換したオブジェクトを復元する -戻り値:テーブル型、あるいは数値型、文字列型、ブーリアン型、nil。復元されたオブジェクト **urlEncode -textutils.urlEncode( &italic(){text} ) -&italic(){text}をURLエンコードする -戻り値:文字列型。URLエンコードされた&italic(){text} 文字列中の記号をパーセントエンコーディングする(%+16進数の形)。ただし、改行は"%0D%0A"に、半角スペースは"+"に変換される。 URLに付加するデータ部分のエンコードに使えるが、URLそのものには使えない(":"や"/"もパーセントエンコーディングされてしまうため)。 例: sUnsafe = "http://computercraft.info/wiki/index.php?title=Textutils_(API)" sSafe = textutils.urlEncode( sUnsafe ) print( sSafe ) 文字列をURLエンコードして表示する。画面には以下のように表示される。 http%3A%2F%2Fcomputercraft%2Einfo%2Fwiki%2Findex%2Ephp%3Ftitle%3DTextutils%5F%28API%29 この例はtextutils.urlEncode()の&bold(){間違った用法}である。なぜなら、上記のように変換された文字列(sSafe)はもはやURLとして使えないからである。 正しくは以下の例のように使う。 例: sUnsafe = "Textutils_(API)" sBaseURL = "http://computercraft.info/wiki/index.php?title=" sSafe = textutils.urlEncode( sUnsafe ) sURL = sBaseURL .. sSafe print( sURL ) データの文字列をURLエンコードしてURLの文字列に付加し、それを表示する。画面には以下のように表示される。 http://computercraft.info/wiki/index.php?title=Textutils%5F%28API%29

表示オプション

横に並べて表示:
変化行の前後のみ表示: