Type: directive
-This function attaches a widget to a window at position <x>, <y>. The top left of the window should be taken as reference (0, 0).
-This directive also can be used to position a Window on the screen. The first argument must then contain a 0, and the second argument must contain the Window ID.
\ No newline at end of file
+ウインドウにウィジェットを貼り付けます。
+NOTEBOOK 内にウィジェットを貼り付けます。
+
+<window> = 表示先 WINDOW または NOTEBOOK。0 でウインドウ画面
+<widget> = 表示を行うウェジェット。<window> = 0 の場合は表示 WINDOW
+<x> = <window> 内の横座標。左が 0
+<y> = <window> 内の縦座標。上が 0
+
+画面上にウインドウを貼り付けます。
+
+<window> = 0
+<widget> = 表示 WINDOW
+<x> = 画面の横座標。左が 0
+<y> = 画面の縦座標。上が 0
+
CALLBACK(widget, function)
Type: directive
-Defines a self-defined <function> where HUG should jump to when an event for <widget> occurs.
\ No newline at end of file
+
+ウェジェットでイベントが発生した時の飛び先を設定します。
+
+<widget> = イベント発生対象ウェジェット
+<function> = 飛び先のファンクション
\ No newline at end of file
CALLBACKX(widget, function, value)
Type: directive
-Defines a self-defined <function> where HUG should jump to when an event for <widget> occurs, and pass <value> to that function. The arguments in the callback function should catch this value.
-Example:
+
+ウェジェットでイベントが発生した時の飛び先を設定します。
+飛び先のファクションで <value> を取り出し、処理を行います。
+
+<widget> = イベント発生対象ウェジェット
+<function> = 飛び先のファンクション
+<value> = ファンクションに付加する値。NUMBER 数値のみ
+
+例:
INCLUDE "hug.bac"
SUB demo(NUMBER widget, NUMBER value)
CANVAS(xsize, ysize)
Type: function
-Creates a canvas of width <xsize> and height <ysize>. Returns the ID of the created canvas. The top left corner is defined as position(0, 0). The canvas created last is regarded as the default canvas where the drawing takes place. The default canvas can be changed with the function DRAW.
-Note that the canvas also can be created as an OpenGL canvas, provided that either the GtkGlArea library or the GtkGlext library is available on the system. To do so, use the CANVAS option in HUGOPTIONS before creating the canvas.
+
+キャンバスを生成します。
+
+<xsize> = 横幅。左が 0
+<ysize> = 縦幅。上が 0
+帰り値 = キャンバスID
+
+いくつかキャンバスを生成した場合、最後に生成されたキャンバスが
+製図されるデフォルト・キャンバスとなります。
+デフォルトキャンバスは DRAW で変更する事が可能です。
+
+GtkGlArea ライブラリ・GtkGlext ライブラリがシステムで利用可能である場合でも
+キャンバスは OpenGL キャンバスとして生成される点に注意してください。
+GtkGlArea ライブラリ・GtkGlext ライブラリを必要とする場合、
+HUGOPTIONS で CANVAS オプションを使用してください。
Type: directive
円を描きます。GL キャンバスで有効です。
+
"color" = 色。"#rrggbb" の形式。赤なら"#FF0000"
<xposition> = 円を構成する長方形左上の横座標
<yposition> = 円を構成する長方形左上の縦座標
COMBO("text", xsize, ysize)
Type: function
+
ComboBox(パーツを配置できるウインドウ)を生成します。
"text" = ボックス名
Type: directive
-Starts executing the main event loop.
+メインイベントループ処理の実行をはじめます。
+言い換えると GUI の線画処理を行います。
この機能は GUI を生成した最後に呼び出します。
DRAW(canvas)
Type: directive
-Defines the default canvas where the drawing takes place.
-In case of an OpenGL canvas where GL_FREEZE is enabled (see HUGOPTIONS), or in case non-HUG drawing is used, this function must be called first, as it will prepare the drawing buffer. Then after the actual drawing is finished, the GL canvas must be updated using the SYNC directive.
-In all cases the DRAW directive returns the actual lowlevel drawing sub widget.
+
+線画を行うデフォルトキャンバスを設定します。
+
+<canvas> = デフォルトにするキャンバス
+
+OpenGL キャンバスを使用し HUGOPTIONS で GL_FREEZE を有効に設定している場合、
+または HUG ではない線画を有効にしている場合、
+線画用のバッファを準備し、この機能が優先である事を設定しておく必要があります。
+実際の線画を行った後、GL キャンバスは SYNC を使用し、更新しなければいけません。
+++ /dev/null
-Dialog Response Codes
-
-Code Meaning
-GTK_RESPONSE_ACCEPT Accept button was pressed
-GTK_RESPONSE_DELETE_EVENT Dialog was closed
-GTK_RESPONSE_OK OK button was pressed
-GTK_RESPONSE_CANCEL Cancel button was pressed
-GTK_RESPONSE_CLOSE Close button was pressed
-GTK_RESPONSE_YES Yes button was pressed
-GTK_RESPONSE_NO No button was pressed
-GTK_RESPONSE_APPLY Apply button was pressed
-GTK_RESPONSE_HELP Help button was pressed
EDIT
EDIT(xsize, ysize)
+
Type: directive
+
複数行のテキストボックスを生成します。
+
<xsize> = 横幅
<ysize> = 縦幅
-戻り値 = 生成されたテキストボックスの ID
\ No newline at end of file
+戻り値 = 生成されたテキストボックスの ID
+
+テキストボックスの中身は TEXT を用いて付加します。
+フォントの指定 FONT は 0.88 以降で有効です。0.87 以前では動作しません。
"text" = 入っているテキスト
<xsize> = 横幅
<ysize> = 縦幅
-戻り値 = 生成されたテキストボックスの ID
\ No newline at end of file
+戻り値 = 生成されたテキストボックスの ID
FILEDIALOG("title", "caption", xsize, ysize, action)
Type: function
-ファイルダイヤログを生成します。
-生成されたダイヤログは非表示になるため、SHOW で表示させます。
+ファイルダイアログを生成します。
+生成されたダイアログは非表示になるため、SHOW で表示させます。
+
"title" = タイトル
"caption" = キャプション
<xsize> = 横幅
<ysize> = 縦幅
-<action> = 0:ファイルを開く / 1:ファイルを保存 / 2:フォルダの選択 / 3: フォルダの生成
+<action> = 0:ファイル開く / 1:ファイル保存 / 2:フォルダ選択 / 3: フォルダ生成
戻り値 = 生成されたダイヤログの ID
例:
FONT(window, "Luxi Mono 12")
FONT(button, "Arial 15")
+
+EDIT のフォント指定は 0.88 以降有効です。
Type: directive
-Retrieves the value of a property of a widget into a variable.
+ウィジェットのプロパティ値を変数に入れます。
-Example:
+<widget> = 対象ウィジェット
+"property" = プロパティ値
+<variable> = 値を入れる変数
+
+例:
DECLARE t$
GETPROPERTY(win, "title", ADDRESS(t$))
Radio ラジオボタンの右にある caption
Entry ボックス内のテキスト
Password ボックス内のテキスト
-Mark Gets the text from the label (Mark)
-Combo Get the current selection of the combobox
-Progressbar Gets the text from the progressbar
+Mark ラベル(MARK)のテキスト
+Combo 選択されているボックスのテキスト
+Progressbar Progressbarで設定したテキスト
Hseparator 変化なし
Vseparator 変化なし
-Frame Gets the caption from a frame
-Edit Gets the full text from a multiline editor
-List Gets the current selected line from the list
+Frame FRAME で設定した caption
+Edit EDIT に入っている全てのテキスト
+List 選択行のテキスト
Spin 変化なし
-Notebook Returns caption in the active tab
-Msgdialog Returns the text in the message dialog
-Filedialog Returns the selected filename in the file dialog
-Image Returns the filename being displayed
-Clipboard Gets the text from the clipboard
+Notebook 有効になっているタブの caption
+Msgdialog Msgdialog のテキスト
+Filedialog 選択しているファイル名
+Image 表示しているファイル名
+Clipboard クリップボードに入っているテキスト
Hslider 変化なし
Vslider 変化なし
HUGLIB$
HUGLIB$("type")
+
Type: function
-Returns the actual backend library currently used by HUG. Arguments can be one of the following:
-"gtk" – current GTK library version
-"gdk" - current GDK library version
-"glib" - current Glib library version
-"gobject" - current Gobject library version
-"pango" - current Pango library version
-"glarea" - current GtkGlArea library version
-"glext" - current GtkGlExt library version
+
+HUG で現在使用されているライブラリを返します。
+
+返し値 = 下記のいずれを返します。
+ "gtk" = GTK ライブラリ
+ "gdk" = GDK ライブラリ
+ "glib" = Glib ライブラリ
+ "gobject" = Gobject ライブラリ
+ "pango" = Pango ライブラリ
+ "glarea" = GtkGlArea ライブラリ
+ "glext" = GtkGlExt ライブラリ
HUGOPTIONS
HUGOPTIONS("option")
+
Type: directive
-This function influences the behavior of the HUG library. Per invocation only one option can be set. The following options are recognized:
-"TABLE x y" - define a table as layer for the ATTACH function
-"BASEXFTDPI x" - define the default font dpi for the current desktop. Default: 96
-"SCALING" - the created GUI should be scaled to fit the desktop font (default)
-"NOSCALING" - undo the scaling of the GUI
-"WIDGET_SHOW x" - by default show widgets at creation (1) or not (0). Default: 1
-"FONT name$" - default font for all the widgets. Example: "FONT Arial 12"
-"CANVAS type$" - define canvas type (GL, GLAREA, GLEXT, GOO or GTK). The option GL tries to autodetect a suitable library. Example: "CANVAS GL"
-"GL_FREEZE x" – automatically update the GL canvas (0), or not (1). Enabling this option will achieve better performance. Default: 0
+
+HUG ライブラリのオプション値を設定します。
+"option" = 下記のいずれか
+
+ "TABLE x y" - ATTACH でレイヤとするテーブルを設定します
+ "BASEXFTDPI x" - フォントの DPI 値を初期設定します。デフォルトは 96
+ "SCALING" - フォントを GUI へ整えるようにします(デフォルト)
+ "NOSCALING" - フォントを GUI へ整えないようにします
+ "WIDGET_SHOW x" - ウィジェットを生成する際の表示・非表示を設定します。
+ x = 1: 表示 / 0: 非表示。デフォルトは 1
+ "FONT name$" - フォントを初期設定します。全てのウィジェットに影響します。
+ 例: "FONT Arial 12"
+ "CANVAS type$" - キャンバスタイプを設定します。
+ type$ は GL GLAREA GLEXT GOO GTK のいずれかです。
+ GL の場合は使用できるライブラリを探します。
+ 例: "CANVAS GL"
+ "GL_FREEZE x" - GL キャンバスの自動更新有無を設定します。
+ x = 0: 自動更新する / 1: しない。デフォルトは 0
+ これを使用する事でパフォーマンスの向上を期待できます。
KEY
KEY
+
Type: function
+
最後にキーボードから押されたキーを返します。
-RESETKEY も参照して下さい。
-戻り値: GDK ヘッダーファイル <gdk/gdkkeysyms.h> によって得られた値
\ No newline at end of file
+戻り値 = GDK ヘッダーファイル <gdk/gdkkeysyms.h> によって得られた値
+
+RESETKEY も参照して下さい。
ラベルを生成します。
-"caption" = キャプション。装飾のために Pango Text Attribute Markup Language を含める事ができます。
+"caption" = キャプション。
+ 装飾に Pango Text Attribute Markup Language を含める事ができます
<xsize> = 横幅
<ysize> = 縦幅
戻り値 = 生成されたラベルの ID
キャンバス上でのマウス情報を返します。
-<x> = 0:横座標 / 1:縦座標 / 2:ボタン番号 / 3:マウスホイール方向 0=上 1=下 / 4:マウスが有効か
+<x> = 0:横座標 / 1:縦座標 / 2:ボタン番号 /
+ 3:マウスホイール方向 0=上 1=下 / 4:マウスが有効か
+
マウスがキャンバスの外にある時は -1 が返されます。
MSGDIALOG
MSGDIALOG("text", xsize, ysize, type, buttons)
+
Type: function
-Creates a dialog with a text, and a width of <xsize> and a height of <ysize>. Returns the ID of the created dialog.
-The type of dialog can be one of the following: 0 - informational, 1 - warning, 2 - question, - 3 - error and 4 - other.
-The buttons can have the following values: 0 - no button, 1 - ok button, 2 - close, 3 - cancel, 4 - yes/no, and 5 - ok/cancel.
-By default the dialog will be hidden. Use the SHOW function to make it visible.
-The text may contain Pango Text Attribute Markup Language to set different styles and formats.
-The dialog can be connected to a callback function which should have two arguments, the first for the dialog and the second for the button. For example:
+
+ダイアログボックスを生成します。
+
+"text" = 表示するテキスト。Pango Text Attribute Markup Language を使用できます。
+<xsize> = 横幅
+<ysize> = 縦幅
+<type> = 0-INFORMATION 1-WARNING 2-QUESTION 3-ERROR 4-OTHER
+<buttons> = 0-NO 1-OK 2-CLOSE 3-YES/NO 4-OK/CANCEL
+戻り値 = 生成されたダイアログボックス
+
+デフォルトではダイヤログは非表示になります。SHOW を用いて表示する事が可能です。
+
+CALLBACK で呼び出された関数には押されたボタンの値も渡します。
+どのボタンが押されたかを関数で判断する事ができます。
+例:
INCLUDE "hug.bac"
SUB HandleError(NUMBER dialog, int button)
HIDE(dialog)
END SUB
ErrDlg = MSGDIALOG("Error", 300, 200, 3, 4)
CALLBACK(ErrDlg, HandleError)
-For a full list of dialog response codes, please refer to the Appendix.
+
+ダイアログの返し値 を参照して下さい。
NOTEBOOK
NOTEBOOK("caption", xsize, ysize)
+
Type: function
-Creates a notebook with one tab containing a caption, and a width of <xsize> and a height of <ysize>. Returns the ID of the created notebook.
+
+タブで切り替えられる表示を生成します。(これを NOTEBOOK と表現しています)
+
+"caption" = 最初のタブで表示するテキスト
+<xsize> = 横幅
+<ysize> = 縦幅
+戻り値 = 生成された NOTEBOOK の ID
+
+2つ目以降のタブは TEXT を用いて追加します。
+
+その後 SET を用いて線画・表示する場所を指定します。
+タブは一番場所の値(一番左のタブ)が 0 です。
+各ウィジェットでは window のところに NOTEBOOK の ID を入れます。
+
+DISPLAY の前に SET で設定したタブが初期状態で表示されます。
デフォルトキャンバスにテキストを描きます。
-"text" = 描くテキスト文字。Pango Text Attribute Markup Language を使う事ができます
+"text" = テキスト。Pango Text Attribute Markup Language を使う事ができます
"fgcolor" = 文字色。"#rrggbb" で設定します。黄色は "#FFFF00"
"bgcolor" = 背景色。"#rrggbb" で設定します
xposition = 左上の横座標
Type: function
-パスワード入力テキストエリアを生成します。ここで入力されたテキストは特別文字に変わって表示されます。
-xsize = 横幅
-ysize = 縦幅
+パスワード入力テキストエリアを生成します。
+ここで入力されたテキストは特別文字に変わって表示されます。
+
+<xsize> = 横幅
+<ysize> = 縦幅
戻り値 = 生成されたテキストエリアの ID
デフォルトキャンバスに画像を描きます。
"file" = 画像ファイル名。画像のファイル形式は自動認識されます
-xposition = 左上の横座標
-yposition = 左上の縦座標
-xsize = 横幅
-ysize = 縦幅
+<xposition> = 左上の横座標
+<yposition> = 左上の縦座標
+<xsize> = 横幅
+<ysize> = 縦幅
RESETKEY
RESETKEY
+
Type: function
-Resets the last key pressed to '0' so subsequent calls to KEY return '0', until a new key is pressed.
+
+KEY の値が 0 を返すように、KEY のために押されているバッファをクリアします。
-SET
+SCREENSIZE
-SET(widget, value)
-Type: method
-ウィジェットに対して値を設定します。
+SCREENSIZE(dimension)
-ウィジェット 値
-Window 0 = ウインドウ / 1 = 全画面
-Button 0 = 押していない / 1 = 押している
-Toggle 0 = 押していない / 1 = 押している
-Stock 0 = 押していない / 1 = 押している
-Check 0 = 押していない / 1 = 押している
-Radio 0 = 選択してない / 1 = 選択してる
-Entry 影響なし
-Password 0 = パスワードが見えない / 1 = パスワードが見える
-Mark 0 = 選択してない / 1 = 選択してる
-Combo 選ばれた列のインデックス番号
-Progressbar 進捗パーセント
-Hseparator 影響なし
-Vseparator 影響なし
-Frame 影響なし
-Edit テキストの行数
-List 選択されている列のインデックス番号
-Spin 現在の値
-Notebook 現在のタブ番号
-Msgdialog 影響なし
-Filedialog 影響なし
-Image 影響なし
-Clipboard 影響なし
-Hslider 現在のスライザー値
-Vslider 現在のスライザー値
+Type: function
+
+画面サイズをピクセル値で返します。
+
+<dimension> = 0-横 1-縦
+返し値 = 画面サイズ
--- /dev/null
+SET
+
+SET(widget, value)
+
+Type: method
+
+ウィジェットに対して値を設定します。
+
+ウィジェット 値
+WINDOW 0 = ウインドウ / 1 = 全画面
+BUTTON 0 = 押していない / 1 = 押している
+TOGGLE 0 = 押していない / 1 = 押している
+STOCK 0 = 押していない / 1 = 押している
+CHECK 0 = 押していない / 1 = 押している
+RADIO 0 = 選択してない / 1 = 選択してる
+ENTRY 影響なし
+PASSWORD 0 = パスワードが見えない / 1 = パスワードが見える
+MARK 0 = 選択してない / 1 = 選択してる
+COMBO 列のインデックス番号
+PROGRESSBAR 進捗パーセント
+HSEPARATOR 影響なし
+VSEPARATOR 影響なし
+FRAME 影響なし
+EDIT テキスト行数
+LIST 列のインデックス番号
+SPIN 現在値
+NOTEBOOK タブ番号
+MSGDIALOG 影響なし
+FILEDIALOG 影響なし
+IMAGE 影響なし
+CLIPBOARD 影響なし
+HSLIDER スライザー値
+VSLIDER スライザー値
SPIN
-SPIN(xsize, ysize, start, end, step)
+SPIN(xsize, ysize, min, max, step)
Type: function
-Creates a spinbutton with a width of <xsize> and a height of <ysize>. The range of integer values lays between <start> and <end>, and will be increased or decreased with <step> size. Returns the ID of the created spin button.
+数値の増減を設定できるウィジェットを生成します。(これを SPIN を表現します)
+
+<xsize> = 横幅
+<ysize> = 縦幅
+<min> = 最小値
+<max> = 最大値
+<step> = 変化値
+返し値 = 生成された SPIN の値
SYNC
SYNC
+
Type: directive
-Forces an intermediate update of the GUI.
-In case of an OpenGL canvas, this directive will force a buffer swap also. This particularly should be used when the GL canvas has option GL_FREEZE enabled (see HUGOPTIONS), or in case a non-HUG drawing is applied, so when using plain OpenGL functions directly. In both cases, before the actual GL drawing is executed, the buffer should have been prepared with DRAW.
+
+線画している GUI の更新を行います。
+
+OpenGL キャンバスの場合、buffer swap にある線画も行われます。
+OpenGL の使用が明白で HUGOPTION の GL_FREEZE を設定する時、
+HUG 以外で線画される場合は、SYNC 使用で更新を行う必要があります。
+予め DRAW を用いてバッファを用意しておく必要があります。
ウィジェットに対しテキストを設定します。
ウェジェット 値
-Window タイトルバーのテキスト
-Button ボタンの caption
-Toggle ボタンの caption
-Stock ボタンの stock text
-Check チェックボタンの右にある caption
-Radio ラジオボタンの右にある caption
-Entry ボックス内のテキスト
-Password ボックス内のテキスト
-Mark Gets the text from the label (Mark)
-Combo Get the current selection of the combobox
-Progressbar Gets the text from the progressbar
-Hseparator 変化なし
-Vseparator 変化なし
-Frame Gets the caption from a frame
-Edit Gets the full text from a multiline editor
-List Gets the current selected line from the list
-Spin 変化なし
-Notebook Returns caption in the active tab
-Msgdialog Returns the text in the message dialog
-Filedialog Returns the selected filename in the file dialog
-Image Returns the filename being displayed
-Clipboard Gets the text from the clipboard
-Hslider 変化なし
-Vslider 変化なし
+WINDOW タイトルバーのテキスト
+BUTTON ボタンの CAPTION
+TOGGLE ボタンの CAPTION
+STOCK ボタンのテキスト
+CHECK チェックボタンの右にある CAPTION
+RADIO ラジオボタンの右にある CAPTION
+ENTRY ボックス内のテキスト
+PASSWORD ボックス内のテキスト
+MARK ラベル(MARK)にあるテキスト
+COMBO 選択している場所
+PROGRESSBAR 設定しているテキスト
+HSEPARATOR 変化なし
+VSEPARATOR 変化なし
+FRAME フレームの CAPTION
+EDIT テキスト
+LIST 選択行のテキスト
+SPIN 変化なし
+NOTEBOOK 選択しているタブ
+MSGDIALOG ダイアログのテキスト
+FILEDIALOG 選択しているファイル名
+IMAGE 選択しているファイル名
+CLIPBOARD クリップボードのテキスト
+HSLIDER 変化なし
+VSLIDER 変化なし
TIMEOUT
-TIMEOUT(millisec, sub|function)
+TIMEOUT(time, function)
+
Type: directive
-Sets up a timeout while the main eventloop is executed. After the timeout in milliseconds, a self-defined <sub> or <function> is executed.
-If the timeout should not occur again, then the executed function should return FALSE. Canceling a timeout cannot be done using a SUB.
-The amount of milliseconds can be changed to another value during runtime. Example:
+
+DISPLAY の後に指定時間が経過した後にファンクション・サブルーチンを呼び出します。
+
+<time> = 経過時間(ミリ秒)
+<function> = 呼び出す FUNCTION または SUB
+
+FUNCTION では RETURN として TRUE を返す事で TIMEOUT が再度作動します。
+SUB では必ず TIMEOUT が再度作動するようにします。
+再度設定する事で、呼び出す時間を変更する事が可能です。
+
+例:
+
INCLUDE "hug.bac", INIT, GET, SET, WINDOW, PROGRESSBAR, ATTACH, TIMEOUT, DISPLAY
DECLARE pb, x, offset
offset = 1
TOGGLE("caption", xsize, ysize)
Type: function
-Creates a toggle button with a caption, and a width of <xsize> and a height of <ysize>. Returns the ID of the created toggle button.
+
+トグルボタンを生成します。
+
+"caption" = 表示テキスト
+<xsize> = 横幅
+<ysize> = 縦幅
+帰り値 = 生成されたトグルボタンの ID
--- /dev/null
+ダイアログの返り値
+
+コード 内容
+GTK_RESPONSE_ACCEPT ACCEPT ボタンが押された
+GTK_RESPONSE_DELETE_EVENT ダイヤログが閉じられた
+GTK_RESPONSE_OK OK ボタンが押された
+GTK_RESPONSE_CANCEL CANCEL ボタンが押された
+GTK_RESPONSE_CLOSE CLOSE ボタンが押された
+GTK_RESPONSE_YES YES ボタンが押された
+GTK_RESPONSE_NO NO ボタンが押された
+GTK_RESPONSE_APPLY APPLY ボタンが押された
+GTK_RESPONSE_HELP HELP ボタンが押された
- ABS
+ABS
- ABS(<x>)
+ABS(<x>)
- Type: function
+Type: function
- <x> の絶対値を返します。
- ABS がある場合・ない場合の例:
+<x> の絶対値を返します。
+ABS がある場合・ない場合の例:
- PRINT PI
- PRINT ABS(PI)
+PRINT PI
+PRINT ABS(PI)
- ACOS
+ACOS
- 【2.0 追加】
- ACOS(<x>)
+【2.0 追加】
+ACOS(<x>)
- Type: function
-
- <x> の計算された弧コサインを返します。
+Type: function
+<x> の計算された弧コサインを返します。
- ADDRESS
+ADDRESS
- ADDRESS(<x>)
+ADDRESS(<x>)
- Type: function
-
- 変数または機能のメモリアドレスを返します。 インポートされた C function へのポインターを渡すとき、ADDRESS 機能を使う事ができます。(IMPORT 参照)
+Type: function
+変数または機能のメモリアドレスを返します。
+インポートされた C function へのポインターを渡すとき、
+ADDRESS 機能を使う事ができます。(IMPORT 参照)
- ALARM
+ALARM
- 【1.0 build 12】
- ALARM <sub>, <time>
+【1.0 build 12 追加】
+ALARM <sub>, <time>
- Type: statement
+Type: statement
- <time> ミリ秒に実行される <sub> をセットします。
- <time> に 0 を使用した場合は ALARM 機能をキャンセルします。
- ALARM は BaCon が現在実行しているどんな行動でも中断します。
- ALARM は常に優先権があります。
- 例:
-
- SUB dinner
- PRINT "Dinner time!"
- END SUB
- ALARM dinner, 5000
+<time> ミリ秒に実行される <sub> をセットします。
+<time> に 0 を使用した場合は ALARM 機能をキャンセルします。
+ALARM は BaCon が現在実行しているどんな行動でも中断します。
+ALARM は常に優先権があります。
+例:
+SUB dinner
+ PRINT "Dinner time!"
+END SUB
+ALARM dinner, 5000
- ALIAS
+ALIAS
- 【1.0 build 14】
- ALIAS <function> TO <alias>
+【1.0 build 14】
+ALIAS <function> TO <alias>
- Type: statement
+Type: statement
- 既存の機能またはインポートされた機能に別名を定めます。
- ALIAS は、statement または operator のために作る事はできません。例:
+既存の機能またはインポートされた機能に別名を定めます。
+ALIAS は、statement または operator のために作る事はできません。
+例:
- ALIAS "DEC" TO "ConvertToDecimal"
- PRINT ConvertToDecimal("AB1E")
+ALIAS "DEC" TO "ConvertToDecimal"
+PRINT ConvertToDecimal("AB1E")
- AND
+AND
- 【1.0 build 29 追加 - &】
- <x> AND <y>
+【1.0 build 29 追加 - &】
+<x> AND <y>
- Type: operator
+Type: operator
- <x> と <y> の論理積を返します。「and」の代わりに記号「&」を使う事もできます。
- 例:
+<x> と <y> の論理積を返します。
+「AND」の代わりに記号「&」を使う事もできます。
+例:
- IF x = 0 AND y = 1 THEN PRINT "Hello"
+IF x = 0 AND y = 1 THEN PRINT "Hello"
- ARGUMENT$
+ARGUMENT$
- ARGUMENT$
+ARGUMENT$
- Type: variable
-
- プログラムの名前とプログラムに対する引数を阻止している予約の変数です。
- これらすべてはスペースで区切られます。
+Type: variable
+プログラムの名前とプログラムに対する引数を阻止している予約の変数です。
+これらすべてはスペースで区切られます。
- ASC
+ASC
- ASC(<char>)
+ASC(<char>)
- Type: function
+Type: function
- アスキー文字(半角文字)をコードに変えます。 (CHR$ の逆)
- 例:
-
- PRINT ASC("x")
+アスキー文字(半角文字)をコードに変えます。 (CHR$ の逆)
+例:
+PRINT ASC("x")
- ASIN
+ASIN
- 【2.0 追加】
- ASIN(<x>)
+【2.0 追加】
+ASIN(<x>)
- Type: function
-
- <x> のアークサイン(arcsine)を返します。
+Type: function
+<x> のアークサイン(arcsine)を返します。
- ATN
+ATN
- ATN(<x>)
+ATN(<x>)
- Type: function
+Type: function
- <x> のアークタンジェント(arctangent)を返します。
+<x> のアークタンジェント(arctangent)を返します。
- PRINT ATN(1)
+PRINT ATN(1)
- BREAK
+BREAK
- BREAK [<x>]
+BREAK [<x>]
- Type: statement
+Type: statement
- FOR・NEXT、WHILE・WEND、REPEAT・UNTIL のループから抜けます。
-
- <x> の値を指定する事で入れ子になっているループをいくつ抜けるかを指定できます。
- 1 以上の値でなければいけません。CONTINUE を用いてループを再開する事もできます。
+FOR・NEXT、WHILE・WEND、REPEAT・UNTIL のループから抜けます。
+<x> の値を指定する事で入れ子になっているループをいくつ抜けるかを指定できます。
+1 以上の値でなければいけません。CONTINUE を用いてループを再開する事もできます。
- CALL
+CALL
- CALL <sub name> [TO <var>]
+CALL <sub name> [TO <var>]
- Type: statement
+Type: statement
- <sub name> がある場合、プログラムの終了後に <sub name> ラベルのサブルーチンを呼び出します。 With the optional TO also a function can be invoked which stores the result value in <var>.
+<sub name> がある場合、
+プログラムの終了後に <sub name> ラベルのサブルーチンを呼び出します。
+TO <var> を付加すると、返し値を <var> へ入れる事ができます。
- Example:
-
- CALL fh2cel(72) TO celsius
- PRINT celsius
+例:
+CALL fh2cel(72) TO celsius
+PRINT celsius
- CATCH
+CATCH
- CATCH GOTO <label> | RESET
+CATCH GOTO <label> | RESET
- Type: statement
-
- エラーが発生した時に <label> へ飛ばします。
- 例として RESUME を参照して下さい。
- CATCH RESET で初期のエラーメッセージ表示へ戻します。
+Type: statement
+エラーが発生した時に <label> へ飛ばします。
+例として RESUME を参照して下さい。
+CATCH RESET で初期のエラーメッセージ表示へ戻します。
- CHANGEDIR
+CHANGEDIR
- CHANGEDIR <directory>
+CHANGEDIR <directory>
- Type: statement
+Type: statement
- カレントディレクトリを変更します。例:
-
- CHANGEDIR "/tmp/mydir"
+カレントディレクトリを変更します。
+例:
+CHANGEDIR "/tmp/mydir"
- CHOP$
+CHOP$
- CHOP$(<x$>[, <y$>[, <z>]])
+CHOP$(<x$>[, <y$>[, <z>]])
- Type: function
+Type: function
- <x$> の前後に含まれている CR・LF・タブ・空白 を削除します。
- <y$> を指定する事で削除する文字を指定できます。
- <z> で削除範囲を決められます。0 で左右、1 で左、2 で右 です。
- 例:
-
- PRINT CHOP$("bacon", "bn")
- PRINT CHOP$(" hello world ", " ", 2)
+<x$> の前後に含まれている CR・LF・タブ・空白 を削除します。
+<y$> を指定する事で削除する文字を指定できます。
+<z> で削除範囲を決められます。0 で左右、1 で左、2 で右 です。
+例:
+PRINT CHOP$("bacon", "bn")
+PRINT CHOP$(" hello world ", " ", 2)
- CHR$
+CHR$
- CHR$(<x>)
+CHR$(<x>)
- Type: function
+Type: function
- アスキー番号 <x> に属している文字を返します。ASC と逆の機能です。
- <x> の値は 0~255 です。
-
- LET a$ = CHR$(0x23)
- PRINT a$
+アスキー番号 <x> に属している文字を返します。ASC と逆の機能です。
+<x> の値は 0~255 です。
+LET a$ = CHR$(0x23)
+PRINT a$
- CLEAR
+CLEAR
- CLEAR
+CLEAR
- Type: statement
-
- ターミナル画面を文字を消します。ANSI 対応ターミナルで使う事ができます。
+Type: statement
+ターミナル画面を文字を消します。ANSI 対応ターミナルで使う事ができます。
- CLOSE
+CLOSE
- CLOSE FILE|DIRECTORY|NETWORK|SERVER|MEMORY <handle>
+CLOSE FILE|DIRECTORY|NETWORK|SERVER|MEMORY <handle>
- Type: statement
+Type: statement
- OPEN で開いていた <handle> を閉じます。
- 例:
-
- CLOSE FILE myfile
+OPEN で開いていた <handle> を閉じます。
+例:
+CLOSE FILE myfile
- COLOR
+COLOR
- COLOR <BG|FG> TO <BLACK|RED|GREEN|YELLOW|BLUE|MAGENTA|CYAN|WHITE>
- COLOR <NORMAL|INTENSE|INVERSE|RESET>
+COLOR <BG|FG> TO <BLACK|RED|GREEN|YELLOW|BLUE|MAGENTA|CYAN|WHITE>
+COLOR <NORMAL|INTENSE|INVERSE|RESET>
- Type: statement
+Type: statement
- ターミナル画面の色を設定します。
- FG で文字色、BG で背景色を設定します。
- ANSI 互換ターミナルで有効です。
- 例:
+ターミナル画面の色を設定します。
+FG で文字色、BG で背景色を設定します。
+ANSI 互換ターミナルで有効です。
+例:
- COLOR FG TO GREEN
- PRINT "This is green!"
- COLOR RESET
+COLOR FG TO GREEN
+PRINT "This is green!"
+COLOR RESET
- 色は名前の代わりに数値でも設定できます。
- 0 = BLACK、1 = RED、2 = GREEN、3 = YELLOW、4 = BLUE、
- 5 = MAGENTA、6 = CYAN、7 = WHITE
- 例:
-
- COLOR 1 TO 3
- PRINT "This is yellow!"
- COLOR RESET
+色は名前の代わりに数値でも設定できます。
+0 = BLACK、1 = RED、2 = GREEN、3 = YELLOW、4 = BLUE、
+5 = MAGENTA、6 = CYAN、7 = WHITE
+例:
+COLOR 1 TO 3
+PRINT "This is yellow!"
+COLOR RESET
- COLUMNS
+COLUMNS
- 【1.0 build 13 追加】
- COLUMNS
+【1.0 build 13 追加】
+COLUMNS
- Type: function
+Type: function
- ANSI 対応ターミナルの横座標を返します。ROWS 参照。例:
-
- PRINT "X,Y: ", COLUMNS, "," , ROWS
+ANSI 対応ターミナルの横座標を返します。ROWS 参照。
+例:
+PRINT "X,Y: ", COLUMNS, "," , ROWS
- CONCAT$
+CONCAT$
- CONCAT$(<x$>, <y$>, ...)
+CONCAT$(<x$>, <y$>, ...)
- Type: function
+Type: function
- 文字列を結合します。
- 例:
+文字列を結合します。
+例:
- txt$ = CONCAT$("Help this is ", name$, " carrying a strange ", thing$)
+txt$ = CONCAT$("Help this is ", name$, " carrying a strange ", thing$)
- CONCAT$ を使う代わりに & を使って結合させる事もできます。
- & を使って同じ結果を得る例:
-
- txt$ = "Help this is " & name$ & " carrying a strange " & thing$
+CONCAT$ を使う代わりに & を使って結合させる事もできます。
+& を使って同じ結果を得る例:
+txt$ = "Help this is " & name$ & " carrying a strange " & thing$
- CONST
+CONST
- CONST <var> = <value> | <expr>
+CONST <var> = <value> | <expr>
- Type: statement
+Type: statement
- 実行中変更する事ができない値を定めます。
- CONST で割り当てた値はグローバルで参照できます。
- 例:
-
- CONST WinSize = 100
- CONST Screen = WinSize * 10 + 5
+実行中変更する事ができない値を定めます。
+CONST で割り当てた値はグローバルで参照できます。
+例:
+CONST WinSize = 100
+CONST Screen = WinSize * 10 + 5
- CONTINUE
+CONTINUE
- 【1.0 build 20 追加】
- CONTINUE [<x>]
+【1.0 build 20 追加】
+CONTINUE [<x>]
- Type: statement
+Type: statement
- FOR・NEXT WHILE・WEND REPEAT・UNTIL 内の制御を飛ばし、
- ループの頭から再開させます。
-
- <x> によって再開されるループの数を指定できます。
+FOR・NEXT WHILE・WEND REPEAT・UNTIL 内の制御を飛ばし、
+ループの頭から再開させます。
+<x> によって再開されるループの数を指定できます。
- COPY
+COPY
- COPY <file> TO <newfile>
+COPY <file> TO <newfile>
- Type: statement
+Type: statement
- <file> を <newfile> へ複製します。
- 例:
-
- COPY "file.txt" TO "/tmp/new.txt"
+<file> を <newfile> へ複製します。
+例:
+COPY "file.txt" TO "/tmp/new.txt"
- COS
+COS
- COS(<x>)
+COS(<x>)
- Type: function
-
- <x> のコサイン値(cosinus)を返します。
+Type: function
+<x> のコサイン値(cosinus)を返します。
- CURDIR$
+CURDIR$
- CURDIR$
+CURDIR$
- Type: function
-
- カレントディレクトリをフルパスで返します。
+Type: function
+カレントディレクトリをフルパスで返します。
- CURSOR
+CURSOR
- 【1.0 build 13 追加 - CURSOR ON|OFF】
- CURSOR <ON|OFF> | <FORWARD|BACK|UP|DOWN> [<x>]
+【1.0 build 13 追加 - CURSOR ON|OFF】
+CURSOR <ON|OFF> | <FORWARD|BACK|UP|DOWN> [<x>]
- Type: statement
+Type: statement
- CURSOR ON でカーソルを表示、CURSON OFF でカーソルを非表示にします。
- CURSOR FORWARD で下に移動、BACK で上に移動、
- UP で左に移動、DOWN で右に移動します。
- <x> で移動量を指定できます。ない場合は 1 移動します。
- ANSI 互換ターミナルで有効です。
- 例:
-
- PRINT "I am here"
- CURSOR DOWN 2
- PRINT "...now I am here"
+CURSOR ON でカーソルを表示、CURSON OFF でカーソルを非表示にします。
+CURSOR FORWARD で下に移動、BACK で上に移動、
+UP で左に移動、DOWN で右に移動します。
+<x> で移動量を指定できます。ない場合は 1 移動します。
+ANSI 互換ターミナルで有効です。
+例:
+PRINT "I am here"
+CURSOR DOWN 2
+PRINT "...now I am here"
- DATA
+DATA
- DATA <x>[, <y>][, <z>][, ...]
+DATA <x>[, <y>][, <z>][, ...]
- Type: statement
+Type: statement
- データを定義します。DATA の値は常にグローバルで見られるデータになります。
- READ でデータを読み出す事ができます。
- すべてのデータが読まれた場合、数値は 0、文字列では空を返します。
- 読み出し開始位置を RESOTRE で定める事ができます。
- 例:
-
- DATA 1, 2, 3, 4, 5, 6
- DATA 0.5, 0.7, 11, 0.15
- DATA 1, "one", 2, "two", 3, "three", 4, "four"
+データを定義します。DATA の値は常にグローバルで見られるデータになります。
+READ でデータを読み出す事ができます。
+すべてのデータが読まれた場合、数値は 0、文字列では空を返します。
+読み出し開始位置を RESOTRE で定める事ができます。
+例:
+DATA 1, 2, 3, 4, 5, 6
+DATA 0.5, 0.7, 11, 0.15
+DATA 1, "one", 2, "two", 3, "three", 4, "four"
- DAY
+DAY
- DAY(<x>)
+DAY(<x>)
- Type: function
+Type: function
- 秒の値を返します。<x> の値は 1970年1月1日 0:00:00 からの秒数です。
- 例:
-
- PRINT DAY(NOW)
+日の値を返します。<x> の値は 1970年1月1日 0:00:00 からの秒数です。
+例:
+PRINT DAY(NOW)
- DEC
+DEC
- DEC(<x>)
+DEC(<x>)
- Type: function
+Type: function
- <x> の 10 進数を返します。<x> は文字列として渡す必要があります。
- Example:
-
- PRINT DEC("AB1E")
+<x> の 10 進数を返します。<x> は文字列として渡す必要があります。
+例:
+PRINT DEC("AB1E")
- DECLARE
+DECLARE
- 【1.0 build 10 追加】
- DECLARE <var>[,<var2>][,<var3>][,...] TYPE|ASSOC <c-type> | [ARRAY <size>]
+【1.0 build 10 追加】
+DECLARE <var>[,<var2>][,<var3>][,...] TYPE|ASSOC <c-type> | [ARRAY <size>]
- Type: statement
-
- GLOBAL の代わりに使用できます。互換性目的に使用する事が可能です。
+Type: statement
+GLOBAL の代わりに使用できます。互換性目的に使用する事が可能です。
- DECR
+DECR
- 【1.0 build 11 追加】
- DECR <x>[, <y>]
+【1.0 build 11 追加】
+DECR <x>[, <y>]
- Type: statement
+Type: statement
- 数値 <x> の変数を減少させます。減少量は <y> で指定します。
- 指定がない場合は 1 減少します。
- 例:
-
- x = 10
- DECR x
- PRINT x
- DECR x, 3
- PRINT x
+数値 <x> の変数を減少させます。減少量は <y> で指定します。
+指定がない場合は 1 減少します。
+例:
+x = 10
+DECR x
+PRINT x
+DECR x, 3
+PRINT x
- DEF FN
+DEF FN
- DEF FN <label> [(args)] = <value> | <expr>
+DEF FN <label> [(args)] = <value> | <expr>
- Type: statement
+Type: statement
- 値または命令にラベルを付けます。
- 例:
+値または命令にラベルを付けます。
+例:
- DEF FN func(x) = 3 * x
- PRINT func(12)
-
- DEF FN First$(x$) = LEFT$(x$, INSTR(x$, " ")-1)
- PRINT First$("One Two Three")
+DEF FN func(x) = 3 * x
+PRINT func(12)
+DEF FN First$(x$) = LEFT$(x$, INSTR(x$, " ")-1)
+PRINT First$("One Two Three")
- DELETE
+DELETE
- 【2.0 追加 - DELETE RECURSIVE】
- DELETE <FILE|DIRECTORY|RECURSIVE> <x$>
+【2.0 追加 - DELETE RECURSIVE】
+DELETE <FILE|DIRECTORY|RECURSIVE> <x$>
- Type: statement
+Type: statement
- DELETE FILE でファイルを削除します。
- DELELE DIRECTORY でディレクトリを削除します。
- DELELE RECURSIVE で指定されたディレクトリと中にあるファイル全てを削除します。
- エラーが生じた場合は CATCH を使う事ができます。
- Example:
-
- DELETE FILE "/tmp/data.txt"
- DELETE RECURSIVE "/usr/data/stuff"
+DELETE FILE でファイルを削除します。
+DELELE DIRECTORY でディレクトリを削除します。
+DELELE RECURSIVE で指定されたディレクトリと中にあるファイル全てを削除します。
+エラーが生じた場合は CATCH を使う事ができます。
+例:
+DELETE FILE "/tmp/data.txt"
+DELETE RECURSIVE "/usr/data/stuff"
- END
+END
- END [<value>]
+END [<command>]
- Type: statement
-
- プログラムを終了させます。
- <value> を含めると <value> で記載したプログラムへシェルに戻す事ができます。
+Type: statement
+プログラムを終了させます。
+<command> を含めると <command> で記載したプログラムへシェルに戻す事ができます。
- ENDFILE
+ENDFILE
- ENDFILE(<handle>)
+ENDFILE(<handle>)
- Type: function
-
- <handle> で開いたファイルが EOF(End of file)に達しているかを調べます。
- EOF になっている場合は 1 を返し、まだなっていない場合は 0 を返します。
- 例として OPEN を参照して下さい。
+Type: function
+<handle> で開いたファイルが EOF(End of file)に達しているかを調べます。
+EOF になっている場合は 1 を返し、まだなっていない場合は 0 を返します。
+例として OPEN を参照して下さい。
- EPRINT
+EPRINT
- 【2.2.0 追加】
- EPRINT [<value>] | [<text>] | [<variable>] | [<expression>] [FORMAT <format>[TO
- <variable>[SIZE <size>]] | [,] | [;]
+【2.2.0 追加】
+EPRINT [<value>] | [<text>] | [<variable>] | [<expression>] [FORMAT <format>[TO
+<variable>[SIZE <size>]] | [,] | [;]
- Type: statement
-
- 「stderror」へ出力する以外は PRINT に同じです。
+Type: statement
+「stderror」へ出力する以外は PRINT に同じです。
- EQ
+EQ
- 【1.0 追加】
- <x> EQ <y>
+【1.0 追加】
+<x> EQ <y>
- Type: operator
+Type: operator
- <x> と <y> が等しいかを調べます。見やすくするために IS を使う事もできます。
- EQ と IS は数値の比較のみに使用できます。
- 例:
+<x> と <y> が等しいかを調べます。見やすくするために IS を使う事もできます。
+EQ と IS は数値の比較のみに使用できます。
+例:
- IF q EQ 5 THEN
- PRINT "q equals 5"
- END IF
+IF q EQ 5 THEN
+ PRINT "q equals 5"
+END IF
- BaCon では代わりに = および == を使う事もできます。
- NE も参照して下さい。
-
- IF b$ = "Hello" THEN
- PRINT "world"
- END IF
+BaCon では代わりに = および == を使う事もできます。
+NE も参照して下さい。
+IF b$ = "Hello" THEN
+ PRINT "world"
+END IF
- EQUAL
+EQUAL
- EQUAL(<x$>, <y$>)
+EQUAL(<x$>, <y$>)
- Type: function
+Type: function
- <x$> と <y$> を比較し、等しいなら 1、異なるなら 0 を返します。
- 大文字と小文字の区別をしない比較に OPTION COMPARE を設定できます。
- 例:
+<x$> と <y$> を比較し、等しいなら 1、異なるなら 0 を返します。
+大文字と小文字の区別をしない比較に OPTION COMPARE を設定できます。
+例:
- IF EQUAL(a$, "Hello") THEN
- PRINT "world"
- END IF
+IF EQUAL(a$, "Hello") THEN
+ PRINT "world"
+END IF
- EQUAL は互換性下記のコードと互換性を持ちます:
-
- IF a$ = "Hello" THEN
- PRINT "world"
- END IF
+EQUAL は互換性下記のコードと互換性を持ちます:
+IF a$ = "Hello" THEN
+ PRINT "world"
+END IF
- ERROR
+ERROR
- ERROR
+ERROR
- Type: variable
-
- 最後のエラー番号が入っている予約変数です。
- この変数は実行の間にリセットされる事があります。
+Type: variable
+最後のエラー番号が入っている予約変数です。
+この変数は実行の間にリセットされる事があります。
- ERR$
+ERR$
- ERR$(<num>)
+ERR$(<num>)
- Type: function
+Type: function
- エラー版番号 <num> のエラーメッセージを返します。
- 例:
-
- PRINT ERR$(ERROR)
+エラー版番号 <num> のエラーメッセージを返します。
+例:
+PRINT ERR$(ERROR)
- EVEN
+EVEN
- EVEN(<x>)
+EVEN(<x>)
- Type: function
-
- Returns 1 if x is even, else returns 0.
+Type: function
+<x> の値が偶数の時は 1、奇数の場合は 0 を返します。
- EXEC$
+EXEC$
- EXEC$(<command$> [, <stdin$>])
+EXEC$(<command$> [, <stdin$>])
- Type: function
+Type: function
- システムコマンドを実行し、帰り値を得ます。
- 実行されたコマンドの帰り値は RETVAL に保存されます。
- STDIN の代わりとして <stdin$> を設定できます。
- システムコマンドの実行には SYSTEM もあります。
- 例:
-
- result$ = EXEC$("ls -l")
- result$ = EXEC$("bc", CONCAT$("123*456", NL$, "quit"))
+システムコマンドを実行し、帰り値を得ます。
+実行されたコマンドの帰り値は RETVAL に保存されます。
+STDIN の代わりとして <stdin$> を設定できます。
+システムコマンドの実行には SYSTEM もあります。
+例:
+result$ = EXEC$("ls -l")
+result$ = EXEC$("bc", CONCAT$("123*456", NL$, "quit"))
- EXIT
+EXIT
- 【1.0 build 28 追加】
- EXIT
+【1.0 build 28 追加】
+EXIT
- Type: statement
+Type: statement
- SUB・FUNCTION から抜けます。
- FUNCTION での帰り値は 0、文字列であれば空で帰ります。
-
- コードを見やすくするため、EXIT SUB・EXIT FUNCTION を記載する事もできます。
+SUB・FUNCTION から抜けます。
+FUNCTION での帰り値は 0、文字列であれば空で帰ります。
+コードを見やすくするため、EXIT SUB・EXIT FUNCTION を記載する事もできます。
- EXP
+EXP
- EXP(<x>)
+EXP(<x>)
- Type: function
-
- <x> の e (自然対数のベース) を返します。
+Type: function
+<x> の e (自然対数のベース) を返します。
- EXTRACT$
+EXTRACT$
- 【2.0 追加】
- EXTRACT$(<x$>, <y$>)
+【2.0 追加】
+EXTRACT$(<x$>, <y$>)
- Type: function
+Type: function
- 文字列 <x$> から <y4> を取り外します。
- Example:
-
- PRINT EXTRACT$("bacon program", "ar")
- PRINT EXTRACT$(name$, "e")
+文字列 <x$> から <y$> を取り外します。
+例:
+PRINT EXTRACT$("bacon program", "ar")
+PRINT EXTRACT$(name$, "e")
- FALSE
+FALSE
- FALSE
+FALSE
- Type: variable
-
- 返し値として 0 を返します。
+Type: variable
+返し値として 0 を返します。
- FILEEXISTS
+FILEEXISTS
- 【1.0.9 追加】
- FILEEXISTS(<filename>)
+【1.0.9 追加】
+FILEEXISTS(<filename>)
- Type: function
-
- ファイルが存在しているかどうかを返します。
- ファイルが存在している時は 1、存在していない時は 0 を返します。
+Type: function
+ファイルが存在しているかどうかを返します。
+ファイルが存在している時は 1、存在していない時は 0 を返します。
- FILELEN
+FILELEN
- FILELEN(<filename>)
+FILELEN(<filename>)
- Type: function
+Type: function
- <filename> で記載されたファイルのサイズを返します。
- エラーの場合は -1 を帰り値として返します。
- The ERR$ statement can be used to find out the error if TRAP is set to LOCAL.
- 例:
-
- length = FILELEN("/etc/passwd")
+<filename> で記載されたファイルのサイズを返します。
+エラーの場合は -1 を帰り値として返します。
+TRAP が LOCAL に設定されている場合、ERR$ はエラー発見に用いられることができます。
+例:
+length = FILELEN("/etc/passwd")
- FILETIME
+FILETIME
- 【1.0 build 25 追加】
- FILETIME(<filename>, <type>)
+【1.0 build 25 追加】
+FILETIME(<filename>, <type>)
- Type: function
+Type: function
- <filename> のタイムスタンプを返します。
- <type> で呼び出すタイプスタンプの種類を設定します。
- 0 = アクセス時間・1 = 更新時間・2 = ステータス変更時間
- 例:
-
- stamp = FILETIME("/etc/hosts", 0)
- PRINT "Last access: ", MONTH$(stamp), " ", DAY(stamp), ", ", YEAR(stamp)
+<filename> のタイムスタンプを返します。
+<type> で呼び出すタイプスタンプの種類を設定します。
+0 = アクセス時間・1 = 更新時間・2 = ステータス変更時間
+例:
+stamp = FILETIME("/etc/hosts", 0)
+PRINT "Last access: ", MONTH$(stamp), " ", DAY(stamp), ", ", YEAR(stamp)
- FILETYPE
+FILETYPE
- FILETYPE(<filename>)
+FILETYPE(<filename>)
- Type: function
+Type: function
- <filename> のファイルタイプを返します。
- エラーの場合は 0 を返します。
- The ERR$ statement can be used find out which error if TRAP is set to LOCAL.
- 返し値は以下のとおりです:
+<filename> のファイルタイプを返します。
+エラーの場合は 0 を返します。
+TRAP が LOCAL に設定されている場合、ERR$ で過去のエラーを検出できます。
+返し値は以下のとおりです。
値 内容
0 エラーまたは未決定
5 ネームパイプ (FIFO)
6 シンボリックリンク
7 ソケット
-
- FILL$
+FILL$
- FILL$(<x>, <y>)
+FILL$(<x>, <y>)
- Type: function
+Type: function
- <x> 文字分のアスキー番号 y の文字を返します。<y> の値は 0〜255 です。
- 例 「@」10文字を表示します:
-
- PRINT FILL$(10, ASC("@"))
+<x> 文字分のアスキー番号 y の文字を返します。<y> の値は 0〜255 です。
+例 「@」10文字を表示します:
+PRINT FILL$(10, ASC("@"))
- FLOOR
+FLOOR
- FLOOR(<x>)
+FLOOR(<x>)
- Type: function
+Type: function
- Returns the rounded down value of x. Note that this function always
- returns an integer value.
+<x> の値をこえない最大整数値を返します。
+正の値(0 を超える値)は round と同じですが、
+負の値(マイナスの値)ではより負の値が返される事に注意が必要です。
+例 -4 が返ります:
+PRINT FLOOR(-3.4)
- FOR
+FOR
- FOR <var> = <x> TO <y> [STEP <z>]
- <body>
- [BREAK]
- NEXT [<var>]
+FOR <var> = <x> TO <y> [STEP <z>]
+ <body>
+ [BREAK]
+NEXT [<var>]
- 【2.2.0 追加】
- FOR <var$> IN <source$> [STEP <z$>]
- <body>
- [BREAK]
- NEXT [<var>]
+【2.2.0 追加】
+FOR <var$> IN <source$> [STEP <z$>]
+ <body>
+ [BREAK]
+NEXT [<var>]
- Type: statement
+Type: statement
- FOR・NEXT で <body> 内を繰り返し処理します。
+FOR・NEXT で <body> 内を繰り返し処理します。
- STEP が指定されていない場合は <x> から <y> まで 1 ずつ増加します。
- 増加数を変える際は STEP <z> を指定します。
- 例:
+STEP が指定されていない場合は <x> から <y> まで 1 ずつ増加します。
+増加数を変える際は STEP <z> を指定します。
+例:
- FOR x = 1 TO 10 STEP 0.5
- PRINT x
- NEXT
+FOR x = 1 TO 10 STEP 0.5
+ PRINT x
+NEXT
- 文字列の場合、STEP が指定されていない場合は空白を区切りとして
- var$ へ呼び出します。
- 区切り文字の変更は STEP <z$> で行います。
- 例:
+文字列の場合、STEP が指定されていない場合は空白を区切りとして
+var$ へ呼び出します。
+区切り文字の変更は STEP <z$> で行います。
+例:
- FOR x$ IN "Hello cruel world"
- PRINT x$
- NEXT
-
- FOR y$ IN "1,2,3,4,5" STEP ","
- PRINT y$
- NEXT
+FOR x$ IN "Hello cruel world"
+ PRINT x$
+NEXT
+FOR y$ IN "1,2,3,4,5" STEP ","
+ PRINT y$
+NEXT
- FP
+FP
- FP (<name>)
+FP (<name>)
- Type: function
+Type: function
- <name> 関数のメモリアドレスを返します。
- 例:
+<name> 関数のメモリアドレスを返します。
+例:
- SUB Hello
- PRINT "Hello world"
- END SUB
-
- DECLARE (*func)() TYPE void
- func = FP(Hello)
- CALL (*func)()
+SUB Hello
+ PRINT "Hello world"
+END SUB
+DECLARE (*func)() TYPE void
+func = FP(Hello)
+CALL (*func)()
- FREE
+FREE
- FREE <x>
+FREE <x>
- Type: statement
-
- メモリを開放します。(MEMORY 参照). This statement also can be
- used to clear members of associative arrays.
+Type: statement
+メモリを開放します。(MEMORY 参照)
+配列を取り除くのに用いる事も可能です。
- FUNCTION
+FUNCTION
- FUNCTION <name> (<STRING <s> | NUMBER <i> | FLOATING <f> | VAR <v> SIZE <t>)
- <body>
- RETURN <x>
- ENDFUNCTION | END FUNCTION
+FUNCTION <name> (<STRING <s> | NUMBER <i> | FLOATING <f> | VAR <v> SIZE <t>)
+ <body>
+ RETURN <x>
+ENDFUNCTION | END FUNCTION
- Type: statement
+Type: statement
- 関数を定めます。LOCAL で設定されない場合、この関数はグローバル関数となり、
- 広域で使用できる状態になります。
- STRING・NUMBER・FLOATING 以外に C 言語の型も指定できます。
+関数(ファンクション)を定めます。
+LOCAL で設定されない場合、この関数はグローバル関数となり、
+広域で使用できる状態になります。
+STRING・NUMBER・FLOATING 以外に C 言語の型も指定できます。
- FUNCTION は常に RETURN 文で値または文字列を返します。
- FUNCTION が文字列を返す場合、<name> に $ を後ろに付けます。
- 例:
+FUNCTION は常に RETURN 文で値または文字列を返します。
+例:
- FUNCTION fh2cel(NUMBER fahrenheit)
- LOCAL celsius
- celsius = fahrenheit*9/5 + 32
- RETURN celsius
- END FUNCTION
-
- FUNCTION Hello$(STRING name$)
- RETURN "Hello " & name$ & " !"
- END FUNCTION
+FUNCTION fh2cel(NUMBER fahrenheit)
+ LOCAL celsius
+ celsius = fahrenheit*9/5 + 32
+ RETURN celsius
+END FUNCTION
+FUNCTION Hello$(STRING name$)
+ RETURN "Hello " & name$ & " !"
+END FUNCTION
- GETBYTE
+GETBYTE
- GETBYTE <memory> FROM <handle> [SIZE <size>]
+GETBYTE <memory> FROM <handle> [SIZE <size>]
- Type: statement
+Type: statement
- <handle> で開いたファイルからバイナリデータを取り出し、<memory> へ入れます。
- SIZE <size> でサイズを設定できます。OPTION MEMTYPE で単位が指定できます。
- 書き込みは PUTBYTE を用います。
- 例:
-
- OPEN prog$ FOR READING AS myfile
- bin = MEMORY(100)
- GETBYTE bin FROM myfile SIZE 100
- CLOSE FILE myfile
+<handle> で開いたファイルからバイナリデータを取り出し、<memory> へ入れます。
+SIZE <size> でサイズを設定できます。OPTION MEMTYPE で単位が指定できます。
+書き込みは PUTBYTE を用います。
+例:
+OPEN prog$ FOR READING AS myfile
+ bin = MEMORY(100)
+ GETBYTE bin FROM myfile SIZE 100
+CLOSE FILE myfile
- GETENVIRON$
+GETENVIRON$
- GETENVIRON$(<var$>)
+GETENVIRON$(<var$>)
- Type: function
-
- 環境変数 <var$> に入っている値を返します。値が入っていない場合はヌルの文字列を返します。
- SETENVIRON によって環境変数に値を入れる事ができます。
+Type: function
+環境変数 <var$> に入っている値を返します。
+値が入っていない場合はヌルの文字列を返します。
+SETENVIRON によって環境変数に値を入れる事ができます。
- GETFILE
+GETFILE
- GETFILE <var> FROM <handle>
+GETFILE <var> FROM <handle>
- Type: statement
-
- <handle> で開いたディレクトリからファイルを得ます。
- 読む毎にファイルを返します。
- ファイルを全て読んだ場合は空を返します。
- OPEN で開きます。
+Type: statement
+<handle> で開いたディレクトリからファイルを得ます。
+読む毎にファイルを返します。
+ファイルを全て読んだ場合は空を返します。
+OPEN で開きます。
- GETKEY
+GETKEY
- GETKEY
+GETKEY
- Type: function
+Type: function
- キー入力を待ち、入力されたキーを得ます。
- INPUT とは異なり enter・return を待たずに1文字を得ます。
- INPUT・WAIT も参照して下さい。
- 例:
-
- PRINT "Press <escape> to exit now..."
- key = GETKEY
- IF key = 27 THEN
- END
- END IF
+キー入力を待ち、入力されたキーを得ます。
+INPUT とは異なり enter・return を待たずに1文字を得ます。
+INPUT・WAIT も参照して下さい。
+例:
+PRINT "Press [Esc] to exit now..."
+key = GETKEY
+IF key = 27 THEN
+ END
+END IF
- GETLINE
+GETLINE
- GETLINE <var> FROM <handle>
+GETLINE <var> FROM <handle>
- Type: statement
+Type: statement
- <handle> で開いたメモリ領域から1行取り出します。
- メモリ領域は OPEN で開いたストリーミングモードでなければいけません。
- テキストは次の改行位置まで読まれます。
- 例:
+<handle> で開いたメモリ領域から1行取り出します。
+メモリ領域は OPEN で開いたストリーミングモードでなければいけません。
+テキストは次の改行位置まで読まれます。
+例:
- GETLINE txt$ FROM mymemory
-
- See also PUTLINE to store lines of text into memory areas.
+GETLINE txt$ FROM mymemory
+メモリ領域にテキスト情報を保存するために、PUTLINE を参照して下さい。
- GETPEER$
+GETPEER$
- 【1.0 build 29 追加】
- GETPEER$(<handle>)
+【1.0 build 29 追加】
+GETPEER$(<handle>)
- Type: function
+Type: function
- OPEN FOR SERVER で開いた <handle> の IP アドレス および ポート を得ます。
- 例:
-
- OPEN "localhost:51000" FOR SERVER AS mynet
- PRINT "Peer is: ", GETPEER$(mynet)
- CLOSE SERVER mynet
+OPEN FOR SERVER で開いた <handle> の IP アドレス および ポート を得ます。
+例:
+OPEN "localhost:51000" FOR SERVER AS mynet
+PRINT "Peer is: ", GETPEER$(mynet)
+CLOSE SERVER mynet
- GETX
+GETX
- 【1.0 build 13 追加】
- GETX
+【1.0 build 13 追加】
+GETX
- Type: function
+Type: function
- カーソルの横座標を返します。 ANSI 対応ターミナルが必要です。カーソル位置を設定するために GOTO を参照して下さい。
+カーソルの横座標を返します。 ANSI 対応ターミナルが必要です。
+カーソル位置を設定するために GOTO を参照して下さい。
- GETY
+GETY
- 【1.0 build 13 追加】
- GETY
+【1.0 build 13 追加】
+GETY
- Type: function
+Type: function
- カーソルの縦座標を返します。 ANSI 対応ターミナルが必要です。カーソル位置を設定するために GOTO を参照して下さい。
+カーソルの縦座標を返します。 ANSI 対応ターミナルが必要です。
+カーソル位置を設定するために GOTO を参照して下さい。
- GLOBAL
+GLOBAL
- 【1.0 build 10 追加】
- GLOBAL <var>[,<var2>,<var3>,...] [TYPE]|ASSOC <c-type> | [ARRAY <size>]
+【1.0 build 10 追加】
+GLOBAL <var>[,<var2>,<var3>,...] [TYPE]|ASSOC <c-type> | [ARRAY <size>]
- Type: statement
+Type: statement
- Explicitly declares a variable to a C-type. The ASSOC keyword is used to
- declare associative arrays. This is always a global declaration, meaning
- that variables declared with the GLOBAL keyword are visible in each part
- of the program. Use LOCAL for local declarations.
+C 言語の形式で変数を設定します。ASSOC は配列の設定に用います。
+これは広域な設定となります。
+GLOBAL で設定した変数はプログラムの各所で参照できます。
+ローカル設定には LOCAL を使用します。
- The ARRAY keyword is used to define a dynamic array, which can be
- resized with REDIM at a later stage in the program.
+ARRAY で配列数を指定する事ができます。
+REDIM を用いてこの数を変更する事が可能です。
- Optionally, within a SUB or FUNCTION it is possible to use GLOBAL in
- combination with RECORD to define a record variable which is visible
- globally.
+SUB・FUNCTION で GLOBAL を使用した場合、
+RECORD で値を指定して使用する事が可能です。
GLOBAL x TYPE float
GLOBAL q$
GLOBAL new_array TYPE float ARRAY 100
GLOBAL name$ ARRAY 25
- Multiple variables of the same type can be declared at once, using a
- comma separated list. In case of pointer variables the asterisk should
- be attached to the variable name:
+, を区切りとして同じタイプの変数を複数個設定できます。
+ポインター型変数の場合は変数名の頭に * を付けます。
GLOBAL x, y, z TYPE int
GLOBAL *s, *t TYPE long
-
- GOSUB
+GOSUB
- 【1.0 build 23 追加】
- GOSUB <label>
+【1.0 build 23 追加】
+GOSUB <label>
- Type: statement
+Type: statement
- <label> へ飛びます。LABEL を参照して下さい。
- RETURN で戻し、GOSUB の続きを実行する事ができます。
- SUB または FUNCTION は GOSUB の範囲を制限するものである事に注意して下さい。
- 外に飛ばす事ができません。
- 例:
+<label> へ飛びます。LABEL を参照して下さい。
+RETURN で戻し、GOSUB の続きを実行する事ができます。
+SUB または FUNCTION は GOSUB の範囲を制限するものである事に注意して下さい。
+外に飛ばす事ができません。
+例:
PRINT "Where are you?"
GOSUB there
LABEL there
PRINT "In a submarine!"
RETURN
-
- GOTO
+GOTO
- GOTO <label>
+GOTO <label>
- Type: statement
-
- <label> へ飛びます。LABEL を参照して下さい。
+Type: statement
+<label> へ制御を移します。LABEL を参照して下さい。
- GOTOXY
+GOTOXY
- GOTOXY <x>, <y>
+GOTOXY <x>, <y>
- Type: statement
+Type: statement
- カーソル位置を設定します。左上が 1, 1 となります。ANSI 互換ターミナルが必要です。例:
+カーソル位置を設定します。左上が 1, 1 となります。
+ANSI 互換ターミナルが必要です。
+例:
CLEAR
FOR x = 5 TO 10
PRINT "Hello world"
NEXT
GOTOXY 1, 12
-
- HEX$
+HEX$
- HEX$(<x>)
+HEX$(<x>)
- Type: function
-
- <x> の 16 進数を返します。値は文字列で返ります。
+Type: function
+<x> の 16 進数を返します。値は文字列で返ります。
- HOST$
+HOST$
- 【1.0 build 18 追加】
- HOST$(<name$>)
+【1.0 build 18 追加】
+HOST$(<name$>)
- Type: function
+Type: function
- <name$> がホスト名を含むとき、この機能は対応する IP アドレスを返します。
- <name$> が IP アドレスを含むならば、対応するホスト名を返します。
- ホスト名・IP アドレスへの変換ができない場合はエラーを返します。
- 例:
-
- PRINT HOST$("www.google.com")
- PRINT HOST$("127.0.0.1")
+<name$> がホスト名を含むとき、この機能は対応する IP アドレスを返します。
+<name$> が IP アドレスを含むならば、対応するホスト名を返します。
+ホスト名・IP アドレスへの変換ができない場合はエラーを返します。
+例:
+PRINT HOST$("www.google.com")
+PRINT HOST$("127.0.0.1")
- HOUR
+HOUR
- HOUR(<x>)
+HOUR(<x>)
- Type: function
-
- <x> の時を24時間単位(0〜23)で返します。
- <x> は1970年1月1日 0:00:00 からの秒数です。
+Type: function
+<x> の時を24時間単位(0〜23)で返します。
+<x> は1970年1月1日 0:00:00 からの秒数です。
- IF
+IF
- IF <expression> THEN
- <body>
- [ELIF]
- <body>
- [ELSE]
- [body]
- ENDIF | END IF | FI
+IF <expression> THEN
+ <body>
+[ELIF]
+ <body>
+[ELSE]
+ [body]
+ENDIF | END IF | FI
- Type: statement
+Type: statement
- Execute <body> if <expression> is true. If <expression> is not true then
- run the optional ELSE body. Multiple IF's can be written with ELIF. The
- IF construction should end with ENDIF or END IF or FI. Example:
+<expression> が正しい場合(真の場合)、THEN 以降の <body> を実行します。
+<expression> 正しくない場合は ELSE 以降の <body> を実行できます。
+復数の IF 文を使うために ELIF を使用する事が可能です。
+IF 文の終了として ENDIF ・ END IF ・ FI をいずれかと使用できます。
+例:
a = 0
IF a > 10 THEN
PRINT "a is smaller than 10"
END IF
- If only one function or statement has to be executed, then the
- if-statement also can be used without a body. For example:
+実行する <body> が一つしかない場合、THEN・ELSE に続けて記載する事ができます。
+例:
IF age > 18 THEN PRINT "You are an adult"
ELSE INPUT "Your age: ", age
- Use with care as nested IF/THEN statements using one function may
- confuse the parser.
+1 機能で入れ子になった IF・THEN は
+パーサを混乱させるかもしれない事に注意が必要です。
- IMPORT
+IMPORT
- IMPORT <function[(<type> <arg1>[, <type> <arg2>][, ...])]> FROM <library> TYPE
- <type> [ALIAS word]
+IMPORT <function[(<type> <arg1>[, <type> <arg2>][, ...])]>
+FROM <library> TYPE <type> [ALIAS <word>]
- Type: statement
+Type: statement
- Imports a function from a C library defining the type of returnvalue.
- Optionally, the type of arguments can be specified. Also optionally it
- is possible to define an alias under which the imported function will be
- known to BaCon. Examples:
+C 言語向けのライブラリの機能を取り込みます。FORM で戻り値の型を指定します。
+任意で <arg> と <type> を用いる事ができます。
+また、ALIAS で別名を指定する事が可能です。
+例:
IMPORT "ioctl" FROM "libc.so" TYPE int
IMPORT "gdk_draw_line(long, long, int, int, int, int)" FROM
"libgdk-x11-2.0.so" TYPE void
IMPORT "fork" FROM "libc.so" TYPE int ALIAS "FORK"
IMPORT "atan(double)" FROM "libm.so" TYPE double ALIAS "arctangens"
-
- INCLUDE
+INCLUDE
- INCLUDE <filename>[, <func1>][, <func2>][, ...]
+INCLUDE <filename>[, <func1>][, <func2>][, ...]
- Type: statement
+Type: statement
- 外部 BaCon ファイルを現在のプログラムに追加します。ネスト状の場合があります。
- <func1>, <func2>, ... を指定すると、追加するファンクションを指定する事ができます。
- 例:
+外部 BaCon ファイルを現在のプログラムに追加します。ネスト状の場合があります。
+<func1>, <func2>, ... を指定すると、追加するファンクションを指定する事ができます。
+例:
INCLUDE "beep.bac"
INCLUDE "hug.bac", INIT, WINDOW, DISPLAY
- INCR
+INCR
- 【1.0 build 11 追加】
- INCR <x>[, <y>]
+【1.0 build 11 追加】
+INCR <x>[, <y>]
- Type: statement
-
- 数値 <x> を増加します。
- <y> で増加量を指定します。指定がない場合は 1 増加します。
+Type: statement
+数値 <x> を増加します。
+<y> で増加量を指定します。指定がない場合は 1 増加します。
- INPUT
+INPUT
- INPUT [<text> [, ... ,]<variable[$]>
+INPUT [<text> [, ... ,]<variable[$]>
- Type: statement
+Type: statement
- 入力を求めます。 最後に $ を付ける場合は文字列の入力を求めます。
- $ がない場合は数字の入力を求めます。
- 例:
+入力を求めます。 最後に $ を付ける場合は文字列の入力を求めます。
+$ がない場合は数字の入力を求めます。
+例:
INPUT a$
PRINT "You entered the following: ", a$
- <text> を含める事で入力の際の文字を出力する事ができます。
- 例:
+<text> を含める事で入力の際の文字を出力する事ができます。
+例:
INPUT "What is your age? ", age
PRINT "You probably were born in ", YEAR(NOW) - age
-
- INSTR
+INSTR
- INSTR(<haystack$>, <needle$> [,<start>])
+INSTR(<haystack$>, <needle$> [,<start>])
- Type: function
+Type: function
- <haystack$> の中に <needle$> を検索します。
- 存在している場合最初の位置を返します。
- <start> を設定して検索開始位置を設定できます。
- ない場合は 0 を返します。
+<haystack$> の中に <needle$> を検索します。
+存在している場合最初の位置を返します。
+<start> を設定して検索開始位置を設定できます。
+ない場合は 0 を返します。
position = INSTR("Hello world", "wo")
PRINT INSTR("Don't take my wallet", "all", 10)
-
- INSTRREV
+INSTRREV
- INSTRREV(<haystack$>, <needle$> [,<start>])
+INSTRREV(<haystack$>, <needle$> [,<start>])
- Type: function
+Type: function
- <haystack$> から <needle$> を後方から検索します。
- <start> がある場合は後方から <start> 文字のところから検索します。
- 見つからない場合は 0 を返します。
-
- OPTION STARTPOINT で検索場所の指定が行えます。
+<haystack$> から <needle$> を後方から検索します。
+<start> がある場合は後方から <start> 文字のところから検索します。
+見つからない場合は 0 を返します。
+OPTION STARTPOINT で検索場所の指定が行えます。
- INTL$
+INTL$
- INTL$(<x$>)
+INTL$(<x$>)
- Type: function
-
- Specifies that <x$> should be taken into account for
- internationalization. All strings which are surrounded by INTL$ will be
- candidate for the template catalog file. This file is created when BaCon
- is executed with the '-x' switch. See also the chapter about
- internationalization and the TEXTDOMAIN statement.
+Type: function
+<x$> を国際化考慮します。
+INTL$ で囲まれた <x$> はテンプレートカタログファイルでの参照候補となります。
+BaCon で -x を付けて実行した場合のこのファイルは生成されます。
+国際化対応については TEXTDOMAIN も参照して下さい。
- ISFALSE
+ISFALSE
- ISFALSE(<x>)
+ISFALSE(<x>)
- Type: function
-
- Verifies if x is equal to 0.
+Type: function
+<x> が 0 かを調べます。
- ISTRUE
+ISTRUE
- ISTRUE(<x>)
+ISTRUE(<x>)
- Type: function
-
- Verifies if x is not equal to 0.
+Type: function
+<x> が 0 でないかを調べます。
- JOIN
+JOIN
- 【2.0 追加】
- JOIN <array> BY <sub> TO <string> SIZE <variable>
+【2.0 追加】
+JOIN <array> BY <sub> TO <string> SIZE <variable>
- Type: statement
+Type: statement
- 分割されている配列の文字列を一つの文字列に結合します。
- 配列の文字列間は <sub> が挿入されます。
- 結果は <string> に入ります。
- 結合する数は <variable> で設定します。
- 分割には SPLIT を用います。
- 例:
+分割されている配列の文字列を一つの文字列に結合します。
+配列の文字列間は <sub> が挿入されます。
+結果は <string> に入ります。
+結合する数は <variable> で設定します。
+分割には SPLIT を用います。
+例:
DECLARE name$[3]
name$[0] = "King"
name$[1] = "of"
name$[2] = "Holland"
JOIN name$ BY " " TO result$ SIZE 3
-
- LABEL
+LABEL
- LABEL <label>
+LABEL <label>
- Type: statement
-
- GOTO・GOSUB・CATCH GOTO で飛んでくる先を指定します。
- また RESTORE で以降にある DATA を読み込む際に用います。
- <label> には空白を含めてはいけません。
+Type: statement
+GOTO・GOSUB・CATCH GOTO で飛んでくる先を指定します。
+また RESTORE で以降にある DATA を読み込む際に用います。
+<label> には空白を含めてはいけません。
- LCASE$
+LCASE$
- LCASE$(<x$>)
+LCASE$(<x$>)
- Type: function
+Type: function
- 文字列 <x$> を小文字に変換して返します。
- 例:
-
- PRINT LCASE$("ThIs Is All LoWeRcAsE")
+文字列 <x$> を小文字に変換して返します。
+例:
+PRINT LCASE$("ThIs Is All LoWeRcAsE")
- LEFT$
+LEFT$
- LEFT$(<x$>, <y>)
+LEFT$(<x$>, <y>)
- Type: function
-
- <x$> の左 <y> 文字分を返します。
+Type: function
+<x$> の左 <y> 文字分を返します。
- LEN
+LEN
- LEN(<x$>)
+LEN(<x$>)
- Type: function
-
- <x$> の長さを返します。
+Type: function
+文字列 <x$> の長さを返します。
- LET
+LET
- LET <var> = <value> | <expr>
+LET <var> = <value> | <expr>
- Type: statement
+Type: statement
- Assigns a value or result from an expression to a variable. LET の文字列は省略する事ができます。
- 例:
+変数 <var> へ値 <value> または結果 <expr> を入れます。
+LET の文字列は省略する事ができます。
+例:
LET a = 10
-
- LOCAL
+LOCAL
- LOCAL <var>[,<var2>][,<var3>][,...] [TYPE <c-type>] [ARRAY <size>]
+LOCAL <var>[,<var2>][,<var3>][,...] [TYPE <c-type>] [ARRAY <size>]
- Type: statement
+Type: statement
- This statement only has sense within functions, subroutines or records.
- It defines a local variable <var> with C type <type> which will not be
- visible for other functions, subroutines or records, nor for the main
- program.
+FUNCTION・SUB・レコード内で有効な変数を設定します。
+LOCAL で設定された変数 <var> は他の FUNCTION・SUB・レコード および
+メインプログラムでは参照できません。
- If the TYPE keyword is omitted then variables are assumed to be of
- 'long' type. If TYPE is omitted and the variablename ends with a '$'
- then the variable will be a string.
+TYPE で設定する型 <c-type> は C 言語の型です。
+省略されている場合は long 型になります。
+<var> の最後に $ が含まれ、TYPE が省略されている場合は文字列として扱います。
- The ARRAY keyword is used to define a dynamic array, which can be
- resized with REDIM at a later stage in the program.
+ARRAY を用いて配列設定が可能です。
+この大きさは REDIM を用いて変更する事ができます。
- Example:
+例:
LOCAL tt TYPE int
LOCAL q$
LOCAL new_array TYPE float ARRAY 100
LOCAL name$ ARRAY 25
- Multiple variables of the same type can be declared at once, using a
- comma separated list. In case of pointer variables the asterisk should
- be attached to the variable name:
+, を区切りとして同じ型を持つ復数の変数を設定できます。
+またポインタ型を使用する場合は変数の頭に * を付けます。
LOCAL x, y, z TYPE int
LOCAL *s, *t TYPE long
-
- LOG
+LOG
- LOG(<x>)
+LOG(<x>)
- Type: function
-
- Returns the natural logarithm of <x>.
+Type: function
+<x> の自然対数を返します。
- LOOKUP
+LOOKUP
- 【1.0 build 15 追加】
- LOOKUP <assoc> TO <array> SIZE <variable>
+【1.0 build 15 追加】
+LOOKUP <assoc> TO <array> SIZE <variable>
- Type: statement
+Type: statement
- Retrieves all indexnames created in an associative array. The results
- are stored in <array>. As it sometimes is unknown how many elements this
- resulting array will contain, the array should not be declared
- explicitly. Instead, LOOKUP will declare the result array dynamically.
+配列で生成されたすべてのインデックス名を取り戻します。
+結果は <array> に返ります。
+この結果として生じる配列がどれくらいの要素を含むかが分からない場合、
+配列数を固定させて宣言させてはいけません。
+この場合は LOOKUP を用いて配列を設定して下さい。
- If LOOKUP is being used in a function or sub, then <array> will have a
- local scope. Else <array> will be visible globally, and can be accessed
- within all functions and subs.
+LOOKUP を FUNCTION や SUB で用いる場合、配列はローカル扱いとなります。
+そうでなければ配列は広域扱いとなり、全ての FUNCTION・SUB で使用できます。
- The total amount of elements created in this array is stored in
- <variable>. This variable can be declared explicitly using LOCAL or
- GLOBAL. Example:
+配列の数は <variable> に返します。
+変数は LOCAL または GLOBAL を使って、はっきりと設定させることができます。
+例:
LOOKUP mortal TO men$ SIZE amount
FOR x = 0 TO amount - 1
PRINT men$[x]
NEXT
-
- MAKEDIR
+MAKEDIR
- MAKEDIR <directory>
+MAKEDIR <directory>
- Type: statement
+Type: statement
- 空のディレクトリを作ります。親ディレクトリも存在しない場合は生成されます。
- If the directory already exists then it is recreated. Errors like write
- permissions, disk quota issues and so on can be captured with CATCH.
- 例:
+空のディレクトリを作ります。親ディレクトリも存在しない場合は生成されます。
+すでにディレクトリが存在している場合は再生成されます。
+書き込み権限やディスク領域の容量割り当て(quota)、issues などのエラーを得るため
+CATCH を使用する事が可能です。
+例:
MAKEDIR "/tmp/mydir/is/here"
-
- MAXRANDOM
+MAXRANDOM
- MAXRANDOM
+MAXRANDOM
- Type: variable
+Type: variable
- RND が生成する最大値が入ります。予約変数です。
- 実際の値は OS によって異なるかもしれません。
+RND が生成する最大値が入ります。予約変数です。
+実際の値は OS によって異なるかもしれません。
- MEMCHECK
+MEMCHECK
- 【2.0 追加】
- MEMCHECK(<memory address>)
+【2.0 追加】
+MEMCHECK(<address>)
- Type: function
+Type: function
- Verifies if <memory address> is accessible, in which case a '1' is
- returned. If not, this function returns a '0'. Example:
+メモリ領域の番地 <address> へアクセスできるかを確認します。
+可能な場合は 1、不可能な場合は 0 を返します。
+例:
IF MEMCHECK(mem) THEN POKE mem, 1234
-
- MEMORY
+MEMORY
- MEMORY(<x>)
+MEMORY(<x>)
- Type: function
+Type: function
- Claims memory of x size, returning a handle to the address where the
- memory block resides. Use FREE to release the memory. Note that OPTION
- MEMTYPE can influence the type of memory created. Example creating a
- memory area to store integers:
+メモリを <x> サイズ確保し、確保されたメモリ領域のハンドルを返します。
+FREE を用いて確保したメモリを解放する事ができます。
+OPTION MEMTYPE により生成するメモリ領域の型を変化させます。
+整数を保存するためにメモリ領域を作成している例:
OPTION MEMTYPE int
area = MEMORY(100)
-
- MEMREWIND
+MEMREWIND
- MEMREWIND <handle>
+MEMREWIND <handle>
- Type: statement
-
- Returns to the beginning of a memory area opened with <handle>.
+Type: statement
+メモリ領域を <handle> で開き、その開始位置を返します。
- MEMTELL
+MEMTELL
- 【1.0.8 追加】
- MEMTELL(handle)
+【1.0.8 追加】
+MEMTELL(handle)
- Type: function
+Type: function
- Returns the current position in the memory area opened with <handle>.
+メモリ領域 <handle> 現在位置を返します。
- MID$
+MID$
- MID$(<x$>, <y>[, <z>])
+MID$(<x$>, <y>[, <z>])
- Type: function
+Type: function
- <x$> を <y> 文字から <z> 文字分返します。<z> を省略した場合は <y> 文字以降全てを返します。
- 例:
+<x$> を <y> 文字から <z> 文字分返します。
+<z> を省略した場合は <y> 文字以降全てを返します。
+例:
txt$ = "Hello cruel world"
PRINT MID$(txt$, 7, 5)
-
- MINUTE
+MINUTE
- MINUTE(x)
+MINUTE(x)
- Type: function
-
- x の秒(0〜59)を返します。x は 1970年1月1日 0:00:00 からの秒数です。
+Type: function
+x の分(0〜59)を返します。x は 1970年1月1日 0:00:00 からの秒数です。
- MOD
+MOD
- MOD(<x>, <y>)
+MOD(<x>, <y>)
- Type: function
-
- <x>÷<y> の余りを返します。
+Type: function
+<x>÷<y> の余りを返します。
- MONTH
+MONTH
- MONTH(<x>)
+MONTH(<x>)
- Type: function
-
- 月(1〜12)を返します。<x> は1970年1月1日 0:00:00 からの秒数です。
+Type: function
+<x> の月(1〜12)を返します。<x> は1970年1月1日 0:00:00 からの秒数です。
- MONTH$
+MONTH$
- MONTH$(<x>)
+MONTH$(<x>)
- Type: function
-
- 月をシステムの LOCALE に合わせた文字列で返します。
- (LOCALE が C なら "January" "February" など)
- <x> は 1970年1月1日 0:00:00 からの秒数です。
+Type: function
+月をシステムの LOCALE に合わせた文字列で返します。
+(LOCALE が C なら "January" "February" など)
+<x> は 1970年1月1日 0:00:00 からの秒数です。
- NE
+NE
- 【1.0 追加】
- <x> NE <y>
+【1.0 追加】
+<x> NE <y>
- Type: operator
+Type: operator
- Checks if x and y are not equal. Instead, ISNOT can be used as well to
- improve code readability. The NE and ISNOT operators only work for
- numerical comparisons.
-
- Next to these, BaCon also accepts the '!=' and '<>' constructs for
- comparison. These work both for numerical and string comparisons. See
- also EQ.
+<x> と <y> が等しくないかと調べます。
+コードを読みやすくするために ISNOT を代用する事もできます。
+NE および ISNOT は数の比較として動作します。
+BaCon では != や <> も用いる事もできます。
+これらは数以外に文字列でも機能します。
+EQ も参照して下さい。
- NL$
+NL$
- NL$
+NL$
- Type: variable
-
- 改行の文字を返します。
+Type: variable
+改行文字を返します。
- NNTL$
+NNTL$
- 【1.0 build 22 追加】
- NNTL$(<x$>, <y$>, <value>)
+【1.0 build 22 追加】
+NNTL$(<x$>, <y$>, <value>)
- Type: function
+Type: function
- Specifies that <x$> should be taken into account for
- internationalization. This is a variation to INTL$. With NNTL$
- singularities and multitudes can be specified, which are candidate for
- the template catalog file. This file is created when BaCon is executed
- with the '-x' switch. See also TEXTDOMAIN and INTL$ and the chapter on
- internationalization. Example:
+<x$> を国際化考慮します。NNTL$ は INTL$ の拡張版です。
+NNTL$ を用いると復数の候補を指定する事ができます。
+これらはカタログファイルの候補となります。
+このファイルを生成するために bacon で -x を付けて実行します。
+国際化対応のために TEXTDOMAIN および INTL$ を参照して下さい。
+例:
LET x = 2
PRINT x FORMAT NNTL$("There is %ld green bottle\n", "There are %ld green
bottles\n", x)
-
- NOT
+NOT
- NOT(<x>)
+NOT(<x>)
- Type: function
-
- <x> の(論理値)否定を返します。
+Type: function
+<x> の(論理値)否定を返します。
- NOW
+NOW
- NOW
+NOW
- Type: function
-
- 現在の時間を1970年1月1日以降の秒数で返します。
+Type: function
+現在の時間を1970年1月1日以降の秒数で返します。
- ODD
+ODD
- ODD(<x>)
+ODD(<x>)
- Type: Function
-
- Returns 1 if x is odd, else returns 0.
+Type: Function
+<x> が奇数なら 1、偶数なら 0 を返します。
\ No newline at end of file
- OPEN
+OPEN
- OPEN <file|dir|address> FOR
- READING|WRITING|APPENDING|READWRITE|DIRECTORY|NETWORK [FROM
- address[:port]]|SERVER|MEMORY AS <handle>
+OPEN <file|dir|address>
+FOR READING|WRITING|APPENDING|READWRITE|DIRECTORY|NETWORK
+[FROM address[:port]]|SERVER|MEMORY AS <handle>
- Type: statement
+Type: statement
- <file> <dir> <address> を開き <handle> へ割り当てます。
- 割り当てた <handle> は READING・WRITING・APPENDING・READWRITE で使用できます。
- REDING は読み出し専用、WRITING・APPENDING は書き込み専用、
- READWRITE は読み書き療法を可能にします。
- 例:
+<file> <dir> <address> を開き <handle> へ割り当てます。
+割り当てた <handle> は READING・WRITING・APPENDING・READWRITE で使用できます。
+REDING は読み出し専用、WRITING・APPENDING は書き込み専用、
+READWRITE は読み書き両方を可能にします。
+例:
OPEN "data.txt" FOR READING AS myfile
WHILE NOT(ENDFILE(myfile)) DO
WEND
CLOSE FILE myfile
- DIRECTORY はディレクトリを開きます。
- 読みだすとディレクトリ内のファイルを返します。
- 例:
+DIRECTORY はディレクトリを開きます。
+読みだすとディレクトリ内のファイルを返します。
+例:
OPEN "." FOR DIRECTORY AS mydir
REPEAT
UNTIL ISFALSE(LEN(myfile$))
CLOSE DIRECTORY mydir
- NWTWORK はネットアドレスを開きます。
- オプション FORM を用いて IP アドレス・ポート番号を設定する事ができます。
- 例:
+NETWORK はネットアドレスを開きます。
+オプション FORM を用いて IP アドレス・ポート番号を設定する事ができます。
+例:
OPEN "www.google.com:80" FOR NETWORK AS mynet
SEND "GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n" TO mynet
PRINT total$
CLOSE NETWORK mynet
- SERVER は入って来るネットワーク接続を扱うサーバとして開きます。
- 同じホストと港を用いた TCP モードで複数回アクセスするとき、
- OPEN SERVER は新しいソケットを作らず、
- もう一つの入って来る接続に順応します。
- IP アドレスの代わりに ワイルドカード * を用いて
- 全インターフェースを聞くのに用いることができます。
- プロトコルの設定に OPTION NETWORK を参照して下さい。
+SERVER は入って来るネットワーク接続を扱うサーバとして開きます。
+同じホストと港を用いた TCP モードで複数回アクセスするとき、
+OPEN SERVER は新しいソケットを作らず、
+もう一つの入って来る接続に順応します。
+IP アドレスの代わりに ワイルドカード * を用いて
+全インターフェースを聞くのに用いることができます。
+プロトコルの設定に OPTION NETWORK を参照して下さい。
OPEN "*:51000" FOR SERVER AS myserver
WHILE NOT(EQUAL(LEFT$(dat$, 4), "quit")) DO
WEND
CLOSE SERVER myserver
- MEMORY はメモリ領域を開いて使用することができます。
+MEMORY はメモリ領域を開いて使用することができます。
data = MEMORY(500)
OPEN data FOR MEMORY AS mem
GETLINE txt$ FROM mem
CLOSE MEMORY mem
PRINT txt$
-
- OPTION
+OPTION
- 【1.0.7 追加 - OPTION BASE】
- 【1.0 build 11 追加 - OPTION COMPARE】
- 【1.0 build 12 追加 - OPTION SOCKET】
- 【1.0 build 26 追加 - OPTION STARTPOINT】
- OPTION <BASE x> | <COMPARE x> | <SOCKET x> | <NETWORK type [ttl]> |
- <MEMSTREAM x> | <MEMTYPE type> | <COLLAPSE x> | <INTERNATIONAL x> |
- <STARTPOINT x>
+【1.0.7 追加 - OPTION BASE】
+【1.0 build 11 追加 - OPTION COMPARE】
+【1.0 build 12 追加 - OPTION SOCKET】
+【1.0 build 26 追加 - OPTION STARTPOINT】
+OPTION <BASE x> | <COMPARE x> | <SOCKET x> | <NETWORK type [ttl]> |
+<MEMSTREAM x> | <MEMTYPE type> | <COLLAPSE x> | <INTERNATIONAL x> |
+<STARTPOINT x>
- Type: statement
+Type: statement
- オプション値を設定します。通常はプログラム開始時にこの設定を行います。
+オプション値を設定します。通常はプログラム開始時にこの設定を行います。
* BASE
配列の下限を設定します。デフォルトは 0 です。
値は char・short・int・long・float・double・char* で、
デフォルトは char (1 バイト) です。
- * COLLAPSE argument specifies if the results of the SPLIT
- statement may contain empty results (0) in case the separator occurs
- as a sequence in the target string, or not (1). Default value is 0.
+ * COLLAPSE
+ 実行時の引数 ARGUMENT が空の場合に含める値を設定します。
+ 0 場合は空、1 の場合は対象文字列を含めます。
- * INTERNATIONAL argument enables support for internationalization
- of strings. It sets the textdomain for INTL$ and NNTL$ to the
- current filename. See also TEXTDOMAIN and the chapter on creating
- internationalization files. The default value is 0.
-
- * STARTPOINT argument has impact on the way the INSTRREV function
- returns its results. When set to 1, the result of the INSTRREV
- function is counted from the end of the string. Default value is 0
- (counting from the beginning of the string).
+ * INTERNATIONAL
+ 文字列の国際化を有効にします。
+ TEXTDOMAIN・INTL$・NNTL$ で使用するカレントファイル名を設定します。
+ TEXTDOMAIN と国際化を参照して下さい。デフォルト値は 0 です。
+ * STARTPOINT
+ INSTRREV の結果を設定します。0 の場合は文字列の頭からの文字数、
+ 1 の場合は文字の後ろからの文字数で返します。デフォルトは 0 です。
- OR
+OR
- <x> OR <y>
+<x> OR <y>
- Type: operator
-
- <x> と <y> の論理和を返します。「OR」の代わりに「|」を使う事ができます。
+Type: operator
+<x> と <y> の論理和を返します。「OR」の代わりに「|」を使う事ができます。
- OS$
+OS$
- OS$
+OS$
- Type: function
-
- マシン名と現在の OS 名を返します。
+Type: function
+マシン名と現在の OS 名を返します。
- PEEK
+PEEK
- PEEK(<address>)
+PEEK(<address>)
- Type: function
-
- メモリの <address> から値を取り出します。
- 取り出す大きさは OPTION MEMTYPE で設定します。
+Type: function
+メモリの <address> から値を取り出します。
+取り出す大きさは OPTION MEMTYPE で設定します。
- PI
+PI
- PI
+PI
- Type: variable
-
- 円周率 3.1415926536 の数値を返します。予約変数です。
+Type: variable
+円周率 3.1415926536 の数値を返します。予約変数です。
- POKE
+POKE
- POKE <address>, <value>
+POKE <address>, <value>
- Type: statement
+Type: statement
- メモリの <addrees> に <value> を入れます。
- メモリからの取り出しには PEEK を用います。
- 保存サイズは OPTION MEMTYPE で設定できます。
- 例:
+メモリの <addrees> に <value> を入れます。
+メモリからの取り出しには PEEK を用います。
+保存サイズは OPTION MEMTYPE で設定できます。
+例:
OPTION MEMTYPE float
mem = MEMORY(500)
POKE mem, 32.123
-
- POW
+POW
- POW(<x>, <y>)
+POW(<x>, <y>)
- Type: function
-
- Raise x to the power of y.
+Type: function
+指数表現として <x> の <y> 乗を返します。
- PRAGMA
+PRAGMA
- 【1.0 bulid 29 追加】
- PRAGMA <OPTIONS x> | <LDFLAGS x> | <COMPILER x> | <INCLUDE x>
+【1.0 bulid 29 追加】
+PRAGMA <OPTIONS x> | <LDFLAGS x> | <COMPILER x> | <INCLUDE x>
- Type: statement
+Type: statement
- Instead of passing commandline arguments to influence the behavior of
- the compiler, it is also possible to define these arguments
- programmatically. Mostly these arguments are used when embedding
- variables or library dependent structures into BaCon code. Example when
- SDL code is included in the BaCon program:
+コンパイラの動作としてコマンドラインにオプションを入れる代わりに
+PRAGMA を用いて指定する事ができます。
+BaCon コードに値やライブラリを付加する時に使用する事ができます。
+BaCon プログラムに SDL コードを挿入する例:
PRAGMA LDFLAGS SDL
PRAGMA INCLUDE SDL/SDL.h
- Example when GTK2 code is included in the BaCon program:
+BaCon プログラムに GTK2 コードを挿入する例:
PRAGMA LDFLAGS `pkg-config --cflags --libs gtk+-2.0`
PRAGMA INCLUDE gtk-2.0/gtk/gtk.h
PRAGMA COMPILER gcc
- Example on passing optimization parameters to the compiler:
+コンパイラパラメータを設定する例:
PRAGMA OPTIONS -O2 -s
- Multiple arguments can be passed too:
+復数の設定を行う事もできます。
PRAGMA LDFLAGS iup cd iupcd im
PRAGMA INCLUDE iup.h cd.h cdiup.h im.h im_image.h
- PRINT
+PRINT
- PRINT [<value>] | [<text>] | [<variable>] | [<expression>] [FORMAT <format>[TO
- <variable>[SIZE <size>]] | [,] | [;]
+PRINT [<value>] | [<text>] | [<variable>] | [<expression>]
+[FORMAT <format>[TO <variable>[SIZE <size>]] | [,] | [;]
- Type: statement
+Type: statement
- 標準出力を行います。stderr へ出力したい場合は EPRINT を用いて下さい。
- 文末にセミコロン ; を入れる事で改行の出力を行わないようになります。
- 例:
+標準出力を行います。stderr へ出力したい場合は EPRINT を用いて下さい。
+文末にセミコロン ; を入れる事で改行の出力を行わないようになります。
+例:
PRINT "This line does ";
PRINT "end here: ";
PRINT linenr + 2
- 復数の出力を行う場合はコンマ , で区切ります。
- 例:
+復数の出力を行う場合はコンマ , で区切ります。
+例:
PRINT "This is operating system: ", OS$
PRINT "Sum of 1 and 2 is: ", 1 + 2
- オプションの FORMAT を用いて出力フォーマットを定める事ができます。
- フォーマットは C 言語の printf 命令に類似します。
- 例:
+オプションの FORMAT を用いて出力フォーマットを定める事ができます。
+フォーマットは C 言語の printf 命令に類似します。
+例:
PRINT "My age is ", 42, " years which is ", 12 + 30 FORMAT "%s%d%s%d\n"
- FORMAT を使用した場合は数字を文字列として出力されます。
- TO を用いて出力結果を収納できます。SIZE によって長さを決める事もできます。
- 長さの指定がない場合は 512 文字になります。
+FORMAT を使用した場合は数字を文字列として出力されます。
+TO を用いて出力結果を収納できます。SIZE によって長さを決める事もできます。
+長さの指定がない場合は 512 文字になります。
t = NOW + 300
PRINT HOUR(t), MINUTE(t), SECOND(t) FORMAT ".2ld%.2ld%.2ld" TO time$
PRINT MONTH$(t) FORMAT "%s" TO current$ SIZE 15
-
- PROTO
+PROTO
- 【1.0 build 10 追加】
- PROTO <function name>[,<function name> ][, ...] [ALIAS <word>]
+【1.0 build 10 追加】
+PROTO <function name>[,<function name> ][, ...] [ALIAS <word>]
- Type: statement
+Type: statement
- Defines an external function so it is accepted by the BaCon parser.
- Mutliple function names may be mentioned but these should be separated
- by a comma. Optionally, PROTO accepts an alias which can be used instead
- of the original function name. During compilation the BaCon program must
- explicitly be linked with an external library to resolve the function
- name. Examples:
+BaCon パーサーによって受けられるよう外部ファンクションを定めます。
+復数のファンクションを , 区切りを指定できます。
+ALIAS を用いて別名を設定する事が可能です。
+コンパイルで BaCon プログラムはファンクション毎に分解するため、
+外部ライブラリにはっきりとリンクされなければなりません。
+例:
PROTO glClear, glClearColor, glEnable
PROTO "glutSolidTeapot" ALIAS "TeaPot"
-
- PULL
+PULL
- PULL <x>
+PULL <x>
- Type: statement
+Type: statement
- スタックから値を取り出し <x> へ収納します。<x> は変数である必要があります。
- スタックは減少し次の値に移します。
-
- スタックが最後の値に達した場合、PULL を実行すると最後の値を返します。
- 何も PUSH を実行されていなかった場合、
- 数値としては 0、文字列としてはヌルを返します。
- スタックへ値を入れるために PUSH を参照して下さい。
+スタックから値を取り出し <x> へ収納します。<x> は変数である必要があります。
+スタックは減少し次の値に移します。
+スタックが最後の値に達した場合、PULL を実行すると最後の値を返します。
+何も PUSH を実行されていなかった場合、
+数値としては 0、文字列としてはヌルを返します。
+スタックへ値を入れるために PUSH を参照して下さい。
- PUSH
+PUSH
- PUSH <x>|<expression>
+PUSH <x>|<expression>
- Type: statement
+Type: statement
- 値 <x> または <expression> をスタックへ収納します。
- スタックの制限はメモリが許される限り行う事が可能です。
- スタックは LIFO(Last In, First Out=最後に入れた物が最初に取り出される)
- が原則です。
+値 <x> または <expression> をスタックへ収納します。
+スタックの制限はメモリが許される限り行う事が可能です。
+スタックは LIFO(Last In, First Out=最後に入れた物が最初に取り出される)
+が原則です。
- スタックから取り出すために PULL を参照して下さい。
+スタックから取り出すために PULL を参照して下さい。
' Initially create a new 0 value for stack
' This will only be 0 when stack wasn't declared before
- PUTBYTE
+PUTBYTE
- PUTBYTE <memory> TO <handle> [SIZE <x>]
+PUTBYTE <memory> TO <handle> [SIZE <x>]
- Type: statement
-
- メモリ領域からバイナリーデータを <handle> で開いているファイルへ収納します。
- SIZE <x> を用いて収納する容量をバイト単位で決める事ができます。
- 省略した時は 1 バイトです。OPTION MEMTYPE で単位を決める事もできます。
- GETBYTE が逆の動作をします。例は GETBYTE を参照して下さい。
+Type: statement
+メモリ領域からバイナリーデータを <handle> で開いているファイルへ収納します。
+SIZE <x> を用いて収納する容量をバイト単位で決める事ができます。
+省略した時は 1 バイトです。OPTION MEMTYPE で単位を決める事もできます。
+GETBYTE が逆の動作をします。例は GETBYTE を参照して下さい。
- PUTLINE
+PUTLINE
- PUTLINE <text>|<var> TO <handle>
+PUTLINE <text>|<var> TO <handle>
- Type: statement
+Type: statement
- <handle> で開いているメモリ領域にデータを収納します。
- 改行を得て終了を終わらせます。
- メモリ領域は OPEN で streaming mode 設定で開いている必要があります。
- 例:
+<handle> で開いているメモリ領域にデータを収納します。
+改行を得て終了を終わらせます。
+メモリ領域は OPEN で streaming mode 設定で開いている必要があります。
+例:
PUTLINE "hello world" TO mymemory
-
- RANDOM
+RANDOM
- 【1.0.9 追加】
- RANDOM (<x>)
+【1.0.9 追加】
+RANDOM (<x>)
- Type: function
+Type: function
- 0〜x-1 の間の整数で乱数を得ます。
- 小数を含む乱数の生成は RND を用います。
+0〜x-1 の間の整数で乱数を得ます。
+小数を含む乱数の生成は RND を用います。
- 1〜100 までの乱数を得る例:
+1〜100 までの乱数を得る例:
number = RANDOM(100) + 1
-
- READ
+READ
- READ <x>[, <x2>][, <x3>][, ...]
+READ <x>[, <x2>][, <x3>][, ...]
- Type: statement
+Type: statement
- DATA ブロックから値を読みだし、<x> に入れます。例:
+DATA ブロックから値を読みだし、<x> に入れます。
+例:
LOCAL dat[8]
FOR i = 0 TO 7
NEXT
DATA 10, 20, 30, 40, 50, 60, 70, 80
- 復数の値を指定する事もできます。
+復数の値を指定する事もできます。
READ a, b, c, d$
DATA 10, 20, 30, "BaCon"
- RESTORE によって読みだし開始位置を指定する事ができます。
-
+RESTORE によって読みだし開始位置を指定する事ができます。
- READLN
+READLN
- READLN <var> FROM <handle>
+READLN <var> FROM <handle>
- Type: statement
+Type: statement
- <handle> で指定したファイルからアスキーデータを読み込み、<var> へ入れます。
- バイナリーデータを扱う場合は GETBYTE を用いて下さい。
- 例:
+<handle> で指定したファイルからアスキーデータを読み込み、<var> へ入れます。
+バイナリーデータを扱う場合は GETBYTE を用いて下さい。
+例:
READLN txt$ FROM myfile
-
- RECEIVE
+RECEIVE
- RECEIVE <var> FROM <handle> [CHUNK <size> [SIZE <amount>]]
+RECEIVE <var> FROM <handle> [CHUNK <size> [SIZE <amount>]]
- Type: statement
+Type: statement
- 変数またはメモリの領域に <handle> のネットからデータを読みます。
- CHUNK <size> で読み込み量を指定する事ができます。
- 指定がない場合はバッファが空になるまで、データを読みます。
+変数またはメモリの領域に <handle> のネットからデータを読みます。
+CHUNK <size> で読み込み量を指定する事ができます。
+指定がない場合はバッファが空になるまで、データを読みます。
- 実際に受信する量は SIZE <amount> で設定します。 If the amount of bytes received is 0, then the other side has closed the connection in an orderly fashion. In such a situation the network connection needs to be reopened.
- 例:
+実際に受信する量は SIZE <amount> で設定します。
+受信結果が 0 バイトの場合、相手サイドによって接続は閉じられています。
+そのよう場合、ネットワーク接続を再開する必要があります。
+例:
OPEN "www.google.com:80" FOR NETWORK AS mynet
SEND "GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n" TO mynet
total$ = CONCAT$(total$, dat$)
UNTIL ISFALSE(WAIT(mynet, 500))
CLOSE NETWORK mynet
-
- RECORD
+RECORD
- 【1.0 build 10 追加】
- RECORD <var>
- LOCAL <member1> TYPE <type>
- LOCAL <member2> TYPE <type>
- ....
- END RECORD
+【1.0 build 10 追加】
+RECORD <var>
+ LOCAL <member1> TYPE <type>
+ LOCAL <member2> TYPE <type>
+ ....
+END RECORD
- Type: statement
+Type: statement
- Defines a record <var> with members. If the record is defined in the
- mainprogram, it automatically will be globally visible. If the record is
- defined within a function, the record will have a local scope, meaning
- that it is only visible within that function. To declare a global record
- in a function, use the DECLARE or GLOBAL keyword.
+<var> のレコードにメンバー <member> を定義します。
+メインプログラムに RECORD を用いた場合、公式に利用されます。
+FUNCTION 内で利用された場合はその内部でローカル利用されます。
+グローバル宣言を行う場合は DECLARE や GLOBAL を用いて下さい。
- The members of a record should be defined using the LOCAL statement and
- can be accessed with the 'var.member' notation. Also refer to WITH for
- assigning values to multiple members at the same time. Example:
+各メンバーは LOCAL で設定され、'var.member' で参照します。
+同時に復数のメンバーを割り当てる事が可能です。
+例:
RECORD var
LOCAL x
var.x = 10
var.y = 20
PRINT var.x + var.y
-
- REDIM
+REDIM
- 【1.0 build 26 追加】
- REDIM <var> TO <size>
+【1.0 build 26 追加】
+REDIM <var> TO <size>
- Type: statement
+Type: statement
- Redimensions a dynamic array to a new size. The contents of the array
- will be preserved. If the array becomes smaller then the elements at the
- end of the array will be cleared. The dynamic array has to be declared
- previously using DECLARE or LOCAL. Example:
+配列のサイズを改めます。配列の中身は保存されます。
+含まれていた配列より小さな値が設定された場合、それを超える配列は消去されます。
+この入れるは DECLARE や LOCAL を用いて予め設定されていなければいけません。
+例:
REDIM a$ TO 20
-
- REGEX
+REGEX
- REGEX (<txt$>, <expr$>)
+REGEX (<txt$>, <expr$>)
- Type: function
+Type: function
- POSIX 拡張正規表現 <expr$> で文字列 <txt$> を検索します。
- 検索一致する場合は最初に見つかった位置を返し値として返します。
- 見つからない場合は 0 を返し値として返します。
- 見つかった文字列の長さは REGLEN を用いて得る事ができます。
+POSIX 拡張正規表現 <expr$> で文字列 <txt$> を検索します。
+検索一致する場合は最初に見つかった位置を返し値として返します。
+見つからない場合は 0 を返し値として返します。
+見つかった文字列の長さは REGLEN を用いて得る事ができます。
- OPTION COMPARE を用いて大文字・小文字の区別が設定できます。
- 例:
+OPTION COMPARE を用いて大文字・小文字の区別が設定できます。
+例:
' 英文を検索します
PRINT REGEX("Hello world", "[[:alnum:]]")
- REGLEN
+REGLEN
- 【2.2.0 追加】
- REGLEN
+【2.2.0 追加】
+REGLEN
- Type: variable
-
- REGEX で実行した長さを返します。予約変数です。
+Type: variable
+REGEX で実行した長さを返します。予約変数です。
- RELATE
+RELATE
- 【1.0 build 15 追加】
- RELATE <assocA> TO <assocB>[, assocC, ...]
+【1.0 build 15 追加】
+RELATE <assocA> TO <assocB>[, assocC, ...]
- Type: statement
+Type: statement
- This statement creates a relation between associative arrays.
- Effectively this will result into duplication of settings; an index in
- array <assocA> also will be set in array <assocB>. A previous
- declaration of the associative arrays involved is required. Example:
+配列の関係を設定します。
+<assocA> を設定された値は <assocB> でも複製されます。
+関係する配列は前もって設定されている必要があります。
+例:
DECLARE human, mortal ASSOC int
RELATE human TO mortal
human("socrates") = TRUE
PRINT mortal("socrates")
-
- REM
+REM
- 【1.0 build 28 追加 - /* */ 】
- REM [<remark>]
+【1.0 build 28 追加 - /* */ 】
+REM [<remark>]
- Type: statement
+Type: statement
- コメントをコードに加えます。<remark> は任意の文字列を含められます。
- REM の代わりに ' を使用する事もできます。
-
- BaCon では C 言語スタイルのブロックコメントも受け入れます。
- 複数行を /* と */ で囲みます。
+コメントをコードに加えます。<remark> は任意の文字列を含められます。
+REM の代わりに ' を使用する事もできます。
+BaCon では C 言語スタイルのブロックコメントも受け入れます。
+複数行を /* と */ で囲みます。
- RENAME
+RENAME
- RENAME <filename> TO <new filename>
+RENAME <filename> TO <new filename>
- Type: statement
+Type: statement
- ファイル名を変更します。異なるパス名が含まれている場合、ファイルは <new filename> に含まれるパス名に移動します。
- 例:
+ファイル名を変更します。
+異なるパス名が含まれている場合、
+ファイルは <new filename> に含まれるパス名に移動します。
+例:
RENAME "tmp.txt" TO "real.txt"
-
- REPEAT
+REPEAT
- REPEAT
- <body>
- [BREAK]
- UNTIL <expr>
+REPEAT
+ <body>
+ [BREAK]
+UNTIL <expr>
- Type: statement
+Type: statement
- The REPEAT/UNTIL construction repeats a body of statements. The
- difference with WHILE/WEND is that the body will be executed at least
- once. The optional BREAK statement can be used to break out the loop.
- Example:
+<body> にある内容を繰り返します。
+WHILE・WEND との違いは、<body> 内が少なくとも1回は実行されるということです。
+BREAK を用いてループを抜け出す事もできます。
+例:
REPEAT
C = GETKEY
UNTIL C EQ 27
-
- REPLACE$
+REPLACE$
- REPLACE$(<haystack$>, <needle$>, <replacement$>)
+REPLACE$(<haystack$>, <needle$>, <replacement$>)
- Type: function
+Type: function
- 文字列 <haystack$> の <needle$> を <replacement$> に置き換えて返します。
- The replacement does not necessarily need to be of the same size as the substring.
- 例:
+文字列 <haystack$> の <needle$> を <replacement$> に置き換えて返します。
+<needle$> と <replacement$> の文字列は異なっていても正常に処理されます。
+例:
PRINT REPLACE$("Hello world", "l", "p")
PRINT REPLACE$("Some text", "me", "123")
-
- RESIZE
+RESIZE
- RESIZE <x>, <y>
+RESIZE <x>, <y>
- Type: statement
-
- Resizes memory area starting at address <x> to an amount of <y> of the
- type determined by OPTION MEMTYPE. If the area is enlarged, the original
- contents of the area remain intact.
+Type: statement
+メモリエリア開始アドレス <x> を <y> の大きさに改めます。
+OPTION MEMTYPE による型に影響されます。
+メモリエリアを大きくする場合、メモリエリアの中身は維持されます。
- RESTORE
+RESTORE
- RESTORE [<label>]
+RESTORE [<label>]
- Type: statement
+Type: statement
- DATA のポインターを変更します。
- <label> がある場合は LABEL <label> 以降の DATA を参照先に変更します。
- <label> がない場合は頭の DATA を参照先に変更します。
- 例:
+DATA のポインターを変更します。
+<label> がある場合は LABEL <label> 以降の DATA を参照先に変更します。
+<label> がない場合は頭の DATA を参照先に変更します。
+例:
DATA 1, 2, 3, 4, 5
LABEL txt
DATA "Hello", "world", "this", "is", "BaCon"
RESTORE txt
READ dat$
-
- RESUME
+RESUME
- RESUME
+RESUME
- Type: function
+Type: function
- エラーが発生した際、エラーの後から再開します。
- 例:
+エラーが発生した際、エラーの後から再開します。
+例:
TRAP LOCAL
CATCH GOTO print_err
LABEL print_err
PRINT ERR$(ERROR)
RESUME
-
- RETURN
+RETURN
- RETURN [<value>]
+RETURN [<value>]
- Type: statement
+Type: statement
- If RETURN has no argument it will return to the last invoked GOSUB. If
- no GOSUB was invoked previously then RETURN has no effect.
-
- Only in case of functions the RETURN statement must contain a value.
- This is the value which is returned when the FUNCTION is finished.
+GOSUB または FUNCTION の続きへ制御を戻します。
+GOSUB・FUNCTION を実行していなかった場合、RETURN は何も行いません。
+FUNCTION 内で利用されていた場合、RETURN には <value> を含めて返します。
- RETVAL
+RETVAL
- 【1.0 build 20 追加】
- RETVAL
+【1.0 build 20 追加】
+RETVAL
- Type: variable
-
- SYSTEM・EXEC$ によって実行されるコマンドの戻り値が入ります。予約変数です。
+Type: variable
+SYSTEM・EXEC$ によって実行されるコマンドの戻り値が入ります。予約変数です。
- REVERSE$
+REVERSE$
- REVERSE$(<x$>)
+REVERSE$(<x$>)
- Type: function
-
- <x$> を逆転させて返します。
+Type: function
+文字列 <x$> を逆転させて返します。
- REWIND
+REWIND
- REWIND <handle>
+REWIND <handle>
- Type: statement
-
- Returns to the beginning of a file opened with <handle>.
+Type: statement
+ファイルハンドル <handle> を開き直し、開始値を返します。
- RIGHT$
+RIGHT$
- RIGHT$(<x$>, <y>)
+RIGHT$(<x$>, <y>)
- Type: function
-
- <x$> の右から <y> 文字分を返します。
+Type: function
+文字列 <x$> の右から <y> 文字分を返します。
- RND
+RND
- RND
+RND
- Type: function
+Type: function
- 0 から MAXRANDOM で指定した値の間で乱数を返します。
- SEEDを用いて乱数の生成を変える事ができます。
- 乱数を生み出すより便利な方法のために RANDOM を参照して下さい。
- 例:
+0 から MAXRANDOM で指定した値の間で乱数を返します。
+SEEDを用いて乱数の生成を変える事ができます。
+乱数を生み出すより便利な方法のために RANDOM を参照して下さい。
+例:
SEED NOW
x = RND
-
- ROUND
+ROUND
- ROUND(<x>)
+ROUND(<x>)
- Type: function
+Type: function
- Rounds x to the nearest integer number. For compatibility reasons, the
- keyword INT may be used instead. Note that this function always returns
- an integer value.
-
- See also FLOOR to round down to the nearest the integer and MOD to get
- the fraction from a fractional number.
+もっとも <x> に近い整数値を返します。
+日本表記でいう小数点以下四捨五入を行います。
+互換性により INT が ROUND の代わりで利用されるかもしれません。
+整数値を切り捨てるために FLOOR、分数の余りとして MOD を使用できます。
- ROWS
+ROWS
- 【1.0 build 13 追加】
- ROWS
+【1.0 build 13 追加】
+ROWS
- Type: function
+Type: function
- ANSI 互換ターミナルで現在の縦位置を返します。
- 横位置は COLUMNS を使用します。
+ANSI 互換ターミナルで現在の縦位置を返します。
+横位置は COLUMNS を使用します。
- SCROLL
+SCROLL
- 【1.0 bulid 29 追加】
- SCROLL <UP [x]|DOWN [x]>
+【1.0 bulid 29 追加】
+SCROLL <UP [x]|DOWN [x]>
- Type: statement
-
- ANSI 対応ターミナルで上下にスクロールします。
- [x] はスクロールする行数を指定します。省略した場合は1行スクロールします。
+Type: statement
+ANSI 対応ターミナルで上下にスクロールします。
+[x] はスクロールする行数を指定します。省略した場合は1行スクロールします。
- SEARCH
+SEARCH
- SEARCH(<handle>, <string>)
+SEARCH(<handle>, <string>)
- Type: function
-
- <handle> で開いたファイルから <strong> を検索します。
- 文字列が最初に見つかった位置を返り値にして返します。
- ファイルポインターの検索開始位置を変えるために SEEK を使ってください。
- 検索文字列が見つからない場合は -1 を返し値として返します。
+Type: function
+<handle> で開いたファイルから <strong> を検索します。
+文字列が最初に見つかった位置を返り値にして返します。
+ファイルポインターの検索開始位置を変えるために SEEK を使ってください。
+検索文字列が見つからない場合は -1 を返し値として返します。
- SECOND
+SECOND
- SECOND(<x>)
+SECOND(<x>)
- Type: function
-
- 秒(0〜59)を返します。<x> は 1970年1月1日 0:00:00 からの秒数です。
+Type: function
+秒(0〜59)を返します。<x> は 1970年1月1日 0:00:00 からの秒数です。
- SEED
+SEED
- SEED x
+SEED x
- Type: statement
+Type: statement
- Seeds the random number generator with some value. After that,
- subsequent usages of RND and RANDOM will return numbers in a random
- order. Note that seeding the random number generator with the same
- number also will result in the same sequence of random numbers.
+乱数発生の条件を変えます。
+これ以降 RND と RANDOM の使用は、乱数順で数を返します。
+同じ数で SEED を実行すると、同じ乱数結果が得られることに注意すべきです。
- By default, a BaCon program will automatically seed the random number
- generator as soon as it is executed, so it may not be needed to use this
- function explicitly. Example:
+例:
SEED NOW
-
- SEEK
+SEEK
- SEEK <handle> OFFSET <offset> [WHENCE START|CURRENT|END]
+SEEK <handle> OFFSET <offset> [WHENCE START|CURRENT|END]
- Type: statement
-
- <handle> で開いているファイルポインターを <offset> に移します。
- WHENCE を用いて基準を定める事も可能です。
+Type: statement
+<handle> で開いているファイルポインタを <offset> に移します。
+WHENCE を用いて基準を定める事も可能です。
- SELECT
+SELECT
- SELECT <variable> CASE <body>[;] [CASE <body>[;]][...] [DEFAULT <body>] END SELECT
+SELECT <var>
+ CASE
+ <body>[;]
+ [CASE]
+ [<body>[;]]
+ [...]
+ [DEFAULT]
+ [<body>]
+END SELECT
- Type: statement
+Type: statement
- With this statement a variable can be examined on multiple values.
- Optionally, if none of the values match the SELECT statement may fall
- back to the DEFAULT clause. Example:
+変数 <var> を復数の値で調べる事ができます。
+CASE のどの条件にも一致しない場合として DEFAULT を使用できます。
+例:
SELECT myvar
CASE 1
PRINT "Value not found"
END SELECT
- Contrary to most implementations, in BaCon the CASE keyword also may
- refer to expressions and variables. Also BaCon knows how to 'fall
- through' using a semicolon, in case multiple values lead to the same
- result:
+復数の条件が合致する場合は CASE の後ろに ; を付けて
+同じ値を 1 処理で実行できます。
SELECT st$
CASE "Man"
DEFAULT
PRINT "Alien detected"
END SELECT
-
- SEND
+SEND
- SEND <var> TO <handle> [CHUNK <chunksize>]
+SEND <var> TO <handle> [CHUNK <chunksize>]
- Type: statement
-
- <handle> で開いたネットへ送信します。
- 送信量は CHUNK <chunksize> で指定する事ができます。
- 例は RECEIVE を参照して下さい。
+Type: statement
+<handle> で開いたネットへ送信します。
+送信量は CHUNK <chunksize> で指定する事ができます。
+例は RECEIVE を参照して下さい。
- SETENVIRON
+SETENVIRON
- SETENVIRON <var$>, <value$>
+SETENVIRON <var$>, <value$>
- Type: statement
+Type: statement
- 環境変数 <var$> に <value$> を設定します。
- もし値がすでに入っていた場合は上書きされます。
- GETENVIRON$ を用いて環境変数を取り出す事ができます。
- 例:
+環境変数 <var$> に <value$> を設定します。
+もし値がすでに入っていた場合は上書きされます。
+GETENVIRON$ を用いて環境変数を取り出す事ができます。
+例:
SETENVIRON "LANG", "C"
-
- SGN
+SGN
- SGN(x)
+SGN(<x>)
- Type: function
-
- Returns the sign of x. If x is a negative value, this function returns
- -1. If x is a positive value, this function returns 1. If x is 0 then a
- 0 is returned.
+Type: function
+数値 <x> の正負を返します。
+<x> が正の値(プラス)である場合 1 を返します。
+<x> が負の値(マイナス)である場合 -1 を返します。
+<x> が 0 の場合 0 を返します。
- SIN
+SIN
- SIN(<x>)
+SIN(<x>)
- Type: function
-
- <x> のサイン(sinus)を返します。
+Type: function
+<x> のサイン値(sinus)を返します。
- SIZEOF
+SIZEOF
- 【1.0 build 18 追加】
- SIZEOF(<type>)
+【1.0 build 18 追加】
+SIZEOF(<type>)
- Type: function
-
- C 言語形式のバイトサイズを返します。
+Type: function
+C 言語形式のバイトサイズを返します。
- SLEEP
+SLEEP
- SLEEP <x>
+SLEEP <x>
- Type: statement
-
- <x> ミリ秒実行を止めます。 (sleep 1000 で1秒止めます)
+Type: statement
+<x> ミリ秒実行を止めます。
+sleep 1000 で1秒止めます。
- SORT
+SORT
- SORT <x> [SIZE <x>] [DOWN]
+SORT <x> [SIZE <x>] [DOWN]
- Type: statement
+Type: statement
- 配列を並べ替えます。
- Only the basename of the array should be mentioned, not the dimension.
- The array may both be a numeric or a string array.
- The amount of elements involved can be specified with SIZE.
- This keyword is optional for static arrays,
- but should always be used in case of dynamic arrays.
- Also optionally the keyword DOWN can be used to sort in descending order.
- 例:
+配列を並べ替えます。
+配列は mentioned である必要があります。dimension では使用できません。
+関係する要素の量は SIZE で指定できます。
+配列が可変できる場合 SIZE の指定は必須です。
+DOWN を付けると降順で並べ替えます。付けない場合は昇順になります。
+例:
GLOBAL a$[5] TYPE STRING
a$[0] = "Hello"
a$[2] = "good"
a$[4] = "friend"
SORT a$
-
- SPC$
+SPC$
- SPC$(<x>)
+SPC$(<x>)
- Type: function
-
- <x> 文字分の空白を返します。
+Type: function
+<x> 文字分の空白を返します。
- SPLIT
+SPLIT
- SPLIT <string> BY <sub> TO <array> SIZE <variable>
+SPLIT <string> BY <sub> TO <array> SIZE <variable>
- Type: statement
+Type: statement
- 文字列を分けます。<sub> で分ける場所を定める事ができます。
- 結果が <array> に入ります。
- この結果が生じる配列がその要素を含むかが分からないため、
- <array> は前もって LOCAL・GLOBAL で宣言されないかもしれません。
+文字列を分けます。<sub> で分ける場所を定める事ができます。
+結果が <array> に入ります。
+この結果が生じる配列がその要素を含むかが分からないため、
+<array> は前もって LOCAL・GLOBAL で宣言する必要があります。
- SPLIT が FUNCTION または SUB で使われているならば、
- <array> は LOCAL 範囲を持ちます。
- 他の場合、<array> はグローバルになりすべての FUNCTION または SUB で
- アクセスすることができます。
+SPLIT が FUNCTION または SUB で使われているならば、
+<array> はその中で有効になります。
+それ以外場合、<array> は広域となり
+すべての FUNCTION または SUB で参照することができます。
- <array> の数は <variable> に保管されます。
- <variable> は LOCAL または GLOBAL を使って宣言することができます。
- 例:
+<array> の数は <variable> に保管されます。
+<variable> は LOCAL または GLOBAL を使って宣言することができます。
+例:
OPTION BASE 1
LOCAL dimension
PRINT array$[i]
NEXT
- 上記の例はでは4つの要素を返します。(3つ目の要素は空です)
- OPTION BASE 1 の代わりに OPTION COLLAPSE 1 とする場合は
- 3つの要素を返し、空を無視します。
- JOIN も参照して下さい。
-
+上記の例はでは4つの要素を返します。(3つ目の要素は空です)
+OPTION BASE 1 の代わりに OPTION COLLAPSE 1 とする場合は
+3つの要素を返し、空を無視します。
+JOIN も参照して下さい。
- SQR
+SQR
- SQR(<x>)
+SQR(<x>)
- Type: function
-
- <x> の平方根(√)を返します。
+Type: function
+<x> の平方根(√)を返します。
- STOP
+STOP
- 【1.0.5 追加】
- STOP
+【1.0.5 追加】
+STOP
- Type: statement
+Type: statement
- 現在のプログラムを停止し、UNIX プロンプトへ戻ります。UNIX コマンド「fg」を実行する事で、プログラムを再開する事ができます。または CONT コマンドを送信して下さい。: kill -CONT <pid>
+現在のプログラムを停止し、UNIX プロンプトへ戻ります。
+UNIX コマンド「fg」を実行する事で、プログラムを再開する事ができます。
+または CONT コマンドを送信して下さい。
+ kill -CONT <pid>
- STR$
+STR$
- STR$(<x>)
+STR$(<x>)
- Type: function
+Type: function
- 数値 <x> を文字列に変換します。 (VAL の逆)
- 例:
+数値 <x> を文字列に変換します。 (VAL の逆)
+例:
PRINT STR$(123)
-
- SUB
+SUB
- SUB <name>[(STRING <s>| NUMBER <i>| FLOATING <f>| VAR <v> SIZE <t>)]
- <body>
- ENDSUB | END SUB
+SUB <name>[(STRING <s>| NUMBER <i>| FLOATING <f>| VAR <v> SIZE <t>)]
+ <body>
+ENDSUB | END SUB
- Type: statement
+Type: statement
- サブプロシージャを定めます。 サブプロシージャは返り値を返しません。
- (FUNCTION も参照)
+サブルーチンを定めます。 SUB では返り値を返しません。
+FUNCTION も参照して下さい。
- LOCAL 宣言されない限りは、SUB で使われている変数はグローバル変数扱いになります。
- 入力される argument のため、STRING NUMBER FLOATING の他、
- 基本的な C 言語の種類も使用することができます。
- VARとともに可変的なサイズの argument を定められることができます。
- 例:
+LOCAL 宣言されない限りは、SUB で使われている変数はグローバル変数扱いになります。
+入力される値のため、文字列 STRING・数値 NUMBER・FLOATING の他、
+基本的な C 言語の種類も使用することができます。
+VAR とともに可変的なサイズの値を定められることができます。
+例:
SUB add(NUMBER x, NUMBER y)
LOCAL result
result = x + y
PRINT result
END SUB
-
- SYSTEM
+SYSTEM
- SYSTEM <command$>
+SYSTEM <command$>
- Type: statement
+Type: statement
- <command$> を実行します。命令の実行が完了するまで、BaCon プログラムは止められます。実行されたコマンドの exit ステータスは予約値 RETVAL に保存されます。EXEC$ を代わりに使う事で、コマンドの返り値を得る事ができます。
- 例:
+<command$> を実行します。
+命令の実行が完了するまで、BaCon プログラムは止められます。
+実行されたコマンドの exit ステータスは予約値 RETVAL に保存されます、
+EXEC$ を代わりに使う事で、コマンドの返り値を得る事ができます。
+例:
SYSTEM "ls -l"
-
- TAB$
+TAB$
- TAB$(<x>)
+TAB$(<x>)
- Type: function
-
- <x> 分のタブを返します。
+Type: function
+<x> 分のタブを返します。
- TAN
+TAN
- TAN(<x>)
+TAN(<x>)
- Type: function
+Type: function
- <x> のタンジェント(tangent)を返します。
+<x> のタンジェント(tangent)を返します。
- TELL
+TELL
- TELL(<handle>)
+TELL(<handle>)
- Type: function
-
- <handle> で開いているファイルの現在位置を返します。
+Type: function
+<handle> で開いているファイルの現在位置を返します。
- TEXTDOMAIN
+TEXTDOMAIN
- TEXTDOMAIN <domain$>, <directory$>
+TEXTDOMAIN <domain$>, <directory$>
- Type: statement
+Type: statement
- OPTION INTERNATIONAL な有効の場合に実行できます。
- BaCon はメッセージカタログのため、現在のファイル名とベースディレクトリ「/usr/share/locale」で text domain をデフォルトで構成します。
- これを変更し、ディレクトリの基礎を形成する事ができます。
+OPTION INTERNATIONAL な有効の場合に実行できます。
+BaCon はメッセージカタログとして
+デフォルトは /usr/share/locale/(ファイル名) で構成します。
+これを変更したい場合に TEXTDOMAIN を用いて設定が可能です。
- TIMER
+TIMER
- 【1.0 build 29 追加】
- TIMER
+【1.0 build 29 追加】
+TIMER
- Type: function
+Type: function
- プログラムの実行の経過時間を返します。単位はミリ秒です。
- 例:
+プログラムの実行の経過時間を返します。単位はミリ秒です。
+例:
iter = 1
WHILE iter > 0 DO
INCR iter
WEND
PRINT "Got ", iter-1, " iterations in 1 millisecond!"
-
- TIMEVALUE
+TIMEVALUE
- TIMEVALUE(<year>,<month>,<day>,<hour>,<minute>,<secord>)
+TIMEVALUE(<year>,<month>,<day>,<hour>,<minute>,<secord>)
- Type: function
+Type: function
- 1970年1月1日 0:00:00 からの秒数を返します。
- 例:
+1970年1月1日 0:00:00 からの秒数を返します。
+例:
PRINT TIMEVALUE(2009, 11, 29, 12, 0, 0)
-
- TRACE
+TRACE
- 【1.0.5 追加】
- TRACE <ON|OFF>
+【1.0.5 追加】
+TRACE <ON|OFF>
- Type: statement
-
- TRACE ON でトレースモードを開始します。 プログラムはキーの入力により進行します。
- ソースコードの次の行は画面に表示されで実行されます。
- Esc キーによってプログラムを終了させる事ができます。
- TRACE OFF でトレースモードを終了します。
+Type: statement
+TRACE ON でトレースモードを開始します。 プログラムはキーの入力により進行します。
+ソースコードの次の行は画面に表示されで実行されます。
+Esc キーによってプログラムを終了させる事ができます。
+TRACE OFF でトレースモードを終了します。
- TRAP
+TRAP
- TRAP <LOCAL|SYSTEM>
+TRAP <LOCAL|SYSTEM>
- Type: statement
+Type: statement
- Sets the runtime error trapping. By default, BaCon performs error
- trapping (LOCAL). BaCon tries to examine statements and functions where
- possible, and will display an error message based on the operating
- system internals, indicating which statement or function causes a
- problem. Optionally, when a CATCH is set, BaCon can jump to a LABEL
- instead, where a self-defined error function can be executed, and from
- where a RESUME is possible.
+ランタイムエラーのトラップ設定をします。
- When set to SYSTEM, error trapping is performed by the operating system.
- This means that if an error occurs, a signal will be caught by the
- program and a generic error message is displayed on the prompt. The
- program will then exit gracefully
-
- The setting LOCAL decreases the performance of the program, because
- additional runtime checks are carried out when the program is executed.
+TRAP LOCAL の場合、BaCon は内部でエラー動作を行います。(デフォルト)
+エラーが発生した場合、どこでエラーが発生したかを表示します。
+CATCH を使用した場合、BaCon は LABEL の場所へ飛び、エラー処理を行います。
+RESUME で実行を再開する事も可能です。
+TRAP SYSTEM の場合、エラーを OS へ返します。
+この場合エラーを実行されたプログラムで処理したり、
+エラーメッセージを得る事ができます。プログラム実行は終了します。
- TRUE
+TRUE
- TRUE
+TRUE
- Type: variable
-
- 1 の返り値を返します。これは FALSE と逆の変数になります。
+Type: variable
+1 の返り値を返します。これは FALSE と逆の変数になります。
- UCASE$
+UCASE$
- UCASE$(<x$>)
+UCASE$(<x$>)
- Type: function
-
- 文字列 <x$> を大文字にして返します。LCASE$ も参照して下さい。
+Type: function
+文字列 <x$> を大文字にして返します。LCASE$ も参照して下さい。
- USEC
+USEC
- USEC
- <body>
- ENDUSEC | END USEC
+USEC
+ <body>
+ENDUSEC | END USEC
- Type: statement
+Type: statement
- C言語のコードを囲みます。このコードは C 言語のソースファイルに変更されず入ります。例:
+C言語のコードを含めます。
+このコードは C 言語のソースファイルに変更されず入ります。
+例:
USEC
char *str;
str = strdup("Hello");
printf("%s\n", str);
END USEC
-
- USEH
+USEH
- 【1.0 build 28 追加】
- USEH
- <body>
- ENDUSEH | END USEH
+【1.0 build 28 追加】
+USEH
+ <body>
+ENDUSEH | END USEH
- Type: statement
+Type: statement
- C 言語の宣言・定義を定めます。
- このコードは発生するヘッダファイルへ変更されずに追加されます。
- これは、外部ライブラリから変数を使う場合には、特に役に立つことがあります。
- C 言語のソースコードを用いるために USEC を参照して下さい。
- 例:
+C 言語の宣言・定義を定めます。
+このコードは発生するヘッダファイルへ変更されずに追加されます。
+これは、外部ライブラリから変数を使う場合には、特に役に立つことがあります。
+C 言語のソースコードを用いるために USEC を参照して下さい。
+例:
USEH
char *str;
extern int pbl_errno;
END USEH
-
- VAL
+VAL
- VAL(<x$>)
+VAL(<x$>)
- Type: function
+Type: function
- <x$> を数値化して返します。STR$ の逆。
- 例:
+<x$> を数値化して返します。STR$ とは逆の動きです。
+例:
nr$ = "456"
q = VAL(nr$)
-
- VAR
+VAR
- VAR <array$> SIZE <x>
+VAR <array$> SIZE <x>
- Type: statement
+Type: statement
- Declares a variable argument list in a FUNCTION or SUB. There may not be
- other variable declarations in the function header. The arguments to the
- function are put into an array of strings, and the resulting amount of
- elements is stored in <x>. Example:
+FUNCTION および SUB の引数を設定します。
+引数は多数の文字列で指定します。
+要素数は <x> に返されます。
+例:
OPTION BASE 1
SUB demo (VAR arg$ SIZE amount)
demo("abc")
' Three arguments
demo("123", "456", "789")
-
- VERSION$
+VERSION$
- VERSION$
+VERSION$
- Type: variable
-
- BaCon のバージョンをテキストで返します。予約変数になります。
+Type: variable
+BaCon のバージョンを文字列で返します。予約変数になります。
- WAIT
+WAIT
- WAIT(<handle>, <milliseconds>)
+WAIT(<handle>, <milliseconds>)
- Type: function
+Type: function
- データが <handle> で利用可能になるまで、最大 <milliseconds> ミリ秒までプログラムの中止します。
+データが <handle> で利用可能になるまで、
+最大 <milliseconds> ミリ秒までプログラムの中止します。
- これは特に利用できるデータがないならば RECEIVE がブロックするネットワーク・プログラムに役立ちます。 WAIT機能は <handle> をチェックします。データがあるならばキューに貯まります。その場合は返り値 1 で返します。データがないならば、それは帰る前に多くても <milliseconds> ミリ秒を待ちます。利用できるデータがないならば、WAITは返り値 0 を返します。 例のために RECEIVE を参照してください。
+これは特に利用できるデータがないならば
+RECEIVE がブロックするネットワーク・プログラムに役立ちます。
- このファンクションは現在のプログラムを中断させる事なくキーが押されるかどうか知るのに用いる事ができます。
- このケースではハンドルとして STDIN filedescriptor (0) を使っています。
- 例:
+WAIT 機能は <handle> をチェックします。
+データがあるならばキューに貯まります。その場合は返り値 1 で返します。
+データがないならば、それは帰る前に多くても <milliseconds> ミリ秒を待ちます。
+利用できるデータがない場合 WAIT は返り値 0 を返します。
+例のために RECEIVE を参照してください。
+
+このファンクションは現在のプログラムを中断させる事なく
+キーが押されるかどうか知るのに用いる事ができます。
+このケースではハンドルとして STDIN filedescriptor (0) を使っています。
+例:
REPEAT
PRINT "Press Escape... waiting..."
key = WAIT(STDIN_FILENO, 50)
UNTIL key = 27
- このコードで観察されることができるように 0 の代わりに、予約の POSIX 変数 STDIN_FILENO を使用することができます。 standard POSIX variables も参照して下さい。
-
+このコードで観察されることができるように 0 の代わりに、
+予約の POSIX 変数 STDIN_FILENO を使用することができます。
+standard POSIX variables も参照して下さい。
- WEEK
+WEEK
- WEEK(<x>)
+WEEK(<x>)
- Type: function
+Type: function
- 年からの週(1〜53)を返します。<x> は1970年1月1日からの秒数です。
- 例:
+年からの週(1〜53)を返します。<x> は1970年1月1日からの秒数です。
+例:
PRINT WEEK(NOW)
-
- WEEKDAY$
+WEEKDAY$
- WEEKDAY$(<x>)
+WEEKDAY$(<x>)
- Type: function
-
- システムの LOCALE で指定されている言語で曜日を返します。
- (LOCALE が "C" の場合は "Monday" "Tuesday" など)
- <x> の値は 1970年1月1日 0:00:00 からの秒数です。
+Type: function
+システムの LOCALE で指定されている言語で曜日を返します。
+(LOCALE が "C" の場合は "Monday" "Tuesday" など)
+<x> の値は 1970年1月1日 0:00:00 からの秒数です。
- WHILE
+WHILE
- WHILE <expr> [DO]
- <body>
- [BREAK]
- WEND
+WHILE <expr> [DO]
+ <body>
+ [BREAK]
+WEND
- Type: statement
+Type: statement
- WHILE・WEND は <body> を繰り返します。DO はオプションです。
- またオプションの BREAK はループから外に出るのに用いられます。
- 例:
+WHILE・WEND は <body> を繰り返します。DO はオプションです。
+またオプションの BREAK はループから外に出るのに用いられます。
+例:
LET a = 5
WHILE a > 0 DO
PRINT a
a = a - 1
WEND
-
- WITH
+WITH
- WITH <record>
- .<var> = <value>
- .<var> = <value>
- ....
- END WITH
+WITH <record>
+ .<var> = <value>
+ .<var> = <value>
+ ....
+END WITH
- Type: statement
+Type: statement
- <value> をそれぞれの <record> に割り当てます。
- 例:
-
- WITH myrecord
- .name$ = "Peter"
- .age = 41
- .street = Falkwood Area 1
- .city = The Hague
- END WITH
+<value> をそれぞれの <record> に割り当てます。
+例:
+WITH myrecord
+ .name$ = "Peter"
+ .age = 41
+ .street = Falkwood Area 1
+ .city = The Hague
+END WITH
- WRITELN
+WRITELN
- WRITELN <text>|<var> TO <handle>
+WRITELN <text>|<var> TO <handle>
- Type: statement
+Type: statement
- <handle> で開いているファイルにアスキーデータを書き込みます。
- バイナリーデータを書き込みしたい場合は PUTBYTE を参照して下さい。
- 例:
+<handle> で開いているファイルにアスキーデータを書き込みます。
+バイナリーデータを書き込みしたい場合は PUTBYTE を参照して下さい。
+例:
WRITELN "hello world" TO myfile
-
- YEAR
+YEAR
- YEAR(<x>)
+YEAR(<x>)
- Type: function
+Type: function
- <x> の年を返します。<x> は1970年1月1日 0:00:00 からの秒数です。
- 例:
-
- PRINT YEAR(NOW)
+<x> の年を返します。<x> は1970年1月1日 0:00:00 からの秒数です。
+例:
+PRINT YEAR(NOW)