4D v13.4

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

ホーム

 
4D v13.4
配列の要素ゼロを使用する

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


 

 

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

(ひとつだけ例外があります。配列タイプのリストボックスでは、編集中の元の値を保持するため、内部的に0番目の要素が使用されています。この特別なケースでは、開発者は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 CHARACTER SET, 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
テーマ: 配列

 
参照 

配列