HyperCard tribute

チャンクについて


 チャンクとはデータを構成する単位のことです。データ間の区切り方の違いにより、いくつかの種類があります。
 これらの、識別子を活用することで、いろいろな形式のデータから必要なデータを取り出すことが可能となります。

 HyperCardでデータを持とうと思った場合、変数を用いるか、フィールドを用いるかのどちらかになります。データの数が少数であれば、データの数だけ変数を用意することで対処することができますが、データの数が多ければ問題が発生します。大量の変数を用意したとすれば、管理が難しくなりデータの変更がしづらくなります。また、フィールドを用いたとすれば、HyperCardのスピード低下につながります。
 そのような場合に、データを一つでまとめ、チャンクごとにデータを取り出すのです。

以下のような5つのデータを用いて計算をしてみます。仮に変数を n? と呼んでおきます。
  5 7 1 12 6

  • n1とn3を加算する
  • n4とn5を加算する

  •  まず最初に、変数を用いてみます。それぞれの変数名はa1、a2、a3、a4、a5とします。
     最初にデータの代入をしなければなりません。データの代入には以下のようなスクリプトが必要です。
     1 
     2 
     3 
     4 
     5 
    
    put 5 into a1
    put 7 into a2
    put 1 into a3
    put 12 into a4
    put 6 into a5
    

     次に、計算をします。
     1 
     2 
    
    put a1+a3 into result1
    put a4+a5 into result2
    

     計算をするには、計算の数だけのスクリプトを書くことが必要となります。例えば、ここで追加の計算が必要となったとしたら、その追加の数だけスクリプトを書かなくてはならないのです。


     次に item チャンクを用いてみます。itemは、コンマごとにデータを区切ります。
     データは変数dataに代入します。

    1 put 5,7,1,12,6 into data

     今回は item を使って変数dataから取り出して計算してみます。

    2 put item 1 of data+item 3 of data into result1
    3 put item 4 of data+item 5 of data into result2

     このように item を用いることで、データの管理が簡単になります。
     次に識別子の説明をします。



  • item
     テキストをアイテム単位で指し示すときに用います。
     アイテムは、半角のコンマ「,」で区切ったものです。区切り文字を変更することも可能です。

    例:変数dataの3番目のアイテムを取り出す
     put item 3 of data

    例:変数dataの最後のアイテムを取り出す
     put last item of data

    例:区切り文字をスペースに変更
     set the itemDlimiter to space



  • character
     テキストをキャラクタ単位で指し示すときに用います。characterは、charと略すことが可能です。
     キャラクタは、半角・全角に関わらず1文字を1charで数えます。

    例:変数dataの3つ目のキャラクタを取り出す
     put char 3 of data

    例:変数dataの最後のキャラクタを取り出す
     put last char of data



  • line
     テキストをライン単位で指し示すときに用います。
     ラインは、見かけの折り返しではなく、実際のreturnコードで区切られます。

    例:変数dataの4行目のデータを取り出す
     put line 4 of data

    例:変数dataの最後のラインデータを取り出す
     put last line of data



  • word
     テキストをワードの単位で指し示すときに用います。
     ワードの定義は4つあります。
     ・全角と半角の境

     ・半角ダブルクォーテーション
     ・スペース
     ・リターンコード

     変数dataに以下のようなデータが入っているときのデータ区切りについて
    ハイパー カードは"very easy"
    Apple Macintoshの言語です
     結果は以下のようになります。ダブルクォーテーションの区切りに関しては、ダブルクォーテーションも含んだ値が取り出されます。
     1番目のword:ハイパー(スペース区切り)
     2番目のword:カードは(ダブルクォーテーション区切り)
     3番目のword:"very easy"(ダブルクォーテーションによる区切りが優先される)
     4番目のword:Apple(スペース区切り)
     5番目のword:Macintosh
     6番目のword:の言語です
    例:変数dataの1番目のワードを取り出す
     put word 1 of data

    例:変数dataの最後のワードを取り出す
     put last word of data