2番目の形式では、
datatype が、
ZSTRING か、
WSTRINGの場合は、ASCIIかユニコードの文字サイズが、それぞれ返されます。
datatype が、
String(文字列) なら、文字列記述子型のサイズが、返されます。
fbc バージョン < 1.08の場合:指定された名前空間の変数に、名前空間の名前接頭辞を使ってアクセスする時は、
Len への引数を括弧で囲んで、式として見えるようにし強制ます。
たとえば、
Len((namespace_name.variable))。
Dim Japanese As WString * 20
Declare Function
KLen (mojiretsu As String) As Integer
Japanese = "今日は、世界!"
Print Len("hello world"),
KLen("hello world")
'戻り値 "11" と "11"
Print Len(Integer) '戻り値 " 4"
Print Len("今日は、世界!"
),
KLen("今日は、世界!"
)
'戻り値 "11" と "7"
Print Len(Japanese
),
KLen(Japanese
)
'戻り値 "11" と "7"
Type xyz
a
As Integer
b
As Integer
End Type
Print Len(xyz
) '戻り値 "8"
Sleep
Function KLen (mojiretsu As String) As Integer
Dim i As Integer
Dim cCode As Integer
Dim Result As Integer
Result = 0
For i = 1 To Len(mojiretsu)
cCode = Asc(Mid(mojiretsu, i, 1))
If (cCode >= &h81 And cCode <= &h9F) Or (cCode >= &hE0 And cCode <= &hFF) Then
'コードが2バイト文字の範囲なら
i = i + 1
End If
Result = Result + 1
Next i
KLen = Result
End Function
Dim Japanese As WString * 20
Dim mojiretsu As WString * 100
Width 50, 10
'横幅を50桁に狭めます
Japanese =
"今日は、世界!"
mojiretsu =
"、-K2011年11月06日(曜日Sun.)"
Print Len("hello world"),
"hello world"
'戻り値 "11"
Print Len(Integer)
'戻り値 " 4"
Print Len("今日は、世界!"),
"今日は、世界!"
&
Space(Len("今日は、世界!"))
'戻り値 UNICODE:"7"、ShiftJIS"14"
Print Len(WStr("今日は、世界!")),
"今日は、世界!"
&
Space(Len("今日は、世界!"))
'戻り値 " 7"
Print Len(Japanese
),
Japanese
&
Space(Len(Japanese
))
'戻り値 " 7"
Print Len(mojiretsu
),
mojiretsu
&
Space(Len(mojiretsu
))
'戻り値 "22"
Type xyz
a
As Integer
b
As Integer
End Type
Print Len(xyz
) '戻り値 "8"
Print "何かキーを押して下さい。" & Space(Len("何かキーを押して下さい。"))
Sleep