mieki256's diary



2024/02/13(火) [n年前の日記]

#3 [basic] FreeBASICでテキストファイル読み込みをしたい

FreeBASIC で、テキストファイルを行単位で読み込みたい。環境は Windows10 x64 22H2 + FreeBASIC 1.10.1 32bit。

以下が参考になった。

_ファイル入出力関連
_Freefile
_Open
_Eof
_LineinputPp

  1. FreeFile() で空いているファイル番号を取得して、
  2. Open でファイルを開いて、
  3. EOF() でファイルの終端かどうかをチェックしつつ、
  4. Line Input で1行読み込んで、
  5. 処理が終わったら Close
そんな感じらしい。

動作確認するために、サンプルソースを書いてみた。

_lineinput.bas
Const infile = "test.txt"

' Open file
Dim As Long f = FreeFile()
If (Open(infile For Input As #f)) Then
    Print "Error: Cano not open " & infile : End -1
End If

' Read lines
Dim As Integer count = 0
Do until EOF(f)
    count += 1
    Dim As String s
    Line Input #f, s  ' Read 1 line
    Print Str(count) & ": " & s
Loop

' Close file
Close #f

fbc lineinput.bas でコンパイル。

_test.txt を用意して読み込ませてみた。

_test.txt
Lorem ipsum dolor sit amet,
consectetur adipiscing elit,

sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Ut enim ad minim veniam, quis nostrud exercitation ullamco
laboris nisi ut aliquip ex ea commodo consequat.

> lineinput.exe
1: Lorem ipsum dolor sit amet,
2: consectetur adipiscing elit,
3:
4: sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
5:
6: Ut enim ad minim veniam, quis nostrud exercitation ullamco
7: laboris nisi ut aliquip ex ea commodo consequat.

たしかに、1行ずつ読み込みができた。

行末については、LF か CRLF があれば行末/改行コードとして扱う、と書いてある。本当にそうなっているのか、読み込むテキストファイルの改行コードを LF もしくは CRLF にして試してみたけど、どちらも行単位で読み込んでくれた。

以上です。

過去ログ表示

Prev - 2024/02 - Next
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

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project