• 検索結果がありません。

文字列操作関数

ドキュメント内 WebDBtoolsユーザーズガイド (ページ 116-121)

第8章 関数

8.2 文字列操作関数

文字列操作関数について説明します。

8.2.1 chr

説明

chrは、文字コード(ASCIIコード)から文字列を取得する関数です。

構文

s0 = chr(n1)

戻り値

パラメタ n1 に与えられた文字コード(ASCIIコード)を持つ文字(1文字からなる文字列)を返します。

0x00から0xffまで以外の数が与えられた場合は、空文字列を返します。

使用例

chr(65) → "A"

8.2.2 format

説明

formatは、文字列などを指定フォーマットに従って整形する関数です。

文字列または数値x1s2 で指定されるフォーマットに従って整形します。

構文

s0 = format(x1 [, s2])

パラメタ x1 :

・ 整形される数値または文字列を指定します。

s2 :

・ 整形の仕方を表します。

・ コロン(:)で区切って項目を並べます。不要な空白を入れてはいけません。

・ 最初の項目は、タイプを表します。指定できる値は、以下の3種類です。また、この値によってx1のコンテキストが定 まります。

値 意味 x1のコンテキスト

str 文字列 文字列

fix 固定小数点表示の数値 数値 exp 浮動小数点表示の数値 数値

・ この項目が省略された場合は、str が指定されたものとみなされます。

・ タイプによって、指定できる項目が異なります。

・ 各項目は、単に値を指定する、または<キーワード>=<値>という形式で指定します。

・ 各タイプに定められた順序に従って記述している間は、単に値を書くことで指定することができます。一度キーワード を指定した場合、それ以降はすべての項目にキーワードを指定してください。

・ ある項目に省略値を利用し、それ以降に省略値以外の項目を指定しようとする場合は、キーワードを指定してくださ い。

・ 文字列は引用符などで囲ってはいけません。したがって、文字列中にコロン(:)を含めることはできません。

・ 値には、0以上の整数または文字列が指定できます。どちらを指定するかは項目によって決まっています。以下に示す

「項目」の表を、参照してください。

戻り値

整形した結果の文字列を返します。

項目

【タイプが「str」の場合】

キーワード 可能な値 省略値 説明

width 0以上の整数 0 最小の幅(単位:バイト)

adjust left/right/center left 左詰(left)、右詰(right)、中央揃え(center)

文字列の長さがwidthで指定した値以上だった場合は、その幅が使われます。

【タイプが「fix」の場合】

キーワード 可能な値 省略値 説明

width 0以上の整数 0 最小の幅(単位:バイト)

prec 0以上の整数 0 小数点以下の桁数

adjust left/right/center right 左詰(left)、右詰(right)、中央揃え(center)

ipad 文字列(最初の1バ イトだけが使われ る)

' ' 整数部のパディング文字

キーワード 可能な値 省略値 説明 fpad 文字列(最初の1バ

イトだけが使われ る)

' ' 小数部のパディング文字

delimit 0以上の整数 0 正の整数が指定されていれば、整数部はその

けたごとにカンマ(,)が挿入される

minus 文字列 '-' 値が負の場合に数値の直前に挿入される

plus 文字列 '' 値が正の場合に数値の直前に挿入される zero 文字列 '' 値が0の場合に数値の直前に挿入される

【タイプが「exp」の場合】

キーワード 可能な値 省略値 説明

width 0以上の整数 0 最小の幅(単位:バイト)

prec 0以上の整数 6 小数点以下の桁数

adjust left/right/center right 左詰(left)、右詰(right)、中央揃え(center)

使用例

format("abc") → "abc"

format("abc", "str:10:adjust=center") → " abc "

format(1.45678,"fix:7:4") → "1.4568" (四捨五入されていることに注意)

format(-1234567.89012, "fix:prec=4:minus=▲:delimit=3") → "▲1,234,567.8901"

format(33.333, "exp") → "3.333300E+01"

<!HREPLACE 'format(x*100, "fix"). "%"'>

→ xに保持している割合をパーセントで表示する

8.2.3 index

説明

indexは、文字列中で検索文字を表示する位置を取得する関数です。

位置は先頭を0とします。

n3は省略することができます。省略した場合は0とみなされます。

n3 が負の値の場合も0とみなされます。

構文

n0 = index(s1, s2 [, n3])

パラメタ s1:

・ 検索の対象となる文字列を指定します。

s2:

・ 検索する文字列を指定します。

s3:

・ 検索対象文字列のうち、どの位置から検索を開始するかを指定します。省略することも可能です。その場合は、0が

戻り値

s2s1 に表示されない場合は、-1を返します。

s2 が空文字列の場合は、n3 を返します。

s2が空文字列でn3が省略されている場合は、0を返します。

使用例

index("ABCD", "BC") → 1 index("ABCABC", "ABC", 1) → 3 index("ABCABC", "DEF") → -1 index("ABCABC", "", 3) → 3

8.2.4 length

説明

lengthは、文字列の長さを取得する関数です。

日本語文字を含む場合も、バイト単位の長さとなります。

構文

n0 = length(s1)

戻り値

文字列s1の長さを返します。

使用例

length("abc") → 3 length("") → 0 length("あ") → 2 length("\n") → 1

8.2.5 ord

説明

ordは、文字列から文字コード(ASCIIコード)を取得する関数です。

構文

n0 = ord(s1)

戻り値

文字列s1の先頭文字のASCIIコードを返します。

この場合の「先頭文字」とは、「先頭の1バイト」のことを指します。

使用例

ord("A") → 65

8.2.6 substr

説明

substrは、ある文字列から指定された長さの部分文字列を切り出す関数です。

文字列の先頭位置は0です。

構文

s0 = substr(s1, n1 [, n2])

戻り値

文字列s1 の位置n1 から始まる部分文字列を返します。s1n1n2 の値により、以下の戻り値を返します。

n2 が0または正の数の場合は、長さn2 の部分文字列を返します。

・ n1s1の長さ以上の場合は、空文字列を返します。

・ n2が省略された場合は、位置n1から最後までの文字列を返します。

・ n1 が負の場合には、末尾から数えて-n1 番目の文字の位置が指定されたものとみなします。ただし、n1 の絶対値が

s1 の長さより大きい場合は、先頭が指定されたものとみなします。

・ n2が負の数の場合は、末尾から-n2だけの文字を除いたものを返します。

・ n1 + n2s1 の長さを超える場合は、位置n1 から最後までの文字列を返します。

s1 の長さ - n1 の絶対値が n2 の絶対値より大きい場合は、空文字列を返します。

使用例

substr("abcdefghi", 0) → "abcdefghi"

substr("abcdefghi", 3) → "defghi"

substr("abcdefghi", 100) → ""

substr("abcdefghi", 3, 2) → "de"

substr("abcdefghi", -8, 3) → "bcd"

substr("abcdefghi", -20, 2) → "ab"

substr("abcdefghi", 3, -2) → "defg"

substr("abcdefghi", 3, 100) → "defghi"

substr("abcdefghi", 3, -7) → ""

8.2.7 tolower

説明

tolowerは、文字列中の大文字を小文字に変換する関数です。

2バイト系の文字には対応せず、単純にバイト単位で処理します。

構文

s0 = tolower(s1)

戻り値

文字列s1の中に表示される大文字を、すべて小文字に直したものを返します。

使用例

tolower("ABC") → "abc"

tolower("A\nb\nC") → "a\nb\nc"

説明

toupperは、文字列中の小文字を大文字に変換する関数です。

2バイト系の文字には対応せず、単純にバイト単位で処理します。

構文

s0 = toupper(s1)

戻り値

文字列s1 の中に表示される小文字を、すべて大文字に直したものを返します。

使用例

toupper("abc") → "ABC"

toupper("a\nB\nc") → "A\nB\nC"

ドキュメント内 WebDBtoolsユーザーズガイド (ページ 116-121)