# clipb2var

クリップボードのテキストデータをコピーする。

    clipb2var <strvar> [<offset>]

## 解説

クリップボードのテキストデータを <strvar> へ代入する。
文字列変数の最大長の制限を受けるため、クリップボードのテキストデータが長すぎた場合は512バイト目以降が切り捨てられる。

<offset>を指定すると、offset*511+1文字目以降の内容が代入される。
<offset>に0以外を指定するためには、事前に<offset>無し、または<offset>に0を指定してclipb2varを実行する必要がある。
<offset>に0以外を指定した時に得られるクリップボードの内容は現在のものではなく、最後に<offset>無し、または<offset>に0を指定してclipb2varを実行した時点でのクリップボードの内容となる。

このコマンドの実行結果はシステム変数 result に格納される。変数 result の値の意味は以下のとおり。

値 | 意味
--- | ---
0 | クリップボードを開けなかった。またはテキストデータではなかった。またはoffsetの値が適切ではなかった。
1 | <strvar> への代入に成功した。
2 | <strvar> への代入は行われたが、入りきらなかった部分は切り捨てられた。offsetの値を増やして再度clipb2varコマンドを実行する事で、切り捨てられた部分にアクセスできる。
3 | クリップボードの内容を記憶しておくためのメモリの確保に失敗した。この場合でも先頭から最大511バイトは変数に代入されるが、offsetを増やして再度clipb2varコマンドを実行しても切り捨てられた部分にはアクセスできない。

## 例

    clipb2var data
    messagebox data 'clipboard data'

    ; 511バイトを超えるクリップボード文字列を読み込む
    ; +------------------------------------------------------------------+
    ; |  1024 bytes clipboard text                                       |
    ; +------------------------------------------------------------------+
    ; +-------------------------+--------------------------+-------------+
    ; | (1) 511 bytes           | (2) 511 bytes            | (3) 2 bytes |
    ; +-------------------------+--------------------------+-------------+

    clipb2var data ; data に (1) が代入され、result に 2 が代入される
    messagebox data 'clipboard data 1'

    clipb2var data 1 ; data に (2) が代入され、result に 2 が代入される
    messagebox data 'clipboard data 2'

    clipb2var data 2 ; data に (3) が代入され、result に 1 が代入される
    messagebox data 'clipboard data 3'

    clipb2var data 3 ; data にはなにも代入されず、result に 0 が代入される
    messagebox data 'clipboard data 4'

    ; クリップボードの内容をファイル(clipboard.txt)に書き出す
    fileopen fp 'clipboard.txt' 0
    if result <> 0 end

    offset = 0
    do
        clipb2var buff offset
        if result > 0 filewrite fp buff
        offset = offset + 1
    loop while result = 2

    fileclose fp