https://dev.activebasic.com/dev_wiki/api.php?action=feedcontributions&user=220.40.186.17&feedformat=atom
AB開発Wiki - 利用者の投稿記録 [ja]
2024-03-29T10:12:34Z
利用者の投稿記録
MediaWiki 1.35.3
https://dev.activebasic.com/dev_wiki/index.php?title=String%E3%82%AF%E3%83%A9%E3%82%B9&diff=1728
Stringクラス
2007-05-05T12:10:52Z
<p>220.40.186.17: /* Assign */</p>
<hr />
<div>文字列を扱うクラスです。<br />
<br />
== クラスの機能 ==<br />
<br />
=== メンバ・プロパティ ===<br />
<br />
==== Chars ====<br />
Chars As *StrChar<br />
Stringが保持している文字列へのポインタです。これを通じて内容の読み取り・書き込みを行うことができます。<br />
<br />
==== Length ====<br />
Length As Long<br />
Stringが保持している文字列の長さを表しています。基本的に書き換えないでください。<br />
<br />
=== メソッド ===<br />
<br />
==== コンストラクタ ====<br />
Stringインスタンスを初期化します。<br />
Sub String()<br />
(デフォルトコンストラクタ)空文字列を作ります。<br />
<br />
Sub String(ByRef initStr As String)<br />
Sub String(initStr As PCSTR)<br />
Sub String(initStr As PCWSTR)<br />
Sub String(initStr As PCWSTR)<br />
Sub String(initStr As PCWSTR, length As Long)<br />
引数の対応する[[#Assgin|Assign]]を呼びます。<br />
<br />
Sub String(length As Long)<br />
String(length, 0)と等価です。<br />
<br />
Sub String(initChar As StrChar, length As Long)<br />
ReSize(length, initChar)を行います。<br />
<br />
==== デストラクタ ====<br />
Stringインスタンスの破壊時に呼ばれます。<br />
Sub ~String()<br />
文字列のメモリを解放します。<br />
<br />
==== 代入 ====<br />
Stringオブジェクトに文字列を割り当てます。<br />
Sub Operator =(ByRef text As String)<br />
Sub Operator =(text As *Byte)<br />
Sub Operator =(text As PCSTR)<br />
Sub Operator =(text As PCWSTR)<br />
Assign(text)と同じです。*Byteを引数に取るものは不要となり次第削除されます。<br />
<br />
==== Assign ====<br />
Stringオブジェクトに文字列を割り当てます。<br />
Sub Assign(text As PCSTR, textLength As Long)<br />
Sub Assign(text As PCWSTR, textLength As Long)<br />
Sub Assign(ByRef text As String)<br />
Sub Assign(text As PCSTR)<br />
Sub Assign(text As PCWSTR)<br />
textの内容をこのStringインスタンスへコピーします。<br />
* Stringを引数に取るものは、text.length文字コピーします。<br />
* PCSTR/PCWSTR単独を引数に取るものは、lstrlenA/W(text)文字コピーします。要素の文字型がStrCharと異なる場合は変換が行われます。<br />
* lengthを引数に取るものは、length文字分コピーします。要素の文字型がStrCharと異なる場合は変換が行われます。<br />
<br />
==== Swap ====<br />
文字列の内容を交換します。<br />
Sub Swap(ByRef x As String)<br />
; x<br />
: 交換先のインスタンスを指定します。<br />
<br />
==== ReSize ====<br />
文字列の大きさを変更します。<br />
Sub ReSize(length As Long)<br />
Sub ReSize(length As Long, c As StrChar)<br />
1番目の形式はReSize(length, 0)と等価です。文字列の長さをlengthにします。変更後の文字列の長さが変更前より長くなるときには、増えた要素の部分をcで初期化します。<br />
<br />
==== StrPtr ====<br />
文字列へのポインタを返します。<br />
Function StrPtr() As *StrChar<br />
Charsを返します。<br />
<br />
==== *StrChar変換演算子 ====<br />
文字列へのポインタを得ます。<br />
Function Operator () As *StrChar<br />
StrPtr()呼び出しと等価です。<br />
<br />
==== Insert ====<br />
文字列を挿入します。<br />
Const Function Insert(startIndex As Long, ByRef str As String) As String<br />
Const Function Insert(startIndex As Long, str As *StrChar) As String<br />
Const Function Insert(startIndex As Long, str As *StrChar, length As Long) As String<br />
startIndex文字目の後にlpszTextの内容を挿入した文字列を生成して返します。挿入される文字列の長さは次のようにしてなります。<br />
* 1番目の形式ではstr.Length<br />
* 2番目の形式ではlstrlen(str)<br />
* 3番目の形式ではlength<br />
<br />
==== Remove ====<br />
文字列を削除します。<br />
Const Function Remove(startIndex As Long) As String<br />
Const Function Remove(startIndex As Long, count As Long) As LString<br />
*1番目の形式では、startIndexで指定した位置から文字列末尾までを削除した文字列を生成して返します。<br />
*2番目の形式では、startIndexで指定した位置からcountで指定した数の文字列を削除した文字列を生成して返します。<br />
<br />
==== Replace ====<br />
文字列の置換を行います。<br />
Const Function Replace(oldChar As StrChar, newChar As StrChar) As String<br />
Const Function Replace(ByRef oldStr As String, ByRef newStr As String) As String<br />
Const Function Replace(oldStr As *StrChar, newStr As *StrChar) As String<br />
Const Function Replace(oldStr As *StrChar, oldLen As Long, newStr As *StrChar, newLen As Long) As String<br />
* 1番目の形式では、このStringインスタンス内の文字oldCharをnewCharに置き換えた文字列を生成して返します。<br />
* 2-4番目の形式では、このStringインスタンス内の文字列oldStrをnewStrに置き換えた文字列を生成して返します。oldStr/newStrの長さは、次のように決まります。<br />
** 2番目の形式では、oldStr.Length/newStr.Length。<br />
** 3番目の形式では、lstrlen(oldStr)/newStr(oldStr)。<br />
** 4番目の形式では、oldLen/newLen。<br />
<br />
===== 使用例 =====<br />
Dim s = "でてこいでてこいいいけのこい"<br />
Print s.Replace("こい", "いけ")<br />
出力<br />
でていけでていけいけのいけ<br />
<br />
==== Operator + ====<br />
文字列を連結します。<br />
Const Function Operator + (str As PCSTR) As String<br />
Const Function Operator + (str As PCWSTR) As String<br />
Const Function Operator + (ByRef str As String) As String<br />
Const Function Operator + (str As *Byte) As String<br />
このStringインスタンスとstrを連結した新しい文字列を返します。<br />
* 3番目の形式では、Concat(str, lstrlenA(str))と同じです<br />
* 3番目の形式では、Concat(str, lstrlenW(str))と同じです<br />
* 3番目の形式では、Concat(str, str.Length)と同じです。<br />
* 4番目の形式では、Concat(str As PCTSTR, lstrlen(str))と同じです。不要となり次第削除されます。<br />
<br />
==== Operator & ====<br />
文字列を連結します。<br />
Const Function Operator & (text As PCSTR) As String<br />
Const Function Operator & (text As PCWSTR) As String<br />
Const Function Operator & (ByRef objString As String) As String<br />
このStringインスタンスとstrを連結した新しい文字列を返します。<br />
* 3番目の形式では、Concat(str, lstrlenA(str))と同じです<br />
* 3番目の形式では、Concat(str, lstrlenW(str))と同じです<br />
* 3番目の形式では、Concat(str, str.Length)と同じです。<br />
<br />
==== Append ====<br />
Sub Append(text As *StrChar, textLength As Long)<br />
Sub Append(text As *StrChar)<br />
Sub Append(ByRef str As String)<br />
末尾に文字列を追加します<br />
<br />
==== Concat ====<br />
この文字列と連結した新しい文字列を作ります。<br />
Const Function Concat(str As *StrChar, length As Long) As String<br />
; str : この文字列と連結する文字列へのポインタを指定します。末尾にヌル文字が存在する必要はありません。<br />
; length : strが指す文字列の長さを指定します。<br />
; 戻り値 : 連結した文字列を返します。<br />
このStringインスタンス自身の内容が変更されることはありません。<br />
<br />
==== Operator [] ====<br />
要素を読み取ります。<br />
Const Function Operator[] (n As Long) As StrChar<br />
n文字目の文字を返します。範囲外の場合動作は保障されません。<br />
<br />
<br />
==== Operator []= ====<br />
指定した要素に書き込みます。<br />
Sub Operator[]= (n As Long, c As StrChar)<br />
n文字目に文字cを書き込みます。範囲外の場合動作は保障されません。<br />
<br />
<br />
==== Contains ====<br />
指定した文字列を検索します。<br />
Const Function Contains(text As *StrChar) As Boolean<br />
;text<br />
:検索する文字列を指定します。<br />
;戻り値<br />
:CharsからlpszTextの文字列が見つかった場合、Trueを返します。見つからなかった場合、Falseを返します。また、textが空の文字列だった場合、常にTrueが返ります。<br />
<br />
<br />
==== IndexOf ====<br />
指定した文字列が最初に見つかった位置を返します。検索は、指定した位置から指定した文字数までとなります。<br />
Const Function IndexOf(lpszText As *StrChar) As Long<br />
Const Function IndexOf(lpszText As *StrChar, startIndex As Long) As Long<br />
Const Function IndexOf(lpszText As *StrChar, startIndex As Long, count As Long) As Long<br />
;lpszText<br />
:検索する文字列を指定します。<br />
;startIndex<br />
:検索を開始する位置を指定します。省略した場合、文字列の先頭から検索されます。<br />
;count<br />
:どこまでを検索するか、開始位置からの文字数で指定します。省略した場合、文字列の末尾まで検索されます。<br />
;戻り値<br />
:検索した文字列が見つかった場合、その位置が返ります。見つからなかった場合-1が返ります。また、lpszTextに空の文字を指定した場合、startIndexが返ります。<br />
文字列の位置は0から始まります。<br />
<br />
<br />
==== LastIndexOf ====<br />
指定した文字列が最後に見つかった位置を返します。検索は、指定した位置から指定した文字数までとなります。<br />
Const Function LastIndexOf(lpszText As *StrChar) As Long<br />
Const Function LastIndexOf(lpszText As *StrChar, startIndex As Long) As Long<br />
Const Function LastIndexOf(lpszText As *StrChar, startIndex As Long, count As Long) As Long<br />
;lpszText<br />
:検索する文字列を指定します。<br />
;startIndex<br />
:検索を開始する位置を指定します。省略した場合、文字列の末尾から検索されます。<br />
;count<br />
:どこまでを検索するか、開始位置からの文字数で指定します。省略した場合、文字列の先頭まで検索されます。<br />
;戻り値<br />
:検索した文字列が見つかった場合、その位置が返ります。見つからなかった場合-1が返ります。また、lpszTextに空の文字を指定した場合、startIndexが返ります。<br />
文字列の位置は0から始まります。また、検索は開始位置から文字列の先頭に向かいます。<br />
<br />
<br />
==== StartsWith ====<br />
先頭の文字列が、指定した文字列と一致しているか調べます。<br />
Function StartsWith(lpszText As *StrChar) As Boolean<br />
;lpszText<br />
:一致するか調べる文字列を指定します。<br />
;戻り値<br />
:Charsの先頭がlpszTextと一致している場合、Trueが返ります。一致していない場合、Falseが返ります。lpszTextに空の文字列を指定した場合、常にTrueが返ります。<br />
<br />
<br />
==== EndsWith ====<br />
末尾の文字列が、指定した文字列と一致しているか調べます<br />
Const unction EndsWith(lpszText As *StrChar) As Boolean<br />
;lpszText<br />
:一致するか調べる文字列を指定します。<br />
;戻り値<br />
:Charsの末尾がlpszTextと一致している場合、Trueが返ります。一致していない場合、Falseが返ります。lpszTextに空の文字列を指定した場合、常にTrueが返ります。<br />
<br />
<br />
==== SubString ====<br />
指定した範囲の文字列を取得します。<br />
Const Function SubString(startIndex As Long) As String<br />
Const Function SubString(startIndex As Long, length As Long) As String<br />
;startIndex<br />
:開始位置を指定します。<br />
;length<br />
:取得する範囲を、文字列の長さでしていします。省略した場合、文字列の最後までになります。<br />
;戻り値<br />
:Charsの指定した範囲の文字列が、Stringオブジェクトで返ります。<br />
文字列の位置は0から始まります。<br />
<br />
<br />
==== ToLower ====<br />
文字列を全て小文字に変換します。<br />
Const Function ToLower() As String<br />
; 戻り値<br />
: Charsの文字列の全て小文字に変換した文字列。<br />
現在のところ変換の対象になるのはアルファベットのみです。<br />
<br />
==== ToUpper ====<br />
文字列を全て大文字に変換します。<br />
Const Function ToUpper() As String<br />
; 戻り値<br />
: Charsの文字列の全て大文字に変換した文字列。<br />
現在のところ変換の対象になるのはアルファベットのみです。<br />
<br />
==== IsNullOrEmpty ====<br />
文字列が空またはNULLかを調べます。<br />
Static Function IsNullOrEmpty(s As String) As Boolean<br />
;戻り値<br />
:sがNothingであるかs.Lengthが0ならばTrueが返ります。それ以外はFalseです。<br />
<br />
== 備考 ==<br />
文字列の末尾には、従来のABの文字列やC/C++などと同様、常にヌル文字(Asc(Ex"\0")あるいは単に0)が付きます。Length > 0のとき、Chars[Length]は0です。この要素を読み取ることはできますが、書き込むことはできません。(範囲外としてエラーとなります)なお、文字列中にヌル文字が含まれても構いません。<br />
<br />
※範囲外のエラーは未実装です。<br />
<br />
=== StrChar 型 ===<br />
StringはStrChar型の配列として文字を保持します。StrChar型は場合によってマルチバイト文字 (日本語環境のWindowsではShift_JIS)かワイド文字 (UTF-16LE)のどちらかに切り替わります。<br />
; UNICODEが定義されている(プロジェクトオプションで指定されている)場合<br />
: 常にワイド文字になります。<br />
; UNICODEが定義されておらず、__STRING_IS_NOT_ALWAYS_UNICODEも定義されていない場合<br />
: ワイド文字になります。このとき__STRING_UNICODE_WINDOWS_ANSIが定義されます。<br />
; UNICODEが定義されておらず__STRING_IS_NOT_ALWAYS_UNICODEが定義されている場合<br />
: マルチバイト文字になります。このとき__STRING_IS_NOT_UNICODEが定義されます。<br />
__STRING_UNICODE_WINDOWS_ANSIが定義されている状態では、Char/TCHARとStrCharは異なる大きさになることに注意してください。<br />
<br />
[[Category:System 名前空間]]</div>
220.40.186.17