配列の要素ゼロを使用する

4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次

version 6.0


配列には常に要素ゼロがあります。配列がフォームオブジェクトをサポートする場合、要素ゼロは表示されませんが、ランゲージでの使用に制限はありません。

要素ゼロの用途の一例として、配列とフォームオブジェクトの節で説明するコンボボックスの例があります。

その他の例を2つ挙げます。

1. 前に選択した要素以外の要素をクリックした場合のみ動作を行わせる場合、選択したそれぞれの要素を追跡する必要があります。これを実行する方法の1つは、選択する要素の要素番号を保持するプロセス変数を使用することです。もう1つの方法は、次のように配列の要素ゼロを使用する方法です:

      ` atNames スクロールエリアオブジェクトメソッド
   Case of
      : (Form event=On Load)
            ` 配列を初期化
         ARRAY TEXT (atNames;5)
            ` ...
            ` 要素番号0を、文字形式で、現在選択されいる要素番号に初期化
            ` ここでは要素が選択されいないとする
         atNames{0}:="0"

      : (Form event=On Unload)
            ` もう配列は必要ない
         CLEAR VARIABLE(atNames)

      : (Form event=On Clicked)
         If (atNames#0)
            If (atNames#Num(atNames{0}))
               vtInfo:=atNames{atNames}+"がクリックされ、それは選択されいませんでした。"
               atNames{0}:=String(atNames)
            End if
         End if
      : (Form event=On Double Clicked)
         If (atNames#0)
            ALERT (atNames{atNames}+"がダブルクリックされました。")
         End if
   End case

2. ASCII互換モードで、ドキュメントまたはシリアルポートから一連の文字群を送受信する場合、4Dは異なるASCIIマップを使用するプラットフォーム間やシステム間で、ASCIIコードをフィルタする方法 (コマンドUSE ASCII MAP, Mac to ISO, ISO to Mac, Mac to Win, Win to Mac) を提供します。

場合によっては、ASCIIコードを変換する方法を完全に制御したいことがあります。これを行う1つの方法は、N番目の要素が、ASCIIコードNの文字をソースとする変換後のASCIIコードに設定される、255要素からなる整数配列を使用することです。例えば、ASCIIコード#187#156に変換する場合、データベース中で使用されるインタープロセス配列を初期化するメソッドの中に、<>aiCustomOutMap{187}:=156<>aiCustomInMap{156}:=187と記述します。次のカスタムプロジェクトメソッドを使用して、一連の文字群を送信することができます:

      ` X SEND PACKET ( Text { ; Time } )
   For ($vlChar;1;Length($1))
      $1[[vlChar]]:=Char(<>aiCustomOutMap{Character code($1[[vlChar]])})
   End for
   If (Count parameters>=2)
      SEND PACKET ($2;$1)
   Else
      SEND PACKET ($1)
   End if
      ` X Receive packet ( Text { ; Time } ) -> Text
   If (Count parameters>=2)
      RECEIVE PACKET ($2;$1)
   Else
      RECEIVE PACKET ($1)
   End if
   $0:=$1
   For ($vlChar;1;Length($1))
      $0[[vlChar]]:=Char(<>aiCustomInMap{Character code($0[[vlChar]])})
   End for

この応用例では、NULL文字(ASCIIコードのゼロ)が入っている一連の文字群を送受信する場合、配列<>aiCustomOutMapおよび<>aiCustomInMapのゼロ要素は、255要素の配列の他の要素と同じ役割を果たします。

参照

配列.


4D - Documentation   French   English   German   Spanish   日本語   4D v11 SQLコマンドテーマリスト   4D v11 SQLインデックス   4D v11 SQL定数テーマリスト   戻る   前   次