Tips

Querying for e-mail addresses

日付2002/02/11
ID01-831
バージョン6.5.x and 6.7.x
プラットフォームWindows and Mac OS

4Dがワイルドカード特徴として「@」シンボルを使用するので、4Dの中のemailアドレスのために尋ねることは特別の注意を要求します。4Dのバージョン6.5以来、あなたがデータ・ベース特性中のそのオプションをチェックするかどうか、データ・ベース用のストリング中の「@」文字が疑うと思うことは可能でした。しかしながら、時々、あなたは正常な振る舞いを維持したい。しかし、emailアドレスのために尋ねることができることをまだ望みます。以下に、任意のemailアドレス競技場で速く正確に尋ねるために使用してもよいあるコードです。

`Project Method: GEN_EmailQuery
`Example: $fFound:=GEN_EmailQuery(->[User]Email_Address;"sfrey@4d.com")

$pField:=$1
$tEmail:=$2

C_POINTER($pTable)
$pTable:=Table(Table($pField))

CREATE EMPTY SET($pTable->;"Found")

C_LONGINT($iPos)

$iPos:=Position(Char(At sign );$tEmail)

If ($iPos>0)

QUERY($pTable->;$pField->=Substring($tEmail;1;$iPos))

ARRAY TEXT($atAddress;0)

SELECTION TO ARRAY($pField->;$atAddress)

C_LONGINT($iIdx)

For ($iIdx;1;Size of array($atAddress))
Case of
: ($atAddress{$iIdx}=$tEmail)
GOTO SELECTED RECORD($pTable->;$iIdx)
ADD TO SET($pTable->;"Found")
End case
IDLE
End for

End if

USE SET("Found")
CLEAR SET("Found")

$0:=(Records in selection($pTable->)#0)