HyperCard tribute

テキストの読み書き


 テキストデータは最も汎用性の高いデータ形式です。ワープロ専用機のデータであっても、Windowsでしか発売されていないワープロソフトのデータであっても、テキストデータに変換すればどんなソフトでも使うことができるようになるのです。
 例えばクラリスワークスで作成した文書はWordでは読み込むことができません。しかし、クラリスワーク上でテキストデータに変換すればWordで読み込むことができるようになります。しかも、Wordだけでなくありとあらゆるソフトで使用することができるようになるのです。もちろんHyperCardも同様です。

 この他にも、テキストデータを使う利点はあります。それは、オフィスで使っていくための条件の一つを満たすことができるという点です。
 オフィスで必要な条件の一つは互換性です。短い期間だけを考えれば、同じコンピュータを会社に導入することで互換性の問題をパスすることができますが、長い目で見ればいつまでもWindowsとMacintoshが使われるという保証はありません。しかし、テキストデータであれば、特定の機種と一緒に文書を心中させることなどはないのです。

 そこで、ここでは、フィールド内容をテキストに書き込む方法と、テキスト内容を読み込みフィールドに入れる方法について説明します。

 まず、最初にテキスト書き込みのスクリプト例です。
 フィールド "sc" を作り適当な文章を書き込んで下さい。このスクリプトでは、フィールド "sc" の内容をテキストに書き出すように作ってあります。
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
on text_write
  ask file "ファイルに書き出します。"&return&"ファイル名?"
  if it is empty then exit text_write
  put it into fn
  open file fn
  write cd fld "sc" to file fn
  close file it
end text_write

  • ask file "ファイルに書き出します。"&return&"ファイル名?"
     2行目では、書き出すファイルを指示するダイアログが出ます。いわゆる「別名で保存」を選んだときのダイアログと同じものです。ここで指示したファイル名にフィールド内容を書き込みます。
     文字列 "ファイルに書き出します" と "ファイル名" の間に return がありますが、これは改行を意味しています。


  • if it is empty then exit text_write
     3行目ではダイアログの内容を見ています。キャンセルを押したりファイル名に何も書かなかったりしたら、text_writeハンドラを抜けます。


  • open file fn
     5行目ではファイルのオープンをしています。テキストへの書き込み、読み込み時には、テキストのオープン、クローズが絶対に必要となります。


  • write cd fld "sc" to file fn
     6行目で、テキストの書き込みをしています。write文を続けて書いていけばデータを書き足していきます。複数のフィールドの内容や変数内容などを書き出したい時は、repeat文などを用いるとスマートなスクリプトとなるでしょう。
    「cd fld "sc"(フィールド "sc" )」
      を
    「file fn(ファイル fn)」
      に
    「write 〜 to 〜(書き出す)」


     実際にテキストを開いてみて、内容を確認して下さい。フィールド内容が書き込まれていることと思います。次に、テキストの読み込みをしますので、テキストに何か文字を書き足しておいて下さい。
     1 
     2 
     3 
     4 
     5 
     6 
     7 
     8 
     9 
    
    on text_read
      answer file "ファイルを読み込みます。"&return&"ファイルを選んでください。" of type TEXT
      if it is empty then exit text_read
      put it into fn
      open file fn
      read from file fn until eof
      close file fn
      put it into cd fld "sc"
    end text_read
    

  • answer file "ファイルを読み込みます。"&return&"ファイルを選んでください。" of type TEXT
     2行目で、読み込むファイルの指定をします。最後に type text を付けることで、ダイアログにはテキスト形式のファイルしか表示されなくなります。


  • read from file fn until eof
     6行目でテキスト内容を読み込みます。読み込んだデータは、変数 it に入ります。


     これらのスクリプトを使うことで、データの保存、読み込みができるようになります。例えば、テキストデータを読み込み、加工した上でまたテキストとして書き出すとか、ゲームのハイスコアやセーブデータとして保存しておくとか、いろいろな使い道があります。