トップへ戻る

Autoitプログラミング

文字列処理

ほとんどのプログラミング言語でも同じように、AutoIt で文字列を定義する場合、ダブルクォートで文字列を囲みます。

 

AutoIt は、シングルクォートにも対応しています。

 

次の例を見てみましょう。

 

Dim $var = 'こんにちは'

 

Dim $var = "こんにちは"

 

 

 

上記の2つのコードの意味はまったく同じものですが、見易くするため、普段はダブルクォートの使用をおすすめします。

 

文字列中にダブルクォートまたはシングルクォートを表示したい場合、次のようになります。

 

Dim $var = '"こんにちは'
MsgBox(0, '', $var)

 

Dim $var = "'こんにちは"
MsgBox(0, '', $var)

 

 

 

では、文字列中にダブルクォートとシングルクォート両方表示したい場合はどう書けばいいか?

 

次をご覧ください。

 

Dim $var = '"こんにちは ' & "'こんばんは"
MsgBox(0, '', $var)

 

 

 

 

演算子「&」を使用して2つの文字列を連結してあげれば、ダブルクォートとシングルクォート どちらも表示することができます。

 

これは基本なので必ず覚えておきましょう。

文字列の長さ

文字列の長さを取得するには、StringLen 関数を使用します。

 

この関数で注意することは、1つの文字は長さ「1」になることです。

 

この文字は英数字、ひらがな、カタカナ、スペース、記号にかかわらず、1つの文字の長さはすべて「1」と認識します。

 

※半角の英数字や記号、半角カタカナなどは1文字1バイトたが、

 

ひらがなや全角カタカナ、漢字などは1文字2バイトになることを覚えておきましょう。

 

文字列のバイト数を取得する方法は、この章の「変数変換」で紹介します。

 

Dim $var = "こんにちは hello! 333"

 

$Len = StringLen($var)

 

MsgBox(0, " 文字列の長さ ", $Len)

 

 

 

 

文字列には、ひらがな5文字、英字5文字、記号1文字、数字3文字、スペース2つが含まれていて、

 

結果は16になりますね。

文字列の部分取得

文字列を扱う中で、一番左側の何文字のみ、一番右側の何文字のみ、または真ん中の一部分のみが必要になることがあります。

 

さらに左右の不要な文字を削除する必要が出てくることもあります。

 

次のサンプルを参考にしてください。

 

Dim $var = "こんにちはAuto yamadaです"

 

 

;StringLeft 文字列の左端から指定した文字数分を返します

 

MsgBox(0, "", StringLeft($var, 3)) ; 左端から3文字のみを取得

 

 

;StringRight 文字列の右端から指定した文字数分を返します

 

MsgBox(0, "", StringRight($var, 3)) ; 右端から3文字のみを取得

 

 

;StringMid 文字列から取得を開始する文字の位置を指定し、指定した文字数分を取得します

 

MsgBox(0, "", StringMid($var, 3, 5)) ; 文字列の3文字目から5つの文字を取得

 

 

;文字列の左端から指定文字数分だけ取り除いた文字列を返します

 

MsgBox(0, "", StringTrimLeft($var, 3)) ; 文字列の左端から3文字削除します

 

 

;文字列の右端から指定文字数分だけ取り除いた文字列を返します

 

MsgBox(0, "", StringTrimRight($var, 3)) ; 文字列の右端から3文字削除します