41 pair: ファイル; Read() 関数によるファイル内容の読み取り
46 Read() 関数はファイルの内容を読み取ります。
52 Read(cFileName) ---> 文字列はファイルの内容を有しています。
58 see read("myfile.txt")
60 Read() 関数はバイナリファイルの読み取りもできます。
70 pair: ファイル; Write() 関数によるファイルへの書き込み
75 Write() 関数は文字列をファイルへ書き込みます。
81 Write(cFileName,cString) # 文字列 cString をファイル cFileName へ書き込みます。
83 Write() 関数はバイナリファイルの書き込みもできます。
90 cFile = read("ring.exe")
91 write("ring2.exe",cFile)
99 Dir() 関数はフォルダの内容 (ファイルとサブフォルダ) を取得します。
105 Dir(cFolderPath) ---> リストはファイルとサブフォルダを有しています。
107 この関数はリストを返します。リストごとの項目は二つの項目を有するリストになります。
111 * 種類 (0 = ファイル , 1 = フォルダ、ディレクトリ)
117 see "Testing DIR() " + nl
118 mylist = dir("C:\myfolder")
121 see "Directory : " + x[1] + nl
123 see "File : " + x[1] + nl
126 see "Files count : " + len(mylist)
134 Rename() 関数はファイルを名称変更します。
140 Rename(cOldFileName,cNewFileName) ---> 数値 ( 状態: 成功 (0) , エラー (-1) )
146 rename("file.txt","help.txt")
154 Remove() 関数はファイルを削除します。
175 Fopen() 関数はファイルを開きます。
181 Fopen(cFileName,cMode) ---> ファイルハンドル
187 "“r”", "読み取り (ファイルが存在している必要があります)"
188 "“w”", "書き込み (空のファイルを作成、上書き)"
189 "“a”", "追記 (ファイルが存在しない場合は作成)"
190 "“r+”", "更新 (読み取り、書き込み)"
191 "“w+”", "空のファイルを作成 (読み取り、書き込み)"
200 fopen() 関数でファイルを開いて処理を終えた後は、
201 Fclose() 関数でファイルを閉じます。
215 Fflush() 関数はストリームの出力バッファを追い出します (flush)。
224 pair: ファイル; Freopen()
229 同じファイルハンドルで別のファイルを開きますが、
230 以前に開いていたファイルを併せて閉じます。
236 Freopen(cFileName,cMode,file handle) ---> ファイルハンドル
242 freopen("myprogoutput.txt","w+",stdout)
249 ## 必読 : https://ja.wikipedia.org/wiki/デバイスファイル#MS-DOS・Windows
250 ## このコードには移植性がありません。使用前に iswindows() で動作環境を
251 ## 判定してから各オペレーティングシステム専用のコードを書いてください。
254 freopen("CON","w",stdout) # Microsoft Windows では
255 see "Done" + nl # もう一度、標準出力へ表示
264 # ファイルへの出力 : myprogoutput.txt
278 pair: ファイル; Tempfile()
283 Tempfile() 関数は一時ファイルを作成します (バイナリ形式)。
285 ファイルはストリームが閉じられたときに自動で削除されます。
291 TempFile() ---> ファイルハンドル
294 pair: ファイル; Tempname()
299 Tempname() 関数は一時ファイル名を生成します。
301 生成された名前は唯一無二であり、既存ファイル名とは一切異なります。
307 Tempname() ---> ファイル名として生成された文字列
315 Fseek() 関数はストリームにおけるファイル位置を設定します。
321 Fseek(ファイルハンドル, nOffset, nWhence) ---> 0 ならば成功です。
323 この表は nWhence の値を表したものです。
325 == ===============================
327 == ===============================
331 == ===============================
339 Ftell() 関数 はストリームにおける現在のファイル位置を検出します。
345 Ftell(ファイルハンドル) ---> 数値によるファイルの位置です。
353 Rewind() 関数はファイルの位置を先頭へ設定します。
362 pair: ファイル; Fgetpos()
367 Fgetpos() 関数はハンドルにおける現在のファイル位置を取得します。
373 Fgetpos(ファイルハンドル) ---> 位置ハンドル
376 pair: ファイル; Fsetpos()
381 Fsetpos() 関数は現在のファイルの位置を設定します。
387 Fsetpos(ファイルハンドル,位置ハンドル)
390 pair: ファイル; Clearerr()
395 clearerr () 関数は EOF エラーとエラーインジケーターをストリームから消去します。
409 Feof() 関数は EOF インジケーターをテストします。
415 Feof(ファイルハンドル) ---> EOF ならば 1 を、そうでなければ 0 を返します。
423 Ferror() 関数 はエラーインジケーターをテストします。
429 Ferror(ファイルハンドル) ---> エラーならば 1 を、そうでなければ 0 を返します。
437 Perror() 関数は標準出力エラーへエラーメッセージを表示します。
443 Perror(cErrorMessage)
451 Fgetc() 関数はストリームから次の文字を取得します。
457 Fgetc(ファイルハンドル) ---> 文字または EOF を返します。
466 Fgets() 関数はストリームから新しい行を読み取ります。
472 Fgets(ファイルハンドル,nSize) ---> 文字列
474 この関数は nSize 文字まで読み取る、または新しい行を読み取るか EOF になると停止します。
482 Fputc() 関数は文字をストリームへ書き込みます。
488 Fputc(ファイルハンドル,cChar)
496 Fputs() 関数は文字列をストリームへ書き込みます。
502 Fputs(ファイルハンドル,cString)
511 Ungetc() 関数は文字をストリームへプッシュします。
528 Fread() 関数はデータをストリームへ読み込みます。
534 Fread(ファイルハンドル,nSize)
542 Fwrite() 関数はデータをストリームへ書き込みます。
548 Fwrite(ファイルハンドル,cString)
552 pair: ファイル; Fexists()
557 Fexists() 関数はファイルの存在を確認します。
563 Fexists(cFileName) ---> ファイルが存在する場合は 1 を返します。
569 see fexists("b:\mahmoud\apps\ring\ring.exe") + nl +
570 fexists("b:\mahmoud\apps\ring\ring2.exe") + nl
585 このプログラムはファイル関数をテストします。
589 See "testing file functions" + nl
592 fp = fopen(exefolder() + "../tests/scripts/s65.ring","r")
595 fp = freopen(exefolder() + "../tests/scripts/s78.ring","r",fp)
596 See "close file" + nl
606 remove(exefolder() + "../tests/scripts/mytest2.txt")
607 write(exefolder() + "../tests/scripts/tests1.txt","hello")
608 rename(exefolder() + "../tests/scripts/test1.txt",exefolder() +
609 "../tests/scripts/mytests2.txt")
611 see "print file" + nl
612 fp = fopen(exefolder() + "../samples/fromdoc/filefuncs.ring","r")
620 see nl+"print line from the file" + nl
621 fp = fopen(exefolder() + "../samples/fromdoc/filefuncs.ring","r")
625 fp = fopen(exefolder() + "../tests/scripts/test78.txt","w+")
626 fseek(fp,0,2) # ファイルの末尾へ移動
634 see "print file" + nl
635 see read(exefolder() + "../tests/scripts/test78.txt")
637 fp = fopen(exefolder() + "../tests/scripts/test78.txt","r")
638 see "testing ungetc() " + nl
646 see "testing fread() " + nl
647 fp = fopen(exefilename(),"rb")
652 see "testing fwrite() " + nl
653 fp = fopen(exefolder() + "../tests/scripts/test1.txt","wb")
657 この用例はバイナリファイルの内容を表示します。
661 see "Testing: fread()" +" FileName: "+ exefilename() +nl +nl
662 fp = fopen(exefilename(),"rb")
665 if isprint(substr(r, n, 1))
683 この関数は数値とバイトとの間で変換を行います。
696 see "Test Int2Bytes() and Bytes2Int() - Value : 77" + nl
698 see "Int Size : " + len(r) + nl
700 see Bytes2Int(r) + nl
701 see "Test Float2Bytes() and Bytes2Float() - Value 77.12" + nl
702 r = Float2Bytes(77.12)
703 see "Float Size : " + len(r) + nl
705 see Bytes2Float(r) + nl
706 see "Test Double2Bytes() and Bytes2Double() - Value 9999977.12345" + nl
707 r = Double2Bytes(9999977.12345)
708 see "Double Size : " + len(r) + nl
711 see Bytes2Double(r) + nl