Q16:チュートリアルの購買管理5から6になるまでに追加された部分で、メニューから内容設定を追加し、ファイルを読み込む処理のところのテキストファイル入力とファイルオブジェクトの区別が良くわかりません。
Q16-1:
購買管理をまとめながら復習していたところ、どうにも腑に落ちない部分があったので質問させて下さい。チュートリアルの購買管理5から6になるまでに追加された部分になるのですが、メニューから内容設定を追加し、ファイルを読み込む処理のところになります。
以前ファイルオブジェクトが何かを教えて頂きましたが、どうもその辺りの理解が不十分のようです。(ファイルに対して操作を行うオブジェクトとの回答でした)
ID13のファイル選択[バックアップファイル選択]コンポーネントからの処理において、テキストファイル入力コンポーネントに対して直接選択データを読み込むことをせずに、ファイルオブジェクトを指定してから読み込んでいるのは何か理由があるのでしょうか?
テキストファイル入力とファイルオブジェクトの区別が良くわかりません。
A16-1:
テキストファイル入力は、指定されたファイルから文字列を読込むために用いるコンポーネントです。ファイルの中の文字列をまとめて読込むためのメソッドとして、以下の2つが用意されています。
(1) ファイルオブジェクトを指定して読込む(File)
(2) ファイル名を指定してテキストデータを読み込む(String)
機能は同じで、違いは読込むファイルをファイルオブジェクトとして指定するのか、ファイル名(フルパス名)を表す文字列として指定するのかということです。ただし、MZ Platform内部では、ファイルに関する処理はファイルオブジェクトを使って行っていますので、(2)のメソッドを用いた場合には、文字列として与えられたファイル名をもとに、ファイルオブジェクトを生成するという処理が行われます。
ファイル選択コンポーネントが発生するデータ選択イベントに内包されているイベント対象データ(ファイルオブジェクト)と選択データ(文字列)は、どちらも同一のファイルを示すもので、データ形式が異なるだけです。購買管理チュートリアルの「2.8. データベース内容設定機能の追加」では、内部で行われるファイルオブジェクトの生成という処理を行わずに済ませるために、イベント対象データのファイルオブジェクトを引数として、(1)のメソッドを用いています。
もっとも、この処理自体はそれほど負荷の大きいものではなく、通常、意識する必要はございません。上述のように、(1)と(2)の機能に差異はありませんので、引数を選択データとして(2)のメソッドを用いても同じ結果が得られますし、また、処理速度にも有意な差は見られません。