  OPEN

   OPEN <file|dir|address> FOR
   READING|WRITING|APPENDING|READWRITE|DIRECTORY|NETWORK [FROM
   address[:port]]|SERVER|MEMORY AS <handle>

   Type: statement

   <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
       READLN txt$ FROM myfile
       IF NOT(ENDFILE(myfile)) THEN
           PRINT txt$
       ENDIF
   WEND
   CLOSE FILE myfile

   DIRECTORY はディレクトリを開きます。
   読みだすとディレクトリ内のファイルを返します。
   例:

   OPEN "." FOR DIRECTORY AS mydir
   REPEAT
       GETFILE myfile$ FROM mydir
       PRINT "File found: ", myfile$
   UNTIL ISFALSE(LEN(myfile$))
   CLOSE DIRECTORY mydir

   NWTWORK はネットアドレスを開きます。
   オプション 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
   REPEAT
       RECEIVE dat$ FROM mynet
       total$ = CONCAT$(total$, dat$)
   UNTIL ISFALSE(WAIT(mynet, 500))
   PRINT total$
   CLOSE NETWORK mynet

   SERVER は入って来るネットワーク接続を扱うサーバとして開きます。
   同じホストと港を用いた TCP モードで複数回アクセスするとき、
   OPEN SERVER は新しいソケットを作らず、
   もう一つの入って来る接続に順応します。
   IP アドレスの代わりに ワイルドカード * を用いて
   全インターフェースを聞くのに用いることができます。
   プロトコルの設定に OPTION NETWORK を参照して下さい。

   OPEN "*:51000" FOR SERVER AS myserver
   WHILE NOT(EQUAL(LEFT$(dat$, 4), "quit")) DO
       RECEIVE dat$ FROM myserver
       PRINT "Found: ", dat$
   WEND
   CLOSE SERVER myserver

   MEMORY はメモリ領域を開いて使用することができます。

   data = MEMORY(500)
   OPEN data FOR MEMORY AS mem
   PUTLINE "Hello cruel world" TO mem
   MEMREWIND mem
   GETLINE txt$ FROM mem
   CLOSE MEMORY mem
   PRINT txt$

