WOLF RPGエディター(ウディタ)/イベントコマンド【サイトトップへ戻る】
■【使用例】文字列操作
(更新:2023/02/22)


イベントコマンド【文字列操作】に関する使用例を紹介します。


ショートカット
■【使用例】入力された文字が全て数字であるかどうかを調べる
「=」「に↓から1文字切り出し」「から↓の文字を全消去」「から以下の文字列を置換」「キーボード入力」
■【使用例】使用中の敵キャラ用の画像ファイルの一覧を出力
「=」「+=」「をファイル↓に出力」「に↓フォルダのファイルリスト取得」「<の指定文字以降を切り出し>」
■【使用例】文字列の並び順を逆にする
「=」「に↓から1文字切り出し」



以下は【文字列操作】を使った別のページにある使用例です。
クリックするとYADOT-WOLF内の別ページが開きます。

別ページの使用例
■[キーボード入力]を使ってパスワードを入力
「キーボード入力」
■キーボード入力を強制終了させる
「キーボード入力」



【文字列操作】の基本説明は別ページに記載しています。
【文字列変数の基本説明を開く】


  
「=」「に↓から1文字切り出し」「から↓の文字を全消去」
「から以下の文字列を置換」「キーボード入力」
■【使用例】入力された文字が全て数字であるかどうかを調べる

【キーボード入力】で入力された文字が全て数字であるかどうかを調べる処理を設定します。

プレイヤーに数字を入力してもらいたい時に数字以外の文字を入力した時に、
「数字のみを入力してください」と警告を出す時に使えます。



処理としては、入力された文字列を別の文字列変数に保存し、
から↓の文字を全消去」を使って、数字のみを消去し…
何も文字が無い → 全て数字である
何か文字がある → 全て数字ではない
と判断します。

文頭に「-」(マイナス)があり、それ以降が全て数字である場合は「マイナスの数値」として処理されます。

全角で入力した数字は半角の数字に変換します。



【イベントコード表示】【コモン出力ファイル】

■コモンイベント「数字入力」

起動条件:呼び出しのみ

入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 桁数 9  
返す値 入力数値 コモンセルフ10[数]:入力数値

■変数操作: CSelf0[桁数] 上限= 9 + 0
■文字列操作:CSelf5[入力文字] = キーボード入力 CSelf0[桁数]文字 [キャンセル可]
■変数操作: CSelf10[入力数値] = 0 + 0
■変数操作: CSelf11[±1] = 1 + 0
■条件分岐(文字): 【1】 CSelf5[入力文字]が "" と同じ
         【2】 CSelf5[入力文字]が "-" が先頭にある
         【3】 CSelf5[入力文字]が "−" が先頭にある
-◇分岐: 【1】 [ CSelf5[入力文字] "" と同じ ]の場合↓
|■デバッグ文:入力キャンセル
|■イベント処理中断
|■
-◇分岐: 【2】 [ CSelf5[入力文字] "-" が先頭にある ]の場合↓
|■変数操作: CSelf11[±1] = -1 + 0
|■文字列操作:CSelf6[数字確認] =<1文字切出> CSelf5[入力文字]
|■
-◇分岐: 【3】 [ CSelf5[入力文字] "−" が先頭にある ]の場合↓
|■変数操作: CSelf11[±1] = -1 + 0
|■文字列操作:CSelf6[数字確認] =<1文字切出> CSelf5[入力文字]
|■
◇分岐終了◇
■文字列操作:CSelf5[入力文字] =<から文字列を置換> "0" → "0"
■文字列操作:CSelf5[入力文字] =<から文字列を置換> "1" → "1"
■文字列操作:CSelf5[入力文字] =<から文字列を置換> "2" → "2"
■文字列操作:CSelf5[入力文字] =<から文字列を置換> "3" → "3"
■文字列操作:CSelf5[入力文字] =<から文字列を置換> "4" → "4"
■文字列操作:CSelf5[入力文字] =<から文字列を置換> "5" → "5"
■文字列操作:CSelf5[入力文字] =<から文字列を置換> "6" → "6"
■文字列操作:CSelf5[入力文字] =<から文字列を置換> "7" → "7"
■文字列操作:CSelf5[入力文字] =<から文字列を置換> "8" → "8"
■文字列操作:CSelf5[入力文字] =<から文字列を置換> "9" → "9"
■文字列操作:CSelf6[数字確認] = CSelf5[入力文字]
■文字列操作:CSelf6[数字確認] =<から→の文字列を全消去> "0"
■文字列操作:CSelf6[数字確認] =<から→の文字列を全消去> "1"
■文字列操作:CSelf6[数字確認] =<から→の文字列を全消去> "2"
■文字列操作:CSelf6[数字確認] =<から→の文字列を全消去> "3"
■文字列操作:CSelf6[数字確認] =<から→の文字列を全消去> "4"
■文字列操作:CSelf6[数字確認] =<から→の文字列を全消去> "5"
■文字列操作:CSelf6[数字確認] =<から→の文字列を全消去> "6"
■文字列操作:CSelf6[数字確認] =<から→の文字列を全消去> "7"
■文字列操作:CSelf6[数字確認] =<から→の文字列を全消去> "8"
■文字列操作:CSelf6[数字確認] =<から→の文字列を全消去> "9"
■条件分岐(文字): 【1】 CSelf6[数字確認]が "" と同じ
-◇分岐: 【1】 [ CSelf6[数字確認] "" と同じ ]の場合↓
|■変数操作: CSelf10[入力数値] = CSelf5[入力文字] * CSelf11[±1]
|■
-◇上記以外
|■デバッグ文:数字以外を入力
|■イベント処理中断
|■
◇分岐終了◇


▲トップへ戻る▲


  
「=」「+=」「をファイル↓に出力」「に↓フォルダのファイルリスト取得」「<の指定文字以降を切り出し>」
■【使用例】使用中の敵キャラ用の画像ファイルの一覧を出力

ユーザーDB[9:敵キャラ個体データ]項目[1:画像ファイル]に設定されているファイル名を出力し、
一覧にしてテキストファイル「敵画像使用中リスト」で出力します。

ゲーム作品を公開する前に未使用の画像ファイルを削除する時に役立つでしょう。

応用次第では、アニメーション用の使用中の画像ファイルの一覧なども出力できます。



【イベントコード表示】【コモン出力ファイル】

■コモンイベント「敵画像使用中一覧出力」

起動条件:呼び出しのみ

■■文字列操作:CSelf5[使用中一覧] = ""
■DB読込(ユーザ): CSelf10[データ数] = ユーザDB[タイプ敵キャラ個体データ(9)のデータ数]
■変数操作: CSelf11[データID] = 0 + 0
■回数付きループ [ CSelf10[データ数] ]回
|■DB読込(ユーザ): CSelf6[設定ファイル名] =
         ユーザDB[ 敵キャラ個体データ : CSelf11[データID] : 1 ] (9 : - : 画像ファイル)
|■条件分岐(文字): 【1】 CSelf6[設定ファイル名]が "" 以外
|-◇分岐: 【1】 [ CSelf6[設定ファイル名] "" 以外 ]の場合↓
| |■条件分岐(文字): 【1】 CSelf6[設定ファイル名]が "/" を含む
| |-◇分岐: 【1】 [ CSelf6[設定ファイル名] "/" を含む ]の場合↓
| | |■文字列操作:CSelf6[設定ファイル名] =<の指定文字以降を切り出し> "/"
| | |■
| |◇分岐終了◇
| |■文字列操作:CSelf5[使用中一覧] += "\cself[6]\n"
| |■
|◇分岐終了◇
|■変数操作: CSelf11[データID] += 1 + 0
|■
◇ループここまで◇◇
■文字列操作:CSelf5[使用中一覧] =<を→のファイルに出力> "敵画像使用中リスト.txt"
■デバッグ文:\cself[5]


▼出力されたテキストファイル




さらにファイル名順に並び替える場合は以下のように設定してください。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント「敵画像使用中一覧出力」

起動条件:呼び出しのみ

■文字列操作:CSelf5[使用中一覧] = ""
■DB読込(ユーザ): CSelf10[データ数] = ユーザDB[タイプ敵キャラ個体データ(9)のデータ数]
■変数操作: CSelf11[データID] = 0 + 0
■回数付きループ [ CSelf10[データ数] ]回
|■DB読込(ユーザ): CSelf6[設定ファイル名] =
         ユーザDB[ 敵キャラ個体データ : CSelf11[データID] : 1 ] (9 : - : 画像ファイル)
|■条件分岐(文字): 【1】 CSelf6[設定ファイル名]が "" 以外
|-◇分岐: 【1】 [ CSelf6[設定ファイル名] "" 以外 ]の場合↓
| |■条件分岐(文字): 【1】 CSelf6[設定ファイル名]が "/" を含む
| |-◇分岐: 【1】 [ CSelf6[設定ファイル名] "/" を含む ]の場合↓
| | |■文字列操作:CSelf6[設定ファイル名] =<の指定文字以降を切り出し> "/"
| | |■
| |◇分岐終了◇
| |■文字列操作:CSelf5[使用中一覧] += "<\cself[6]>\n"
| |■
|◇分岐終了◇
|■変数操作: CSelf11[データID] += 1 + 0
|■
◇ループここまで◇◇
■文字列操作:CSelf7[並び替え後一覧] = ""
■文字列操作:CSelf8[ファイル名リスト] =<→のフォルダのファイルリスト取得> "Data/EnemyGraphic/"
■ループ開始
|■条件分岐(文字): 【1】 CSelf8[ファイル名リスト]が "" と同じ
|-◇分岐: 【1】 [ CSelf8[ファイル名リスト] "" と同じ ]の場合↓
| |■ループ中断
| |■
|◇分岐終了◇
|■文字列操作:CSelf6[設定ファイル名] =<上1行切出> CSelf8[ファイル名リスト]
|■条件分岐(文字): 【1】 CSelf5[使用中一覧]が "<\cself[6]>" を含む
|-◇分岐: 【1】 [ CSelf5[使用中一覧] "<\cself[6]>" を含む ]の場合↓
| |■文字列操作:CSelf7[並び替え後一覧] += "\cself[6]\n"
| |■
|◇分岐終了◇
|■
◇ループここまで◇◇
■文字列操作:CSelf7[並び替え後一覧] =<を→のファイルに出力> "敵画像使用中リスト.txt"
■デバッグ文:\cself[7]


並び替え前 並び替え後


▲トップへ戻る▲


  
「=」「に↓から1文字切り出し」
■【使用例】文字列の並び順を逆にする

「あいうえお」と並んでいる文字列を「おえういあ」と逆に並び替えます。



【イベントコード表示】

■文字列操作:S1[元の文章] = "あいうえお"
■文字列操作:S2[逆文章] = ""
■ループ開始
|■条件分岐(文字): 【1】 S1[元の文章]が "" と同じ
|-◇分岐: 【1】 [ S1[元の文章] "" と同じ ]の場合↓
| |■ループ中断
| |■
|◇分岐終了◇
|■文字列操作:S3[1文字切り出し用] =<1文字切出> S1[元の文章]
|■文字列操作:S2[逆文章] = "\s[3]\s[2]"
|■
◇ループここまで◇◇
■文章:\s[2]

▼処理結果




複数の行がある場合は、以下のように設定してください。

【イベントコード表示】

■文字列操作:S1[元の文章] = "あいうえお\nかきくけこ\nさしすせそ"
■文字列操作:S2[逆文章] = ""
■ループ開始
|■条件分岐(文字): 【1】 S1[元の文章]が "" と同じ
|-◇分岐: 【1】 [ S1[元の文章] "" と同じ ]の場合↓
| |■ループ中断
| |■
|◇分岐終了◇
|■文字列操作:S3[1文字切り出し用] =<1文字切出> S1[元の文章]
|■文字列操作:S2[逆文章] = "\s[3]\s[2]"
|■
◇ループここまで◇◇
■条件分岐(文字): 【1】 S2[逆文章]が "\n" を含む
-◇分岐: 【1】 [ S2[逆文章] "\n" を含む ]の場合↓
|■文字列操作:S1[元の文章] = S2[逆文章]
|■文字列操作:S2[逆文章] = ""
|■ループ開始
| |■条件分岐(文字): 【1】 S1[元の文章]が "" と同じ
| |-◇分岐: 【1】 [ S1[元の文章] "" と同じ ]の場合↓
| | |■ループ中断
| | |■
| |◇分岐終了◇
| |■文字列操作:S3[1文字切り出し用] =<上1行切出> S1[元の文章]
| |■文字列操作:S2[逆文章] = "\s[3]\n\s[2]"
| |■
|◇ループここまで◇◇
|■
◇分岐終了◇
■文章:\s[2]

▼処理結果




なお、反転文字で表示したい時には、文字をピクチャ(拡大率横[-100])で表示してください。

【イベントコード表示】

■ピクチャ表示:100000 [右上]文字列[あいうえお] X:Sys1:メッセージウィンドウ X座標
       Y:Sys2:メッセージウィンドウ Y座標 / 0(9)フレーム / パターン 1 / 透 255 /
       通常 / 角 0 / 拡 -100x100% / カラー R[100] G[100] B[100]
■文章: <空白の文字を設定
■ピクチャ消去:100000 / 0(0)フレーム

▼処理結果



▲トップへ戻る▲



◎関連ページ

◆「イベントコマンド」って何?
┣◆文章の表示
┃┗◆特殊文字
┣◆選択肢
┃┗◆【使用例】選択肢
┣◆変数操作
┃┗◆演算子について
┣◆DB操作
┣◆文字列操作
┃┗◆【使用例】文字列操作
┣◆変数操作+
┃┣◆「X座標・Y座標」と「画面X座標・画面Y座標」の違い
┃┣◆【使用例】変数操作+の「キャラ」と「位置」
┃┗◆【使用例】変数操作+の「ピクチャ」と「その他」
┣◆条件(変数)
┣◆条件(文字列)
┣◆キー入力
┃┗◆【使用例】キー入力
┣◆ピクチャ
┃┗◆表示形式(通常・加算・減算・乗算)について
┣◆エフェクト
┃┗◆【使用例】エフェクト
┣◆サウンド
┣◆セーブ・ロード操作
┣◆パーティ画像
┣◆チップ処理
┃┗◆【使用例】チップ処理
┣◆場所移動
┣◆イベント制御
┃┣◆キャラクターの動作指定
┃┗◆【使用例】イベント制御
┣◆コモンイベント
┣◆ダウンロード
┗◆プロ版機能

YADOT-WOLFトップ  気紛れな空間へ戻る  メール