OSDN Git Service

b2c27374437ba7393dfe6ac4f5fd8e2db28bbf16
[bacon/BaCon-Japanese.git] / 関数・命令 / OPEN.txt
1   OPEN
2
3    OPEN <file|dir|address> FOR
4    READING|WRITING|APPENDING|READWRITE|DIRECTORY|NETWORK [FROM
5    address[:port]]|SERVER|MEMORY AS <handle>
6
7    Type: statement
8
9    <file> <dir> <address> を開き <handle> へ割り当てます。
10    割り当てた <handle> は READING・WRITING・APPENDING・READWRITE で使用できます。
11    REDING は読み出し専用、WRITING・APPENDING は書き込み専用、
12    READWRITE は読み書き療法を可能にします。
13    例:
14
15    OPEN "data.txt" FOR READING AS myfile
16    WHILE NOT(ENDFILE(myfile)) DO
17        READLN txt$ FROM myfile
18        IF NOT(ENDFILE(myfile)) THEN
19            PRINT txt$
20        ENDIF
21    WEND
22    CLOSE FILE myfile
23
24    DIRECTORY はディレクトリを開きます。
25    読みだすとディレクトリ内のファイルを返します。
26    例:
27
28    OPEN "." FOR DIRECTORY AS mydir
29    REPEAT
30        GETFILE myfile$ FROM mydir
31        PRINT "File found: ", myfile$
32    UNTIL ISFALSE(LEN(myfile$))
33    CLOSE DIRECTORY mydir
34
35    NWTWORK はネットアドレスを開きます。
36    オプション FORM を用いて IP アドレス・ポート番号を設定する事ができます。
37    例:
38
39    OPEN "www.google.com:80" FOR NETWORK AS mynet
40    SEND "GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n" TO mynet
41    REPEAT
42        RECEIVE dat$ FROM mynet
43        total$ = CONCAT$(total$, dat$)
44    UNTIL ISFALSE(WAIT(mynet, 500))
45    PRINT total$
46    CLOSE NETWORK mynet
47
48    SERVER は入って来るネットワーク接続を扱うサーバとして開きます。
49    同じホストと港を用いた TCP モードで複数回アクセスするとき、
50    OPEN SERVER は新しいソケットを作らず、
51    もう一つの入って来る接続に順応します。
52    IP アドレスの代わりに ワイルドカード * を用いて
53    全インターフェースを聞くのに用いることができます。
54    プロトコルの設定に OPTION NETWORK を参照して下さい。
55
56    OPEN "*:51000" FOR SERVER AS myserver
57    WHILE NOT(EQUAL(LEFT$(dat$, 4), "quit")) DO
58        RECEIVE dat$ FROM myserver
59        PRINT "Found: ", dat$
60    WEND
61    CLOSE SERVER myserver
62
63    MEMORY はメモリ領域を開いて使用することができます。
64
65    data = MEMORY(500)
66    OPEN data FOR MEMORY AS mem
67    PUTLINE "Hello cruel world" TO mem
68    MEMREWIND mem
69    GETLINE txt$ FROM mem
70    CLOSE MEMORY mem
71    PRINT txt$
72