FC2ブログ

FreeBASIC 学習:ファイル・アクセス方法

2019-07-24 :  PCクリニック
FreeBASIC の最初(2019-07-06)の記事:
FreeBASIC ってどうかナ?」で書いた、
ドキュメント:
フリー ベーシック (日本語マニュアル) FreeBASIC」サイトの、
左ペインの実行時ライブラリーの「エラー処理関連」で、
ファイルの読み/書き(バイナリ/テキスト)について学習。

dim as long  fb, ft    ' ファイル番号

' バイナリ出力 ---------------------------
fb = FreeFile
Open "tmp1.bin" For Binary As #fb
dim k as long
' 整数配列を作る
Dim BT(1 To 10) As Long
For k = 1 To 10
BT(k) = k
Next
Put #fb, , BT()
Close #fb

' テキスト出力 ---------------------------
ft = FreeFile
Open "tmp2.txt" For Output As #ft
Dim i As Long = 10 ' これは、C の、int ( 32bit )
Dim d As Double = 123.456
Dim s As String = "テキスト"
Write #ft, 123, "テキスト", -.45600
Write #ft,
Write #ft, i, d, s
Close( ft )

' バイナリ入力 ---------------------------
fb = FreeFile
Open "tmp1.bin" For Binary As #fb

Dim buf(0 to 4) As Long ' C の、int ( 32bit ) 配列

for k = 0 to 4
' ファイル番号 "bf" を使って、ファイルから バッファに読込
Get #fb, , buf(k) ' 第2、第3引数:配列添字も 丸括弧
' 結果を印刷
Print buf(k)
next
Close (fb)
for k=0 to 4: print buf(k): next

' テキスト入力 ---------------------------
ft = FreeFile
Open "tmp2.txt" For Input As #ft
Dim ss(1 to 5) As string

for k = 1 to 3
Line Input #fb, ss(k) ' 引数は2つ
' 結果を印刷
Print ss(k)
next
Close (ft)

dim sptr as zstring ptr
sptr = strptr(ss(3))
print *sptr
と云った感じ。


FreeBASIC 言語仕様の備忘録:

  FreeBASIC では、行末を改行コードかコロンで表す。
  このため、C言語のセミコロンのような特別な行末記号は必須ではない。
  改行するまでに複数行のコードを書く場合に、コロンで区切る。

  コメントは行単位のものとブロック単位のものがあり、
  行単位のコメントはシングルクオート (') で開始され、
  ブロックコメントは /' で開始して、'/ で終了となり、
  途中に改行コードがあってもよい。

そして、
  大文字/小文字の区別無し



次に、ファイル・アクセスをC言語流コードで。

上記の日本語ドキュメントから、
左ペインのその他の「C標準ライブラリー関数」の、
ストリーム I/Oに、

  #include "crt/stdio.bi"

とある。


これを記述するダケで使える。
 テキストファイルの入力例:
' C Runtime Library( msvcrt.dll で実行 )
' crt/stdio.bi を使った ストリーム I/O

'' ファイルを開く
'' fopen( filename as zstring ptr, access_mode as zstring ptr ) _
'' as FILE ptr

'' zstring を読む
'' fgets( string1 as zstring ptr, maxchar as integer, _
'' file_pointer as FILE ptr) as zstring ptr

'' ファイルを閉じる
'' fclose( file_pointer as FILE ptr ) as integer

/' --------------------------------------------------- '/
#include "crt/stdio.bi"

dim FILE as any ptr
dim buf as zstring*255

FILE = fopen( "test.txt", "r" ) ''' print FILE

Do
fgets( buf, 255, FILE ) : Mid( buf,len(buf) ) = Chr(0)
print buf
Loop Until feof(FILE)

fclose( FILE )

Sleep



本日はここまで。


FreeBASIC 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒

190418,23
関連記事
スポンサーサイト



コメントの投稿

管理者にだけ表示を許可する

人気blog Ranking



最新記事
カレンダー
07 | 2021/08 | 09
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

FC2 / i2i / Google




Google Analytics
ブックマーク