「Stringクラス」の版間の差分

提供: AB開発Wiki
移動先:案内検索
(リビジョン132対応:)
6行目: 6行目:
  
 
==== Chars ====
 
==== Chars ====
  Chars As *Byte
+
  Chars As *Char
 
Stringが保持している文字列へのポインタです。これを通じて内容の読み取り・書き込みを行うことができます。
 
Stringが保持している文字列へのポインタです。これを通じて内容の読み取り・書き込みを行うことができます。
  
21行目: 21行目:
 
  Sub String()
 
  Sub String()
 
デフォルトコンストラクタ)空文字列を作ります。
 
デフォルトコンストラクタ)空文字列を作ります。
 +
 
  Sub String(ByRef initStr As String)
 
  Sub String(ByRef initStr As String)
(未実装)コピーコンストラクタです。Assign(initStr)を行います。
+
コピーコンストラクタです。Assign(initStr)を行います。
; 注意 : 現在実装されておらず、これを使用しようとすると変換演算子により*Byte引数のコンストラクタが呼ばれます。文字列中にヌル文字を含むStringインスタンスを引数にする際には注意が必要です。
 
  
  Sub String(ByVal initStr As *Byte)
+
  Sub String(ByVal initStr As *Char)
 
Assign(initStr)を行います。
 
Assign(initStr)を行います。
  
  Sub String(ByVal initStr As *Byte, length As Long)
+
  Sub String(ByVal initStr As *Char, length As Long)
 
Assign(initStr, length)を行います。
 
Assign(initStr, length)を行います。
  
 
  Sub String(length As Long)
 
  Sub String(length As Long)
String(length, Asc(Ex"\0"))と等価です。
+
String(length, 0)と等価です。
  
  Sub String(length As Long, ByVal initChar As Byte)
+
  Sub String(length As Long, ByVal initChar As Char)
 
ReSize(length, initChar)を行います。
 
ReSize(length, initChar)を行います。
  
47行目: 47行目:
 
Stringオブジェクトに文字列を割り当てます。
 
Stringオブジェクトに文字列を割り当てます。
 
  Sub Operator = (ByRef text As String)
 
  Sub Operator = (ByRef text As String)
  Sub Operator = (ByVal text As *Byte)
+
  Sub Operator = (ByVal text As *Char)
 
Assign(text)と同じです。
 
Assign(text)と同じです。
  
54行目: 54行目:
 
Stringオブジェクトに文字列を割り当てます。
 
Stringオブジェクトに文字列を割り当てます。
 
  Sub Assign(ByRef text As String)
 
  Sub Assign(ByRef text As String)
  Sub Assign(ByVal text As *Byte)
+
  Sub Assign(ByVal text As *Char)
  Sub Assign(ByVal text As *Byte, ByVal length As Long)
+
  Sub Assign(ByVal text As *Char, ByVal length As Long)
 
textの内容をこのStringインスタンスへコピーします。
 
textの内容をこのStringインスタンスへコピーします。
 
* Stringを引数に取るものは、text.length文字コピーします。
 
* Stringを引数に取るものは、text.length文字コピーします。
* *Byte単独を引数に取るものは、lstrlen(text)文字コピーします。
+
* *Char単独を引数に取るものは、lstrlen(text)文字コピーします。
 
* lengthを引数に取るものは、length文字分コピーします。
 
* lengthを引数に取るものは、length文字分コピーします。
  
71行目: 71行目:
 
文字列の大きさを変更します。
 
文字列の大きさを変更します。
 
  Sub ReSize(length As Long)
 
  Sub ReSize(length As Long)
  Sub Resize(length As Long, c As Byte)
+
  Sub ReSize(length As Long, c As Char)
 
1番目の形式はReSize(length, 0)と等価です。文字列の長さをlengthにします。変更後の文字列の長さが変更前より長くなるときには、増えた要素の部分をcで初期化します。
 
1番目の形式はReSize(length, 0)と等価です。文字列の長さをlengthにします。変更後の文字列の長さが変更前より長くなるときには、増えた要素の部分をcで初期化します。
  
77行目: 77行目:
 
==== StrPtr ====
 
==== StrPtr ====
 
文字列へのポインタを返します。
 
文字列へのポインタを返します。
  Function StrPtr() As LPSTR
+
  Function StrPtr() As *Char
 
Charsを返します。
 
Charsを返します。
  
  
==== LPSTR変換演算子 ====
+
==== *Char変換演算子 ====
 
文字列へのポインタを得ます。
 
文字列へのポインタを得ます。
  Function Operator () As LPSTR
+
  Function Operator () As *Char
 
StrPtr()呼び出しと等価です。
 
StrPtr()呼び出しと等価です。
  
89行目: 89行目:
 
==== Insert ====
 
==== Insert ====
 
文字列を挿入します。
 
文字列を挿入します。
  Function Insert(startIndex As Long, ByRef str As String) As Long
+
  Const Function Insert(startIndex As Long, ByRef str As String) As String
  Function Insert(startIndex As Long, str As LPSTR) As Long
+
  Const Function Insert(startIndex As Long, str As *Char) As String
  Function Insert(startIndex As Long, str As LPSTR, length As Long) As Long
+
  Const Function Insert(startIndex As Long, str As *Char, length As Long) As String
startIndex文字目の後にlpszTextの内容を挿入します。挿入される文字列の長さは次のようにしてなります。
+
startIndex文字目の後にlpszTextの内容を挿入した文字列を生成して返します。挿入される文字列の長さは次のようにしてなります。
 
* 1番目の形式ではstr.Length
 
* 1番目の形式ではstr.Length
 
* 2番目の形式ではlstrlen(str)
 
* 2番目の形式ではlstrlen(str)
100行目: 100行目:
 
==== Remove ====
 
==== Remove ====
 
文字列を削除します。
 
文字列を削除します。
  Function Remove(startIndex As Long) As Long
+
  Const Function Remove(startIndex As Long) As String
  Function Remove(startIndex As Long, count As Long) As Long
+
  Const Function Remove(startIndex As Long, count As Long) As LString
1番目の形式では、startIndexで指定した位置から文字列末尾までを削除します。
+
*1番目の形式では、startIndexで指定した位置から文字列末尾までを削除した文字列を生成して返します。
2番目の形式では、startIndexで指定した位置からcountで指定した数の文字列を削除します。
+
*2番目の形式では、startIndexで指定した位置からcountで指定した数の文字列を削除した文字列を生成して返します。
  
  
 
==== Replace ====
 
==== Replace ====
 
文字列の置換を行います。
 
文字列の置換を行います。
  Sub Replace(oldChar As Byte, newChar As Byte)
+
  Const Function Replace(oldChar As Char, newChar As Char) As String
  Sub Replace(ByRef oldStr As String, ByRef newStr As String)
+
  Const Function Replace(ByRef oldStr As String, ByRef newStr As String) As String
  Sub Replace(oldStr As PCSTR, newStr As PCSTR)
+
  Const Function Replace(oldStr As *Char, newStr As *Char) As String
  Sub Replace(oldStr As PCSTR, oldLen As Long, newStr As PCSTR, newLen As Long)
+
  Const Function Replace(oldStr As *Char, oldLen As Long, newStr As *Char, newLen As Long) As String
1番目の形式では、このStringインスタンス内の文字oldCharをnewCharに置き換えます。
+
* 1番目の形式では、このStringインスタンス内の文字oldCharをnewCharに置き換えた文字列を生成して返します。
2-4番目の形式では、このStringインスタンス内の文字列oldStrをnewStrに置き換えます。oldStr/newStrの長さは、次のように決まります。
+
* 2-4番目の形式では、このStringインスタンス内の文字列oldStrをnewStrに置き換えた文字列を生成して返します。oldStr/newStrの長さは、次のように決まります。
* 2番目の形式では、oldStr.Length/newStr.Length。
+
** 2番目の形式では、oldStr.Length/newStr.Length。
* 3番目の形式では、lstrlen(oldStr)/newStr(oldStr)。
+
** 3番目の形式では、lstrlen(oldStr)/newStr(oldStr)。
* 4番目の形式では、oldLen/newLen。
+
** 4番目の形式では、oldLen/newLen。
  
  
 
==== Operator + ====
 
==== Operator + ====
 
文字列を連結します。
 
文字列を連結します。
  Function Operator+ (str As LPSTR) As String
+
  Const Function Operator + (str As *Char) As String
  Function Operator+ (ByRef str As String) As String
+
  Const Function Operator + (ByRef str As String) As String
 
このStringインスタンスとstrを連結した新しい文字列を返します。
 
このStringインスタンスとstrを連結した新しい文字列を返します。
 
* 1番目の形式では、Concat(str, lstrlen(str))と同じです。
 
* 1番目の形式では、Concat(str, lstrlen(str))と同じです。
130行目: 130行目:
 
==== Operator & ====
 
==== Operator & ====
 
文字列を連結します。
 
文字列を連結します。
  Function Operator& (str As LPSTR) As String
+
  Const Function Operator & (str As *Char) As String
  Function Operator& (ByRef str As String) As String
+
  Const Function Operator & (ByRef str As String) As String
 
このStringインスタンスとstrを連結した新しい文字列を返します。
 
このStringインスタンスとstrを連結した新しい文字列を返します。
 
* 1番目の形式では、Concat(str, lstrlen(str))と同じです。
 
* 1番目の形式では、Concat(str, lstrlen(str))と同じです。
138行目: 138行目:
  
 
==== Append ====
 
==== Append ====
  Sub Append(lpszText As LPSTR, textLength As Long)
+
  Sub Append(text As *Char, textLength As Long)
  Sub Append(text As LPSTR)
+
  Sub Append(text As *Char)
 
  Sub Append(ByRef str As String)
 
  Sub Append(ByRef str As String)
 
+
末尾に文字列を追加します
  
 
==== Concat ====
 
==== Concat ====
 
この文字列と連結した新しい文字列を作ります。
 
この文字列と連結した新しい文字列を作ります。
  Function Concat(str As LPSTR, length As Long) As String
+
  Const Function Concat(str As *Char, length As Long) As String
 
; str : この文字列と連結する文字列へのポインタを指定します。末尾にヌル文字が存在する必要はありません。
 
; str : この文字列と連結する文字列へのポインタを指定します。末尾にヌル文字が存在する必要はありません。
 
; length : strが指す文字列の長さを指定します。
 
; length : strが指す文字列の長さを指定します。
151行目: 151行目:
 
このStringインスタンス自身の内容が変更されることはありません。
 
このStringインスタンス自身の内容が変更されることはありません。
  
 +
===== 使用例 =====
 +
Dim s = "でてこいでてこいいいけのこい"
 +
Print s.Replace("こい", "いけ")
 +
出力
 +
でていけでていけいけのいけ
  
 
==== Operator [] ====
 
==== Operator [] ====
 
要素を読み取ります。
 
要素を読み取ります。
  Function Operator[] (n As Long) As Byte
+
  Const Function Operator[] (n As Long) As Char
 
n文字目の文字を返します。範囲外の場合動作は保障されません。
 
n文字目の文字を返します。範囲外の場合動作は保障されません。
  
160行目: 165行目:
 
==== Operator []= ====
 
==== Operator []= ====
 
指定した要素に書き込みます。
 
指定した要素に書き込みます。
  Sub Operator[]= (n As Long, c As Byte)
+
  Sub Operator[]= (n As Long, c As Char)
 
n文字目に文字cを書き込みます。範囲外の場合動作は保障されません。
 
n文字目に文字cを書き込みます。範囲外の場合動作は保障されません。
  
166行目: 171行目:
 
==== Contains ====
 
==== Contains ====
 
指定した文字列を検索します。
 
指定した文字列を検索します。
  Function Contains(lpszText As LPSTR) As BOOL
+
  Const Function Contains(text As *Char) As Boolean
;lpszText
+
;text
 
:検索する文字列を指定します。
 
:検索する文字列を指定します。
 
;戻り値
 
;戻り値
:CharsからlpszTextの文字列が見つかった場合、TRUEを返します。見つからなかった場合、FALSEを返します。また、lpszTextが空の文字列だった場合、常にTRUEが返ります。
+
:CharsからlpszTextの文字列が見つかった場合、Trueを返します。見つからなかった場合、Falseを返します。また、textが空の文字列だった場合、常にTrueが返ります。
  
  
 
==== IndexOf ====
 
==== IndexOf ====
 
指定した文字列が最初に見つかった位置を返します。検索は、指定した位置から指定した文字数までとなります。
 
指定した文字列が最初に見つかった位置を返します。検索は、指定した位置から指定した文字数までとなります。
  Function IndexOf(lpszText As LPSTR) As Long
+
  Const Function IndexOf(lpszText As *Char) As Long
  Function IndexOf(lpszText As LPSTR, startIndex As Long) As Long
+
  Const Function IndexOf(lpszText As *Char, startIndex As Long) As Long
  Function IndexOf(lpszText As LPSTR, startIndex As Long, count As Long) As Long
+
  Const Function IndexOf(lpszText As *Char, startIndex As Long, count As Long) As Long
 
;lpszText
 
;lpszText
 
:検索する文字列を指定します。
 
:検索する文字列を指定します。
191行目: 196行目:
 
==== LastIndexOf ====
 
==== LastIndexOf ====
 
指定した文字列が最後に見つかった位置を返します。検索は、指定した位置から指定した文字数までとなります。
 
指定した文字列が最後に見つかった位置を返します。検索は、指定した位置から指定した文字数までとなります。
  Function LastIndexOf(lpszText As LPSTR) As Long
+
  Const Function LastIndexOf(lpszText As *Char) As Long
  Function LastIndexOf(lpszText As LPSTR, startIndex As Long) As Long
+
  Const Function LastIndexOf(lpszText As *Char, startIndex As Long) As Long
  Function LastIndexOf(lpszText As LPSTR, startIndex As Long, count As Long) As Long
+
  Const Function LastIndexOf(lpszText As *Char, startIndex As Long, count As Long) As Long
 
;lpszText
 
;lpszText
 
:検索する文字列を指定します。
 
:検索する文字列を指定します。
207行目: 212行目:
 
==== StartsWith ====
 
==== StartsWith ====
 
先頭の文字列が、指定した文字列と一致しているか調べます。
 
先頭の文字列が、指定した文字列と一致しているか調べます。
  Function StartsWith(lpszText As LPSTR) As BOOL
+
  Function StartsWith(lpszText As *Char) As Boolean
 
;lpszText
 
;lpszText
 
:一致するか調べる文字列を指定します。
 
:一致するか調べる文字列を指定します。
 
;戻り値
 
;戻り値
:Charsの先頭がlpszTextと一致している場合、TRUEが返ります。一致していない場合、FALSEが返ります。lpszTextに空の文字列を指定した場合、常にTRUEが返ります。
+
:Charsの先頭がlpszTextと一致している場合、Trueが返ります。一致していない場合、Falseが返ります。lpszTextに空の文字列を指定した場合、常にTrueが返ります。
  
  
 
==== EndsWith ====
 
==== EndsWith ====
 
末尾の文字列が、指定した文字列と一致しているか調べます
 
末尾の文字列が、指定した文字列と一致しているか調べます
  Function EndsWith(lpszText As LPSTR) As BOOL
+
  Const unction EndsWith(lpszText As *Char) As Boolean
 
;lpszText
 
;lpszText
 
:一致するか調べる文字列を指定します。
 
:一致するか調べる文字列を指定します。
 
;戻り値
 
;戻り値
:Charsの末尾がlpszTextと一致している場合、TRUEが返ります。一致していない場合、FALSEが返ります。lpszTextに空の文字列を指定した場合、常にTRUEが返ります。
+
:Charsの末尾がlpszTextと一致している場合、Trueが返ります。一致していない場合、Falseが返ります。lpszTextに空の文字列を指定した場合、常にTrueが返ります。
  
  
 
==== SubString ====
 
==== SubString ====
 
指定した範囲の文字列を取得します。
 
指定した範囲の文字列を取得します。
  Function SubString(startIndex As Long) As String
+
  Const Function SubString(startIndex As Long) As String
  Function SubString(startIndex As Long, length As Long) As String
+
  Const Function SubString(startIndex As Long, length As Long) As String
 
;startIndex
 
;startIndex
 
:開始位置を指定します。
 
:開始位置を指定します。
250行目: 255行目:
 
==== IsNullOrEmpty ====
 
==== IsNullOrEmpty ====
 
文字列が空またはNULLかを調べます。
 
文字列が空またはNULLかを調べます。
  Function IsNullOrEmpty() As BOOL
+
  Static Function IsNullOrEmpty(s As String) As Boolean
 
;戻り値
 
;戻り値
:Charsが空またはNULLならばTRUEが返ります。それ以外はFALSEです。
+
:sがNothingであるかs.Lengthが0ならばTrueが返ります。それ以外はFalseです。
  
  
== 補足 ==
+
== 備考 ==
 
文字列の末尾には、従来のABの文字列やC/C++などと同様、常にヌル文字(Asc(Ex"\0")あるいは単に0)が付きます。Length > 0のとき、Chars[Length]は0です。この要素を読み取ることはできますが、書き込むことはできません。(範囲外としてエラーとなります)なお、文字列中にヌル文字が含まれても構いません。
 
文字列の末尾には、従来のABの文字列やC/C++などと同様、常にヌル文字(Asc(Ex"\0")あるいは単に0)が付きます。Length > 0のとき、Chars[Length]は0です。この要素を読み取ることはできますが、書き込むことはできません。(範囲外としてエラーとなります)なお、文字列中にヌル文字が含まれても構いません。
  
 
※範囲外のエラーは未実装です。
 
※範囲外のエラーは未実装です。

2007年3月4日 (日) 14:38時点における版

文字列を扱うクラスです。

クラスの機能

メンバ・プロパティ

Chars

Chars As *Char

Stringが保持している文字列へのポインタです。これを通じて内容の読み取り・書き込みを行うことができます。


Length

Length As Long

Stringが保持している文字列の長さを表しています。基本的に書き換えないでください。


メソッド

コンストラクタ

Stringインスタンスを初期化します。

Sub String()

デフォルトコンストラクタ)空文字列を作ります。

Sub String(ByRef initStr As String)

コピーコンストラクタです。Assign(initStr)を行います。

Sub String(ByVal initStr As *Char)

Assign(initStr)を行います。

Sub String(ByVal initStr As *Char, length As Long)

Assign(initStr, length)を行います。

Sub String(length As Long)

String(length, 0)と等価です。

Sub String(length As Long, ByVal initChar As Char)

ReSize(length, initChar)を行います。


デストラクタ

Stringインスタンスの破壊時に呼ばれます。

Sub ~String()

文字列のメモリを解放します。


代入

Stringオブジェクトに文字列を割り当てます。

Sub Operator = (ByRef text As String)
Sub Operator = (ByVal text As *Char)

Assign(text)と同じです。


Assign

Stringオブジェクトに文字列を割り当てます。

Sub Assign(ByRef text As String)
Sub Assign(ByVal text As *Char)
Sub Assign(ByVal text As *Char, ByVal length As Long)

textの内容をこのStringインスタンスへコピーします。

  • Stringを引数に取るものは、text.length文字コピーします。
  • *Char単独を引数に取るものは、lstrlen(text)文字コピーします。
  • lengthを引数に取るものは、length文字分コピーします。


Swap

文字列の内容を交換します。

Sub Swap(ByRef x As String)
交換先のインスタンスを指定します。


ReSize

文字列の大きさを変更します。

Sub ReSize(length As Long)
Sub ReSize(length As Long, c As Char)

1番目の形式はReSize(length, 0)と等価です。文字列の長さをlengthにします。変更後の文字列の長さが変更前より長くなるときには、増えた要素の部分をcで初期化します。


StrPtr

文字列へのポインタを返します。

Function StrPtr() As *Char

Charsを返します。


*Char変換演算子

文字列へのポインタを得ます。

Function Operator () As *Char

StrPtr()呼び出しと等価です。


Insert

文字列を挿入します。

Const Function Insert(startIndex As Long, ByRef str As String) As String
Const Function Insert(startIndex As Long, str As *Char) As String
Const Function Insert(startIndex As Long, str As *Char, length As Long) As String

startIndex文字目の後にlpszTextの内容を挿入した文字列を生成して返します。挿入される文字列の長さは次のようにしてなります。

  • 1番目の形式ではstr.Length
  • 2番目の形式ではlstrlen(str)
  • 3番目の形式ではlength


Remove

文字列を削除します。

Const Function Remove(startIndex As Long) As String
Const Function Remove(startIndex As Long, count As Long) As LString
  • 1番目の形式では、startIndexで指定した位置から文字列末尾までを削除した文字列を生成して返します。
  • 2番目の形式では、startIndexで指定した位置からcountで指定した数の文字列を削除した文字列を生成して返します。


Replace

文字列の置換を行います。

Const Function Replace(oldChar As Char, newChar As Char) As String
Const Function Replace(ByRef oldStr As String, ByRef newStr As String) As String
Const Function Replace(oldStr As *Char, newStr As *Char) As String
Const Function Replace(oldStr As *Char, oldLen As Long, newStr As *Char, newLen As Long) As String
  • 1番目の形式では、このStringインスタンス内の文字oldCharをnewCharに置き換えた文字列を生成して返します。
  • 2-4番目の形式では、このStringインスタンス内の文字列oldStrをnewStrに置き換えた文字列を生成して返します。oldStr/newStrの長さは、次のように決まります。
    • 2番目の形式では、oldStr.Length/newStr.Length。
    • 3番目の形式では、lstrlen(oldStr)/newStr(oldStr)。
    • 4番目の形式では、oldLen/newLen。


Operator +

文字列を連結します。

Const Function Operator + (str As *Char) As String
Const Function Operator + (ByRef str As String) As String

このStringインスタンスとstrを連結した新しい文字列を返します。

  • 1番目の形式では、Concat(str, lstrlen(str))と同じです。
  • 2番目の形式では、Concat(str, str.Length)と同じです。


Operator &

文字列を連結します。

Const Function Operator & (str As *Char) As String
Const Function Operator & (ByRef str As String) As String

このStringインスタンスとstrを連結した新しい文字列を返します。

  • 1番目の形式では、Concat(str, lstrlen(str))と同じです。
  • 2番目の形式では、Concat(str, str.Length)と同じです。


Append

Sub Append(text As *Char, textLength As Long)
Sub Append(text As *Char)
Sub Append(ByRef str As String)

末尾に文字列を追加します

Concat

この文字列と連結した新しい文字列を作ります。

Const Function Concat(str As *Char, length As Long) As String
str 
この文字列と連結する文字列へのポインタを指定します。末尾にヌル文字が存在する必要はありません。
length 
strが指す文字列の長さを指定します。
戻り値 
連結した文字列を返します。

このStringインスタンス自身の内容が変更されることはありません。

使用例
Dim s = "でてこいでてこいいいけのこい"
Print s.Replace("こい", "いけ")

出力

でていけでていけいけのいけ

Operator []

要素を読み取ります。

Const Function Operator[] (n As Long) As Char

n文字目の文字を返します。範囲外の場合動作は保障されません。


Operator []=

指定した要素に書き込みます。

Sub Operator[]= (n As Long, c As Char)

n文字目に文字cを書き込みます。範囲外の場合動作は保障されません。


Contains

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

Const Function Contains(text As *Char) As Boolean
text
検索する文字列を指定します。
戻り値
CharsからlpszTextの文字列が見つかった場合、Trueを返します。見つからなかった場合、Falseを返します。また、textが空の文字列だった場合、常にTrueが返ります。


IndexOf

指定した文字列が最初に見つかった位置を返します。検索は、指定した位置から指定した文字数までとなります。

Const Function IndexOf(lpszText As *Char) As Long
Const Function IndexOf(lpszText As *Char, startIndex As Long) As Long
Const Function IndexOf(lpszText As *Char, startIndex As Long, count As Long) As Long
lpszText
検索する文字列を指定します。
startIndex
検索を開始する位置を指定します。省略した場合、文字列の先頭から検索されます。
count
どこまでを検索するか、開始位置からの文字数で指定します。省略した場合、文字列の末尾まで検索されます。
戻り値
検索した文字列が見つかった場合、その位置が返ります。見つからなかった場合-1が返ります。また、lpszTextに空の文字を指定した場合、startIndexが返ります。

文字列の位置は0から始まります。


LastIndexOf

指定した文字列が最後に見つかった位置を返します。検索は、指定した位置から指定した文字数までとなります。

Const Function LastIndexOf(lpszText As *Char) As Long
Const Function LastIndexOf(lpszText As *Char, startIndex As Long) As Long
Const Function LastIndexOf(lpszText As *Char, startIndex As Long, count As Long) As Long
lpszText
検索する文字列を指定します。
startIndex
検索を開始する位置を指定します。省略した場合、文字列の末尾から検索されます。
count
どこまでを検索するか、開始位置からの文字数で指定します。省略した場合、文字列の先頭まで検索されます。
戻り値
検索した文字列が見つかった場合、その位置が返ります。見つからなかった場合-1が返ります。また、lpszTextに空の文字を指定した場合、startIndexが返ります。

文字列の位置は0から始まります。また、検索は開始位置から文字列の先頭に向かいます。


StartsWith

先頭の文字列が、指定した文字列と一致しているか調べます。

Function StartsWith(lpszText As *Char) As Boolean
lpszText
一致するか調べる文字列を指定します。
戻り値
Charsの先頭がlpszTextと一致している場合、Trueが返ります。一致していない場合、Falseが返ります。lpszTextに空の文字列を指定した場合、常にTrueが返ります。


EndsWith

末尾の文字列が、指定した文字列と一致しているか調べます

Const unction EndsWith(lpszText As *Char) As Boolean
lpszText
一致するか調べる文字列を指定します。
戻り値
Charsの末尾がlpszTextと一致している場合、Trueが返ります。一致していない場合、Falseが返ります。lpszTextに空の文字列を指定した場合、常にTrueが返ります。


SubString

指定した範囲の文字列を取得します。

Const Function SubString(startIndex As Long) As String
Const Function SubString(startIndex As Long, length As Long) As String
startIndex
開始位置を指定します。
length
取得する範囲を、文字列の長さでしていします。省略した場合、文字列の最後までになります。
戻り値
Charsの指定した範囲の文字列が、Stringオブジェクトで返ります。

文字列の位置は0から始まります。


ToLower

文字列を全て小文字に変換します。

Sub ToLower()

Charsの文字列が全て小文字に変換されます。


ToUpper

文字列を全て大文字に変換します。

Sub ToUpper()

Charsの文字列が全て大文字に変換されます。


IsNullOrEmpty

文字列が空またはNULLかを調べます。

Static Function IsNullOrEmpty(s As String) As Boolean
戻り値
sがNothingであるかs.Lengthが0ならばTrueが返ります。それ以外はFalseです。


備考

文字列の末尾には、従来のABの文字列やC/C++などと同様、常にヌル文字(Asc(Ex"\0")あるいは単に0)が付きます。Length > 0のとき、Chars[Length]は0です。この要素を読み取ることはできますが、書き込むことはできません。(範囲外としてエラーとなります)なお、文字列中にヌル文字が含まれても構いません。

※範囲外のエラーは未実装です。