6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

日本語プログラミング言語Mindの小技 「論理ファイルの新規オープン」~論理ファイル動的確保して書き込みオープン~

Last updated at Posted at 2025-10-11

はじめに

日本語プログラミング言語Mindの小技「論理ファイルの新規オープン」について説明したいと思います。

対象読者

日本語プログラミング言語Mindのユーザー、または日本語プログラミング言語に興味のある方

この小技に関連するMind言語マニュアル

この小技に関連するMind言語仕様の記述はMind8プログラミングマニュアルに記載はありません。

Mind7の付属の上級者向けドキュメントmind7\doc\file.docmに記載があります。

F4. ファイルのオープン
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄

■論理ファイルを新規オープン
    ---------------------------
    <物理ファイル名>と <バッファ長さ>で
      論理ファイルを新規オープン
       → ファイル情報
    ---------------------------
 前記の「論理ファイルをオープン」と同様の処理単語です。違いは「オープン」が
「新規オープン」になっている点のみです。

本機能(本記事)は、下記のバージョンに対応しています。Mind8のLinux版も対応していると思いますが、本記事では特に検証を行っておりません。

対応バージョン

■Mind7 ■Mind8 ■Mind9
■Windows版 □Linux版

小技の解説

Mindの小技「論理ファイルの新規オープン」は、Mindのファイルの基本操作機能の一つです。

ファイルを読み書きするためには、必ず「オープン」して、操作終了後は「クローズ」します。このとき、Mindの場合はファイルの物理パス情報の文字列と「論理ファイル」という変数をセットにして「オープン」します。この「論理ファイル」の宣言は公式マニュアルにはグローバル宣言することが必須となっています。

「論理ファイルを新規オープン」は「論理ファイル」のグローバル宣言を行わずに内部で動的に確保して「ファイル情報」をスタックに返すことで、ファイルを新規作成して書き込み操作できるようにするものです。

本記事では論理ファイルのファイル型変数をグローバルに宣言していた下記の記事に使われたサンプルソースコードを改修して流用します。

Mindプログラムソース

linewrite2.src
サンプル物理ファイルパスは      文字列定数 "c:\developments\vscode\mind9\sample.txt"。
サンプル物理新規ファイルパスは  文字列定数 "c:\developments\vscode\mind9\samplenew.txt"。
バッファサイズは               数値  200桁。

メインとは (・ → ・)
            サンプルファイルは       ファイル情報
            サンプル新規ファイルは   ファイル情報

    サンプル物理新規ファイルパスと バッファサイズで 論理ファイルを新規オープンし
    エラー?
    ならば 捨て 「サンプルファイルの新規オープンに失敗しました。(」を 表示し
        エラー文字列を 表示し 「)」を 一行表示し
            実行終わり
    つぎに
    サンプル新規ファイルに 入れ
    「サンプルファイルを新規オープンしました。」を 一行表示し

    サンプル物理ファイルパスと バッファサイズで 論理ファイルをオープンし
    エラー?
    ならば 捨て 「サンプルファイルのオープンに失敗しました。(」を 表示し
        エラー文字列を 表示し 「)」を 一行表示し
            サンプル新規ファイルで 論理ファイルをクローズし
            「サンプル新規ファイルをクローズしました。」を 一行表示し
            実行終わり
    つぎに
    サンプルファイルに 入れ
    「サンプルファイルをオープンしました。」を 一行表示し
    
    ここから
        サンプルファイルから 一行読み出しし    
        サンプルファイルが データ終り?
        ならば 打ち切り
        つぎに
          (読み出しデータ行を) サンプル新規ファイルへ 一行書き込みし
            エラー?
            ならば 「サンプル新規ファイルへの一行書き込みに失敗しました。(」を 表示し
                エラー文字列を 表示し 「)」を 一行表示し
                    打ち切り
            つぎに  
    繰り返し
  「サンプル新規ファイルへ書き込み完了しました。」を 一行表示し

    サンプルファイルで 論理ファイルをクローズし
    「サンプルファイルをクローズしました。」を 一行表示し
    サンプル新規ファイルで 論理ファイルをクローズし
    エラー?
    ならば 「サンプル新規ファイルへのクローズに失敗しました。(」を 表示し
      エラー文字列を 表示し 「)」を 一行表示し
    さもなければ
        「サンプル新規ファイルをクローズしました。」を 一行表示し
    つぎに。

修正前のソースコードの下記の論理ファイル変数のグローバル宣言がなくなっています。

linewrite.src
サンプル物理ファイルパスは      文字列定数 "c:\developments\vscode\mind9\sample.txt"。
サンプル物理新規ファイルパスは  文字列定数 "c:\developments\vscode\mind9\samplenew.txt"。
サンプルファイルは             ファイル。
サンプル新規ファイルは         ファイル。

修正後のソースコードでは、「論理ファイル」情報を受け取る「ファイル情報」変数がメイン内のローカルに宣言されています。

linewrite2.src
メインとは (・ → ・)
            サンプルファイルは       ファイル情報
            サンプル新規ファイルは   ファイル情報

コンパイル結果

ではコンパイルしてみます。下位ライブラリはfileを指定します。

Mind9

下図はMind9βです。

C:\developments\vscode\mind9>mind linewrite2 file   

日本語プログラミング言語 Mind Version 8.11 for Windows
          Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了
Coping.. C:\mind9-beta\mind9-beta\bin\mindex.exe --> linewrite2.exe

Mind8

C:\developments\vscode\mind9>mind linewrite2 file

日本語プログラミング言語 Mind Version 8.07 for Windows
          Copyright(C) 1985 Scripts Lab. Inc.
コンパイル中 .. 終了
Coping.. c:\pmind\bin\mindex.exe --> linewrite2.exe

Mind7

C:\developments\vscode\mind9>mind linewrite2 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 -> linewrite2.exe

実行結果

つづいて実行してみます。ファイルは下記の状態で実行します。

c:\developments\vscode\mind9>type samplenew.txt
指定されたファイルが見つかりません。

c:\developments\vscode\mind9>type sample.txt
サンプルテキストファイルの2行目です。
サンプルテキストファイルの3行目です。
サンプルテキストファイルの4行目です。
サンプルテキストファイルの5行目です。
c:\developments\vscode\mind9>

Mind8の結果です。記述は割愛していますがMind7/9βも同じです。

```cmd:
C:\developments\vscode\mind9>linewrite2
サンプルファイルを新規オープンしました。
サンプルファイルをオープンしました。
サンプル新規ファイルへ書き込み完了しました。
サンプルファイルをクローズしました。
サンプル新規ファイルをクローズしました。

C:\developments\vscode\mind9>

無事に新規ファイルに書き込むことができました。

c:\developments\vscode\mind9>type samplenew.txt
サンプルテキストファイルの1行目です。
サンプルテキストファイルの2行目です。
サンプルテキストファイルの3行目です。
サンプルテキストファイルの4行目です。
サンプルテキストファイルの5行目です。

c:\developments\vscode\mind9>

いかがでしたでしょうか?イメージがわけば幸いです。

参考情報

この小技「論理ファイルの新規オープン」を使った記述例の記事は未発見です。

おわりに

いかがでしたでしょうか?なにかの参考になれば幸いです。2025年は日本語プログラミング言語Mind生誕40周年です。

本記事シリーズのご紹介

本記事シリーズ「日本語プログラミング言語Mindの小技」は「日本語プログラミング言語Mind生誕40周年プロジェクト」の一環です。

興味を持たれた方は日本語プログラミング言語Mind公式サイトにアクセスすると、Mindコンパイラをダウンロードできます。

面白い!、楽しい、カンタン、難しいのも書ける!みんなでやってみよう:relaxed:

6
2
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?