変数、フィールドいずれでもポインターを取得出来るメソッド
日付 | 2003/09/24 |
---|---|
ID | 29679 (英語原文参照) |
バージョン | 2003.1 |
プラットフォーム | Mac & Win |
この記事は、最新ではないバージョンに関連した方法について解説しています。
最新のバージョンでは推奨されていないか、または他の方法で簡単に実現できる可能性があります。
メソッドサンプルです。
(Version 6.7.x, 6.8.x, 2003.xで有効)
` ユーティリティメソッド: tool_Getpointer
` 変数かフィールドの名前を基にそれらを指すポインタを返します
C_POINTER($0)
C_STRING255;$1)
C_STRING(255;$var)
C_LONGINT($tableID;$fieldID)
C_LONGINT($vlTable;$vlField;$i)
C_STRING(255;$tableName;0)
C_LONGINT($oci_l_tableMax)
$var:=$1
$tableID:=0
$fieldID:=0
$0:=Get pointer($var)
If (Undefined($0->)) ` フィールドと仮定して...
$oci_l_tableMax:=Count tables
For ($vlTable;1;$oci_l_tableMax)
$tableName:="["+Table name($vlTable)+"]"
If (Position($tableName;$var)>0)
$tableID:=$vlTable
$vlTable:=$oci_l_tableMax+1
End if
End for
If ($tableID>0)
$vlField:=Count fields($tableID)
For ($i;1;$vlField)
If (Position(Field name($tableID;$i);$var)>0)
$fieldID:=$i
$i:=$vlField+1
End if
End for
End if
If (($tableID>0) & ($fieldID>0))
$0:=Field($tableID;$fieldID)
End if
End if
記述例:
C_POINTER(pointerVar)
pointerVar:=tool_Getpointer("myvariable")
もしくは、
pointerVar:=tool_Getpointer("[table]fieldname")