はじめに
日本語プログラミング言語Mindの小技「ファイルの新規オープン」について説明したいと思います。
対象読者
日本語プログラミング言語Mindのユーザー、または日本語プログラミング言語に興味のある方
この小技に関連するMind言語マニュアル
この小技に関連するMind言語仕様の記述はMind8プログラミングマニュアルに記載があります。
9 ファイル操作
├論理ファイルの宣言
└ファイルのオープンとクローズ
ファイル(論理ファイル)は次のように宣言(定義)してから使用する。
構文=<論理ファイル>は ファイル。
<論理ファイル>は ファイル 長さ <バッファ長さ>。上段はバッファ長さを省略した形式で、この場合はバッファ長さは1024バイトである。
下段はバッファ長さを明示するもので、最低でも128バイトが必要であるが、特別な用途で0を指定することもできる。
構文=
(書き込み用)
<物理ファイル名>で <論理ファイル>を 新規オープンする → ・注:論理ファイル名の送り仮名「を」は必須
注:「オープン」から戻ったら必ずエラー検査をおこなうこと
本機能(本記事)は、下記のバージョンに対応しています。Mind8のLinux版も対応していると思いますが、本記事では特に検証を行っておりません。
対応バージョン
■Mind7 ■Mind8 ■Mind9
■Windows版 □Linux版
小技の解説
Mindの小技「ファイルの新規オープン」は、Mindのファイルの基本操作機能です。ファイルを読み書きするためには、必ず「オープン」して、操作終了後は「クローズ」します。「新規オープン」はファイルを新規書き込みでオープンする処理単語です。
Mindの場合、ファイルの物理パス情報の文字列と「論理ファイル」という変数をセットにして「新規オープン」します。「論理ファイル」という変数のオープン時の送り仮名は「を」が必須となることで、「論理ファイル」を 物理ファイルパス文字列で 「オープン」する語順とすることもできます。
本記事では論理ファイルを書き込み用で新規オープンする際のご注意事項を説明します。
Mindプログラムソース
サンプル物理ファイルパスは 文字列定数 "c:\developments\vscode\mind9\sample.txt"。
サンプル物理新規ファイルパスは 文字列定数 "c:\developments\vscode\mind9\samplenew.txt"。
サンプルファイルは ファイル。
サンプル新規ファイルは ファイル。
メインとは (・ → ・)
サンプル新規ファイルを サンプル物理新規ファイルパスで 新規オープンし
エラー?
ならば 「サンプルファイルの新規オープンに失敗しました。(」を 表示し
エラー文字列を 表示し 「)」を 一行表示し
実行終わり
つぎに
「サンプルファイルを新規オープンしました。」を 一行表示し
サンプルファイルを サンプル物理ファイルパスで オープンし
エラー?
ならば 「サンプルファイルのオープンに失敗しました。(」を 表示し
エラー文字列を 表示し 「)」を 一行表示し
サンプル新規ファイルを クローズし
「サンプル新規ファイルをクローズしました。」を 一行表示し
実行終わり
つぎに
「サンプルファイルをオープンしました。」を 一行表示し
ここから
データ終り?
ならば 打ち切り
つぎに
サンプルファイルから 一行読み出しし
サンプル新規ファイルへ 一行書き込みし
エラー?
ならば 「サンプル新規ファイルへの一行書き込みに失敗しました。(」を 表示し
エラー文字列を 表示し 「)」を 一行表示し
打ち切り
つぎに
繰り返し
サンプルファイルを クローズし
「サンプルファイルをクローズしました。」を 一行表示し
サンプル新規ファイルを クローズし
エラー?
ならば 「サンプル新規ファイルへのクローズに失敗しました。(」を 表示し
エラー文字列を 表示し 「)」を 一行表示し
さもなければ
「サンプル新規ファイルをクローズしました。」を 一行表示し
つぎに。
新規オープン処理はファイルが存在しなくもてエラーは起きないのですが、フォルダが存在しない場合などもエラーが起きやすいポイントのため、エラー処理記述が推奨されています。
クローズ処理は書き込みモードでオープンした場合はエラー処理記述が推奨されています。
`
下記の記述はコンパイルエラーとなります。「論理ファイル」変数の宣言はグローバル必須のようです。詳しくは後述します。
メインとは (・ → ・)
サンプル新規ファイルは ファイル
サンプル物理新規ファイルパスで サンプル新規ファイルを オープンし
~略~
コンパイル結果
ではコンパイルしてみます。下位ライブラリはfileを指定します。
Mind9
下図はMind9βです。
C:\developments\vscode\mind9>mind linewrite file
日本語プログラミング言語 Mind Version 8.11 for Windows
Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了
Coping.. C:\mind9-beta\mind9-beta\bin\mindex.exe --> linewrite.exe
Mind8
C:\developments\vscode\mind9>mind linewrite file
日本語プログラミング言語 Mind Version 8.07 for Windows
Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了
Coping.. c:\pmind\bin\mindex.exe --> linewrite.exe
Mind7
C:\developments\vscode\mind9>mind linewrite file
日本語プログラミング言語 Mind Version 7.5 for Windows
Copyright(C) 1985-2004 Scripts Lab. Inc.
Single user license. Serial No:********
コンパイル中 - 終了
Coping.. C:\mind7\bin\mindexec.exe -> linewrite.exe
Mindプログラムソース(コンパイルエラーとなる例)
下記のように論理ファイル名をローカル変数として宣言するとコンパイルエラーとなります。
サンプル物理新規ファイルパスは 文字列定数 "c:\developments\vscode\mind9\samplenew.txt"。
メインとは (・ → ・)
サンプル新規ファイルは ファイル
サンプル新規ファイルを サンプル物理新規ファイルパスで 新規オープンし
~略~
コンパイル結果(コンパイルエラーとなる例)
ではコンパイルしてみます。下位ライブラリはfileを指定します。
Mind8の結果です。記述は割愛していますがMind7/9βも同じです。
Mind8
C:\developments\vscode\mind9>mind linewrite file
日本語プログラミング言語 Mind Version 8.07 for Windows
Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了
9 個のエラーが有ります。
C:\developments\vscode\mind9>
infファイルは生成されます。下記では論理ファイルがローカル変数宣言されたことで依存しているエラー内容で重複するものは割愛しています。
linewrite.src 7 行目でエラー。行内容は、
サンプル新規ファイルは ファイル
要因1:処理単語内ではこの局所変数定義はできません。
linewrite.src 8 行目でエラー。行内容は、
サンプル新規ファイルを サンプル物理新規ファイルパスで 新規オープンし
要因1:"サンプル新規ファイル"は未定義の単語です。
要因2:処理単語"新規オープン"の前に変数が有りません。
linewrite.src 20 行目でエラー。行内容は、
サンプル新規ファイルを クローズし
要因1:"サンプル新規ファイル"は未定義の単語です。
要因2:処理単語"クローズ"の前に変数が有りません。
実行結果
つづいてコンパイル成功した方のソースコードを実行してみます。
フォルダが存在しない場合
下記のようにソースコードを調整して存在しないフォルダパスを指定します。
サンプル物理新規ファイルパスは 文字列定数 "c:\developments\vscode\mind9beta\samplenew.txt"。
c:\developments\vscode>dir mind9*
2025/09/28 11:07 <DIR> mind9
2025/02/15 23:37 <DIR> mind9kernel
2 個のディレクトリ ***,***,*** バイトの空き領域
c:\developments\vscode>
Mind8の結果です。記述は割愛していますがMind7/9βも同じです。
C:\developments\vscode\mind9>linewrite
サンプルファイルのオープンに失敗しました。(No such file or directory)
C:\developments\vscode\mind9>
ファイルが存在しない場合(新規オープンは成功します。)
c:\developments\vscode\mind9>type samplenew.txt
指定されたファイルが見つかりません。
c:\developments\vscode\mind9>type sample.txt
サンプルテキストファイルの1行目です。
c:\developments\vscode\mind9>
Mind8の結果です。記述は割愛していますがMind7/9βも同じです。
C:\developments\vscode\mind9>linewrite
サンプルファイルを新規オープンしました。
サンプルファイルをオープンしました。
サンプルファイルをクローズしました。
サンプル新規ファイルをクローズしました。
C:\developments\vscode\mind9>
c:\developments\vscode\mind9>type samplenew.txt
サンプルテキストファイルの1行目です。
c:\developments\vscode\mind9>
いかがでしたでしょうか?イメージがわけば幸いです。
参考情報
この小技「ファイルの新規オープン」を使った記述例の記事は下記が該当します。
おわりに
いかがでしたでしょうか?なにかの参考になれば幸いです。2025年は日本語プログラミング言語Mind生誕40周年です。
本記事シリーズのご紹介
本記事シリーズ「日本語プログラミング言語Mindの小技」は「日本語プログラミング言語Mind生誕40周年プロジェクト」の一環です。
興味を持たれた方は日本語プログラミング言語Mind公式サイトにアクセスすると、Mindコンパイラをダウンロードできます。
面白い!、楽しい、カンタン、難しいのも書ける!みんなでやってみよう![]()