Releases: YUZRANIUM/02_myarray
myarray
マイ・アレイ ![GitHub release (latest by date including pre-releases)](https://camo.githubusercontent.com/6c62605531c42a0c457c651752472e9614932883ccb7a7db95544221580df968/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f59555a52414e49554d2f30325f6d7961727261793f696e636c7564655f70726572656c6561736573267374796c653d666c61742d737175617265)
多次元配列変数をなんやかんやする、なんてことないモジュール
不具合報告や要望等は HSPTV!掲示板 で頂けると幸いです。
今後の予定
-
ctlarray
命令をはじめとした制御系命令の調整 -
bisrch
命令,MDABiSrch
命令の文字列型対応 - 多次元配列変数のソート命令
- 辞書的なもの
- モジュール型変数への対応
- 多次元配列の結合と分離 (※半分妄想)
[ ] 三角関数、数列機能の試作・追加※Auniary
命令新規追加に伴って廃案
特徴(Feature)
- 標準命令のみで動作し、変数名、ラベル名、モジュール名の表示等が可能.
- 1次元、2次元、3次元、4次元、全ての次元に対応.
- ラベル型、文字列型、実数型、整数型に対応.
- 配列の途中から値の書き出し、連続代入、配列コピー、型変換、次元の拡張・収縮、配列演算が可能.
- 多次元配列を1次元化(平坦化)し、1次元配列のように扱う.
情報を書き出す priarray
多次元配列変数の情報を複数行文字列として書き出す priarray
命令 (由来 : print array)
// string_var : 情報を受け取る文字列型変数
// ary : 多次元配列変数
// coment : コメント(省略可)
priarray string_var, ary, coment
表示内容 \ 型 | label | str | double | int | struct | COM object |
---|---|---|---|---|---|---|
変数名 | O | O | O | O | O | O |
型 | O | O | O | O | O | O |
各次元要素数 | O | O | O | O | O | O |
使用時の行数 | O | O | O | O | O | O |
値の書出し | O | O | O | O | X | X |
デバッグウィンドウでも多次元配列変数の中身をテキストに出力できますが、この命令を使えばより柔軟なデバッグ作業、確認作業が可能になるはずです.
※あくまでも、デバッグ用、確認用としてお使い下さい.
連続代入を行う setarray
多次元配列変数に連続代入を行う setarray
命令 (由来 : setting array)
// ary : 代入先の配列変数 (dim系での初期化 必須)
// in_val : 代入したい値
// idx_flag : indexフラグ
// idx : 増減値
setarray ary, in_val, idx_flag, idx
動作内容 \ 型 | label | str | double | int |
---|---|---|---|---|
連続代入 | --- | O | O | O |
増減機能 | X | O | O | O |
-
文字列型、実数型、整数型の多次元配列変数への連続代入が可能.
-
実数型、整数型では代入時に増減値を指定することで値を変化させることが可能.
-
文字列型の場合はインデックス付与として機能します.
検証用の多次元配列変数を簡単に準備できます.
※ 既存の配列や複数行文字列を配列変数に代入したい場合は cnvarray
命令をご利用下さい
※ ラベル型配列を生成したい場合は labarray
命令をご使用ください
値を書き出す outarray
多次元配列変数の値を複数行文字列として書き出す outarray
命令 (由来 : output array)
// string_var : 配列変数の中身を受け取る文字列型変数
// ary : 配列変数
// label_flag : ラベルモード
outarray string_var, ary, label_flag
-
priarray
命令とは異なり、値のみを複数行文字列として書き出す -
ラベル型、文字列型、実数型、整数型に対応
-
ラベル型を書き出す際に、ラベルモードのフラグを1にすると
return
が追加される
(※stop
は追加されません)
変換する cnvarray
あらゆるものを別の多次元配列に変換する cnvarray
命令 (由来 : convert array)
// ary_name : 変数名
// in_val : 読み込む 複数行文字列型変数 または 多次元配列変数
// type : 変換後の型を表す数値 (= 2, 2:文字列型 / 3:実数型 / 4:整数型)
// d1,d2,d3,d4 : 変換後の各次元要素数 (= 0)
cnvarray ary_name, in_val, type, d1, d2, d3, d4
-
複数行文字列、多次元配列変数 を 別の多次元配列変数 に変換
-
変換時に変数の型、及び各次元要素数を指定できる
-
内部で
dimtype ary_name, type, d1, d2, d3, d4
としているのでary_name
を初期化する必要はない -
in_val
が多次元配列変数の場合のみ d1 以降すべて省略できる.
その際はin_val
の各次元要素数が、そのままary_name
の要素数となる ( ---> 配列変数コピー機能) -
outarray
命令と組み合わせることで、値と変数名はそのままに、次元の拡張・縮小、型変換を行うことができる
sdim hogehoge, 64, 10, 2
:
sdim str_tmp, 1024
outarray str_tmp, hogehoge // hogehoge のすべての値を複数行文字列として str_tmp に書き出し
cnvarray hogehoge, str_tmp, 4, 10, 5, 3 // hogehoge を整数型、3次元配列(10, 5, 3) に変換
ラベルを量産する labarray
ラベルを量産する labarray
命令 (由来 : label array)
// string_var : 書き出し先の文字列型変数
// ary : 書き出す文字列型配列変数
// in_val : 代入値またはそれを格納した変数
// index : 増減値
labarray string_var, ary, in_val, index
計算する calc_ary
多次元配列どうしの計算を行う calc_ary
命令 (由来 : calculate array)
// ans_ary : 計算結果を受け取る変数名
// ary1, ary2 : 変数名
// calc_type : 演算タイプ
// error_stop : 0除算フラグ (= 0, 0:停止しない / 1:停止する)
calc_ary ans_ary, ary1, ary2, calc_type, error_stop
- 加算( + )、減算( - )、乗算( * )、除算( / )、剰余( \ )、実数指定での割増・割引計算、百分率指定での割増・割引計算が可能
- 計算の種類はカスタム可能
- HSP3の言語仕様に合わせて
ans_ary
はary1
の変数型と各次元要素数で初期化 - 文字列型、実数型、整数型のみ対応
その他
- 配列情報取得
dim_info
命令 - 多次元配列を1次元化した要素数を返す
dimlinec
関数 - 1次元化した要素数から元の各次元要素数を返す
linedim
命令
- 配列動作制御
ctlarray
命令 - 制御フィールド開始
ctlarray_start
命令 - 制御フィールド終了
ctlarray_end
命令 - 制御の除外
ctlexcld
命令
- 多次元配列の線形探索
MDALiSrch
関数 - 多次元配列の二分木探索
MDABiSrch
命令 - 多次元配列のクイックソート
MDAQSort
,MFCQSort
命令
- 多次元配列を1次元配列として扱う
uniary
,uniary_
関数,Auniary
命令 - 複数の多次元配列を オフセットで まとめて扱う
union_d
関数 - 複数の多次元配列を 値で まとめて扱う
union
関数 union
,union_d
,union4
,union4d
関数の書式設定を行うunifrmt
命令
- 文字列をASCIIコードに変換する
str2ASCI
命令 - ASCIIコードを文字列に変換する
ASCI2str
関数 - 文字列をASCIIコードで大小比較
ASCIcomp
関数
試作中
- 4つの多次元配列をまとめて扱う
union4
,union4d
関数
導入方法(Introduction)
各モジュールの説明
-
myarray_core モジュール (02_myarray_core.hsp)
ほぼすべての命令・関数の中核を担うイテレータなどを内部命令化・関数化し、定義する本プロジェクト最重要モジュール。
linedim命令、dimlinec関数やその他内部命令・関数を含む6つの命令・関数郡からなる。 -
myarray_list モジュール (02_myarray_list.hsp)
このモジュールは主に多次元配列を1次元配列として扱うものや、配列をリストのように扱うといったデータ管理用途の機能を集めたものです。
未だ開発途中で実験的なのもでもあり、今後の開発やアップデートの中心になリます。 -
myarray_srch モジュール (02_myarray_srch.hsp)
ソートや線形探索・二分木探索など、ユーザーに提供する一部機能の前処理を行う、local指定を含む7つの命令・関数郡からなるモジュール。
MDALiSrch関数、MDABiSrch命令等を含む。 -
myarray モジュール (02_myarray.hsp)
これまで通り、ユーザー提供機能をまとめたモジュール。
ラベル型変数、モジュール型変数へのアクセスを行うポインタ関連、配列制御関連の内部命令、pri, set, out, cnv, labarray命令の各内部命令とマクロ、配列演算命令など。
.
├─ 02_myarray_core.hsp
├─ 02_myarray_list.hsp
├─ 02_myarray_srch.hsp
├─ 02_myarray.hsp
│
├── 02_myarray
│ ├── 02_myarray_list.hs
│ ├── 02_myarray_srch.hs
│ ├── 02_myarray.hs
│ ├── 02_1_PriSetOut.hsp
│ ├── 02_2_CnvOut.hsp
│ ├── 02_3_Cnv.hsp
│ ├── 02_4_Lab.hsp
│ ├── 02_5_Ctl.hsp
│ ├── 02_6_Calc.hsp
│ ├── 02_7_Dict_test.hsp
│ └── 02_myarray.txt
│
├── README.md
└── License.txt
- 02_myarray_core.hsp
- 02_myarray_list.hsp
- 02_myarray_srch.hsp
- 02_myarray.hsp
上記の4つのファイルをユーザースクリプトのディレクトリか、HSP のインストールディレクトリ下の commonフォルダ内において、02_myarray.hsp
をインクルードしてください。
- 02_myarrayフォルダ
02_myarrayフォルダをHSPのインストールディレクトリ下にある doclibフォルダ内に02_myarrayフォルダごと 置いて下さい。
サンプルファイルもそのままで構いません。
例)
├─ hsp37
├─ common
│ ├─
│ ├─ 02_myarray_core.hsp
│ ├─ 02_myarray_list.hsp
│ ├─ 02_myarray_srch.hsp
│ ├─ 02_myarray.hsp
│
├─ doclib
│ ├─ 02_myarrayフォルダ
; インクルードするのは 02_myarray.hsp ファイルだけ!!
#include "02_myarray.hsp"
必要環境(Environment)
- Windows10, 11
- HSP3.6以上
使用言語(Coding Language)
開発環境(Development environment)
- Windows11 Pro 22H2 x64
- Hot Soup Processor 3.7beta4
- Visual Studio Code ver 1.77.0
LICENSE
本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」)の複製を取得するすべての人に対し、ソフトウェアを無制限に扱うことを無償で許可します。
これには、ソフトウェアの複製を使用、複写、変更、結合、掲載、頒布、サブライセンス、および/または販売する権利、およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます。
ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。
作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求、損害、その他の義務について何らの責任も負わないものとします。
謝 辞(SPECIAL THANKS)
- HSPTV!掲示板の皆様
このモジュールは HSPTV!掲示板 の皆様によって支えられております。
この場を借りて感謝申し上げます。誠に有難うございます。
項 目 | 掲示板情報 |
---|---|
Kind | 宣 伝 |
Date | 2023/01/16 |
Person | Yuzranium |
Pontent | 多次元配列をなんやかんやする |
項 目 | 掲示板情報 (過去ログ) |
---|---|
Date | 2022/11/26 |
Pontent | 多次元配列変数を複数行文字列に |
更新履歴(Change Log)
ver 0.28.3
2023/04/01
新規追加命令・関数
名称 | 種別 | 概要 |
---|---|---|
dim_info |
命令 | 配列情報を取得する (※1) |
uniary_ |
関数 | uniary をループ内の使用に最適化 |
Auniary |
命令 | ループ内で連続代入 |
MDAQSort |
命令 | 多次元配列クイックソート |
MFCQSort |
命令 | 多次元配列クイックソート |
修正・変更
※1
ループ内の使用に最適化したuniary_
, Auniary
関数の新規追加に伴い、内部命令(local
指定)だったdim_info
命令に修正を加え、一般公開命令とした
myarray
マイ・アレイ ![GitHub release (latest by date including pre-releases)](https://camo.githubusercontent.com/6c62605531c42a0c457c651752472e9614932883ccb7a7db95544221580df968/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f59555a52414e49554d2f30325f6d7961727261793f696e636c7564655f70726572656c6561736573267374796c653d666c61742d737175617265)
多次元配列変数をなんやかんやする、なんてことないモジュール
不具合報告や要望等は HSPTV!掲示板 で頂けると幸いです。
今後の予定
- 辞書的なもの
-
bisrch
命令,MDABiSrch
命令の文字列型対応 -
ctlarray
命令をはじめとした制御系命令の調整 - モジュール型変数への対応
- 多次元配列の結合と分離 (※半分妄想)
特徴(Feature)
- 標準命令のみで動作し、変数名、ラベル名、モジュール名の表示等が可能.
- 1次元、2次元、3次元、4次元、全ての次元に対応.
- ラベル型、文字列型、実数型、整数型に対応.
- 配列の途中から値の書き出し、連続代入、配列コピー、型変換、次元の拡張・収縮、配列演算が可能.
- 多次元配列を1次元化(平坦化)し、1次元配列のように扱う.
情報を書き出す priarray
多次元配列変数の情報を複数行文字列として書き出す priarray
命令 (由来 : print array)
// string_var : 情報を受け取る文字列型変数
// ary : 多次元配列変数
// coment : コメント(省略可)
priarray string_var, ary, coment
表示内容 \ 型 | label | str | double | int | struct | COM object |
---|---|---|---|---|---|---|
変数名 | O | O | O | O | O | O |
型 | O | O | O | O | O | O |
各次元要素数 | O | O | O | O | O | O |
使用時の行数 | O | O | O | O | O | O |
値の書出し | O | O | O | O | X | X |
デバッグウィンドウでも多次元配列変数の中身をテキストに出力できますが、この命令を使えばより柔軟なデバッグ作業、確認作業が可能になるはずです.
※あくまでも、デバッグ用、確認用としてお使い下さい.
連続代入を行う setarray
多次元配列変数に連続代入を行う setarray
命令 (由来 : setting array)
// ary : 代入先の配列変数 (dim系での初期化 必須)
// in_val : 代入したい値
// idx_flag : indexフラグ
// idx : 増減値
setarray ary, in_val, idx_flag, idx
動作内容 \ 型 | label | str | double | int |
---|---|---|---|---|
連続代入 | --- | O | O | O |
増減機能 | X | O | O | O |
-
文字列型、実数型、整数型の多次元配列変数への連続代入が可能.
-
実数型、整数型では代入時に増減値を指定することで値を変化させることが可能.
-
文字列型の場合はインデックス付与として機能します.
検証用の多次元配列変数を簡単に準備できます.
※ 既存の配列や複数行文字列を配列変数に代入したい場合は cnvarray
命令をご利用下さい
※ ラベル型配列を生成したい場合は labarray
命令をご使用ください
値を書き出す outarray
多次元配列変数の値を複数行文字列として書き出す outarray
命令 (由来 : output array)
// string_var : 配列変数の中身を受け取る文字列型変数
// ary : 配列変数
// label_flag : ラベルモード
outarray string_var, ary, label_flag
-
priarray
命令とは異なり、値のみを複数行文字列として書き出す -
ラベル型、文字列型、実数型、整数型に対応
-
ラベル型を書き出す際に、ラベルモードのフラグを1にすると
return
が追加される
(※stop
は追加されません)
変換する cnvarray
あらゆるものを別の多次元配列に変換する cnvarray
命令 (由来 : convert array)
// ary_name : 変数名
// in_val : 読み込む 複数行文字列型変数 または 多次元配列変数
// type : 変換後の型を表す数値 (= 2, 2:文字列型 / 3:実数型 / 4:整数型)
// d1,d2,d3,d4 : 変換後の各次元要素数 (= 0)
cnvarray ary_name, in_val, type, d1, d2, d3, d4
-
複数行文字列、多次元配列変数 を 別の多次元配列変数 に変換
-
変換時に変数の型、及び各次元要素数を指定できる
-
内部で
dimtype ary_name, type, d1, d2, d3, d4
としているのでary_name
を初期化する必要はない -
in_val
が多次元配列変数の場合のみ d1 以降すべて省略できる.
その際はin_val
の各次元要素数が、そのままary_name
の要素数となる ( ---> 配列変数コピー機能) -
outarray
命令と組み合わせることで、値と変数名はそのままに、次元の拡張・縮小、型変換を行うことができる
sdim hogehoge, 64, 10, 2
:
sdim str_tmp, 1024
outarray str_tmp, hogehoge // hogehoge のすべての値を複数行文字列として str_tmp に書き出し
cnvarray hogehoge, str_tmp, 4, 10, 5, 3 // hogehoge を整数型、3次元配列(10, 5, 3) に変換
ラベルを量産する labarray
ラベルを量産する labarray
命令 (由来 : label array)
// string_var : 書き出し先の文字列型変数
// ary : 書き出す文字列型配列変数
// in_val : 代入値またはそれを格納した変数
// index : 増減値
labarray string_var, ary, in_val, index
計算する calc_ary
多次元配列どうしの計算を行う calc_ary
命令 (由来 : calculate array)
// ans_ary : 計算結果を受け取る変数名
// ary1, ary2 : 変数名
// calc_type : 演算タイプ
// error_stop : 0除算フラグ (= 0, 0:停止しない / 1:停止する)
calc_ary ans_ary, ary1, ary2, calc_type, error_stop
- 加算( + )、減算( - )、乗算( * )、除算( / )、剰余( \ )、実数指定での割増・割引計算、百分率指定での割増・割引計算が可能
- 計算の種類はカスタム可能
- HSP3の言語仕様に合わせて
ans_ary
はary1
の変数型と各次元要素数で初期化 - 文字列型、実数型、整数型のみ対応
その他
- 配列動作制御
ctlarray
命令 - 制御フィールド開始
ctlarray_start
命令 - 制御フィールド終了
ctlarray_end
命令 - 制御の除外
ctlexcld
命令
- 多次元配列を1次元化した要素数を返す
dimlinec
関数 - 1次元化した要素数から元の各次元要素数を返す
linedim
命令
- 多次元配列の線形探索
MDALiSrch
関数 - 多次元配列の二分木探索
MDABiSrch
命令
試作中
- 多次元配列を1次元配列として扱う
uniary
関数 - 複数の多次元配列を オフセットで まとめて扱う
union_d
関数 - 複数の多次元配列を 値で まとめて扱う
union
関数 union
,union_d
関数の書式設定を行うunifrmt
命令
導入方法(Introduction)
各モジュールの説明
-
myarray_core モジュール (02_myarray_core.hsp)
ほぼすべての命令・関数の中核を担うイテレータなどを内部命令化・関数化し、定義する本プロジェクト最重要モジュール。
linedim命令、dimlinec関数やその他内部命令・関数を含む6つの命令・関数郡からなる。 -
myarray_list モジュール (02_myarray_list.hsp)
このモジュールは主に多次元配列を1次元配列として扱うものや、配列をリストのように扱うといったデータ管理用途の機能を集めたものです。
未だ開発途中で実験的なのもでもあり、今後の開発やアップデートの中心になリます。 -
myarray_srch モジュール (02_myarray_srch.hsp)
ソートや線形探索・二分木探索など、ユーザーに提供する一部機能の前処理を行う、local指定を含む7つの命令・関数郡からなるモジュール。
MDALiSrch関数、MDABiSrch命令等を含む。 -
myarray モジュール (02_myarray.hsp)
これまで通り、ユーザー提供機能をまとめたモジュール。
ラベル型変数、モジュール型変数へのアクセスを行うポインタ関連、配列制御関連の内部命令、pri, set, out, cnv, labarray命令の各内部命令とマクロ、配列演算命令など。
.
├─ 02_myarray_core.hsp
├─ 02_myarray_list.hsp
├─ 02_myarray_srch.hsp
├─ 02_myarray.hsp
│
├── 02_myarray
│ ├── 02_myarray_list.hs
│ ├── 02_myarray_srch.hs
│ ├── 02_myarray.hs
│ ├── 02_1_PriSetOut.hsp
│ ├── 02_2_CnvOut.hsp
│ ├── 02_3_Cnv.hsp
│ ├── 02_4_Lab.hsp
│ ├── 02_5_Ctl.hsp
│ ├── 02_6_Calc.hsp
│ ├── 02_7_Dict_test.hsp
│ └── 02_myarray.txt
│
├── README.md
└── License.txt
- 02_myarray_core.hsp
- 02_myarray_list.hsp
- 02_myarray_srch.hsp
- 02_myarray.hsp
- 02_myarrayフォルダ
上記の4つのファイルをユーザースクリプトのディレクトリか、HSP のインストールディレクトリ下の commonフォルダ内において、02_myarray.hsp
をインクルードしてください。02_myarrayフォルダをHSPのインストールディレクトリ下にある doclibフォルダ内に02_myarrayフォルダごと 置いて下さい。サンプルファイルもそのままで構いません。
例)
├─ hsp37
├─ common
│ ├─
│ ├─ 02_myarray_core.hsp
│ ├─ 02_myarray_list.hsp
│ ├─ 02_myarray_srch.hsp
│ ├─ 02_myarray.hsp
│
├─ doclib
│ ├─ 02_myarrayフォルダ
// インクルードするのは 02_myarray ファイルだけ
#include "02_myarray.hsp"
必要環境(Environment)
- Windows10, 11
- HSP3.6以上
使用言語(Coding Language)
開発環境(Development environment)
- Windows11 Pro 22H2 x64
- Hot Soup Processor 3.7beta4
- Visual Studio Code ver 1.74.3
LICENSE
本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」)の複製を取得するすべての人に対し、ソフトウェアを無制限に扱うことを無償で許可します。
これには、ソフトウェアの複製を使用、複写、変更、結合、掲載、頒布、サブライセンス、および/または販売する権利、およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます。
ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。
作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求、損害、その他の義務について何らの責任も負わないものとします。
謝 辞(SPECIAL THANKS)
- HSPTV!掲示板の皆様
このモジュールは HSPTV!掲示板 の皆様によって支えられております。
この場を借りて感謝申し上げます。誠に有難うございます。
項 目 | 掲示板情報 |
---|---|
Kind | 宣 伝 |
Date | 2023/01/16 |
Person | Yuzranium |
Pontent | 多次元配列をなんやかんやする |
項 目 | 掲示板情報 (過去ログ) |
---|---|
Date | 2022/11/26 |
Pontent | 多次元配列変数を複数行文字列に |
更新履歴(Change Log)
ver 0.28
2023/02/01
新規追加命令・関数
名称 | 種別 | 概要 |
---|---|---|
uniary |
関数 | 多次元配列を 1次元配列 として扱う |
uniformat |
命令 | union_dとunion関数の出力書式の設定変更 |
union_d |
関数 | 複数の配列を オフセット でまとめる |
union |
関数 | 複数の配列を 値 でまとめる |
MDALiSrch |
関数 | 多次元配列の 線形探索 を行う |
---|---|---|
MDABiSrch |
命令 | 多次元配列の 二分木探索 を行う |
修正・変更
- priarray命令のモジュール型変数の情報表示ができない不具合の修正
- outarray命令のマクロ登録を削除 (今まで通り利用可)
- calc_ary命令内で呼び出され、実際に配列どうしの計算を行うcalc_var_ary(local)関数の名称を cpu_ary_へ変更
- cpu_ary_関数の計算内容の分岐方法を、if-else:if による比較から、gotoとラベル型変数を利用したラベルジャンプの分岐法に変更_myarray_init_(local)命令内で 管理用変数を ldim cpu_jump, 15 として定義( cpu_jump(0)~(8)までを使用、cpu_jump(9)以降は空き)
-
myarrayモジュールの肥大化に伴い、同モジュールを以下のようにファイルごと分割することとした。(それぞれ重要度順に記す)
-
myarray_core モジュール (02_myarray_core.hsp)
ほぼすべての命令・関数の中核を担うイテレータなどを内部命令化・関数化し、定義する本...
-
myarray
マイ・アレイ ![GitHub release (latest by date including pre-releases)](https://camo.githubusercontent.com/6c62605531c42a0c457c651752472e9614932883ccb7a7db95544221580df968/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f59555a52414e49554d2f30325f6d7961727261793f696e636c7564655f70726572656c6561736573267374796c653d666c61742d737175617265)
多次元配列変数をなんやかんやする、なんてことないモジュール
不具合報告や要望等は HSPTV!掲示板 で頂けると幸いです。
今後の予定
- 追加分のヘルプファイル
-
ctlarray
命令をはじめとした制御系命令の調整 - モジュール型変数への対応
- 多次元配列の結合と分離 (※半分妄想)
- 辞書的なもの (※半分妄想)
- 多次元配列変数どうし、もしくは多次元配列変数と通常変数の連続的な四則演算 (※半分妄想)
特徴(Feature)
- 標準命令のみで動作し、変数名、ラベル名の表示等が可能.
- 1次元、2次元、3次元、4次元、全ての次元に対応.
- ラベル型、文字列型、実数型、整数型に対応
- 配列の途中から値の書き出し、連続代入、配列コピーが可能.
情報を書き出す priarray
多次元配列変数の情報を複数行文字列として書き出す priarray
命令 (由来 : print array)
// string_var : 情報を受け取る文字列型変数
// ary : 多次元配列変数
// coment : コメント(省略可)
priarray string_var, ary, coment
表示内容 \ 型 | label | str | double | int | struct | COM object |
---|---|---|---|---|---|---|
変数名 | O | O | O | O | O | O |
型 | O | O | O | O | O | O |
各次元要素数 | O | O | O | O | O | O |
使用時の行数 | O | O | O | O | O | O |
値の書出し | O | O | O | O | X | X |
デバッグウィンドウでも多次元配列変数の中身をテキストに出力できますが、この命令を使えばより柔軟なデバッグ作業、確認作業が可能になるはずです.
※あくまでも、デバッグ用、確認用としてお使い下さい.
連続代入を行う setarray
多次元配列変数に連続代入を行う setarray
命令 (由来 : setting array)
// ary : 代入先の配列変数 (dim系での初期化 必須)
// in_val : 代入したい値 (初期値)
// idx_flag : indexフラグ
// idx : 増減値
setarray ary, in_val, idx_flag, idx
動作内容 \ 型 | label | str | double | int |
---|---|---|---|---|
連続代入 | --- | O | O | O |
増減機能 | X | O | O | O |
-
文字列型、実数型、整数型の多次元配列変数への連続代入が可能.
-
実数型、整数型では代入時に増減値を指定することで値を変化させることが可能.
-
文字列型の場合はインデックス付与として機能します.
検証用の多次元配列変数を簡単に準備できます.
※ 既存の配列や複数行文字列を配列変数に代入したい場合は cnvarray
命令をご利用下さい
※ ラベル型配列を生成したい場合は labarray
命令をご使用ください
値を書き出す outarray
多次元配列変数の値を複数行文字列として書き出す outarray
命令 (由来 : output array)
// string_var : 配列変数の中身を受け取る文字列型変数
// ary : 配列変数
// label_flag : ラベルモード
outarray string_var, ary, label_flag
-
priarray
命令とは異なり、値のみを複数行文字列として書き出す -
ラベル型、文字列型、実数型、整数型に対応
-
ラベル型を書き出す際に、ラベルモードのフラグを1にすると
return
が追加される
(※stop
は追加されません)
変換する cnvarray
あらゆるものを別の多次元配列に変換する cnvarray
命令 (由来 : convert array)
// ary_name : 変数名
// in_val : 読み込む 複数行文字列型変数 または 多次元配列変数
// type : 変換後の型を表す数値 (= 2) (2:文字列型, 3:実数型, 4:整数型)
// d1,d2,d3,d4 : 変換後の各次元要素数 (= 0, 0, 0, 0)
cnvarray ary_name, in_val, type, d1, d2, d3, d4
-
複数行文字列、多次元配列変数 を 別の多次元配列変数 に変換
-
変換時に変数の型、及び各次元要素数を指定できる
-
内部で
dimtype ary_name, type, d1, d2, d3, d4
としているのでary_name
を初期化する必要はない -
in_val
が多次元配列変数の場合のみ d1 以降すべて省略できる.
その際はin_val
の各次元要素数が、そのままary_name
の要素数となる ( ---> 配列変数コピー機能) -
outarray
命令と組み合わせることで、値と変数名はそのままに、次元の拡張・縮小、型変換を行うことができる
sdim hogehoge, 64, 10, 2
:
sdim str_tmp, 1024
outarray str_tmp, hogehoge // hogehoge のすべての値を複数行文字列として str_tmp に書き出し
cnvarray hogehoge, str_tmp, 4, 10, 5, 3 // hogehoge を整数型、3次元配列(10, 5, 3) に変換
ラベルを量産する labarray
ラベルを量産する labarray
命令 (由来 : label array)
// string_var : 書き出し先の文字列型変数
// ary : 書き出す文字列型配列変数
// in_val : 代入値またはそれを格納した変数
// index : 増減値
labarray string_var, ary, in_val, index
導入方法(Introduction)
.
├─ 02_myarray.hsp
│
├── 02_myarray
│ ├── 02_myarray.hs
│ ├── 02_1_PriSetOut.hsp
│ ├── 02_2_CnvOut.hsp
│ ├── 02_3_Cnv.hsp
│ ├── 02_4_Lab.hsp
│ ├── 02_5_Ctl.hsp
│ └── 02_myarray.txt
│
├── README.md
└── License.txt
-
02_myarray.hsp をユーザースクリプトのディレクトリか、HSP のインストールディレクトリ下の commonフォルダ内において、02_myarray.hspをインクルードしてください。
例) hsp37/common/02_myarray.hsp
-
02_myarrayフォルダをHSPのインストールディレクトリ下にある doclibフォルダ内に02_myarrayフォルダごと 置いて下さい。サンプルファイルもそのままで構いません。
例) hsp37/doclib/02_myarray
必要環境(Environment)
- Windows10, 11
- HSP3.6以上
使用言語(Coding Language)
開発環境(Development environment)
- Windows11 Pro 22H2 x64
- Hot Soup Processor 3.7beta4
- Visual Studio Code ver 1.74.3
LICENSE
本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」)の複製を取得するすべての人に対し、ソフトウェアを無制限に扱うことを無償で許可します。
これには、ソフトウェアの複製を使用、複写、変更、結合、掲載、頒布、サブライセンス、および/または販売する権利、およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます。
ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。
作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求、損害、その他の義務について何らの責任も負わないものとします。
謝 辞(SPECIAL THANKS)
- HSPTV!掲示板の皆様
このモジュールは HSPTV!掲示板 の皆様によって支えられております。
この場を借りて感謝申し上げます。誠に有難うございます。
項 目 | 掲示板情報 |
---|---|
Kind | 宣 伝 |
Date | 2023/01/16 |
Person | Yuzranium |
Pontent | 多次元配列をなんやかんやする |
項 目 | 掲示板情報 (過去ログ) |
---|---|
Date | 2022/11/26 |
Pontent | 多次元配列変数を複数行文字列に |
更新履歴(Change Log)
var 0.27.1
2023/01/16
不具合修正
- dimlinec関数のパラメータ条件式に抜けがあり、異常値の処理ができない不具合.
その他
- ヘルプファイルに新規追加分の命令・関数の項目を追記、一部文言の修正。
- 一部ソースコードの修正
ver 0.27
2023/01/09
新規追加命令・関数
dimlinec
関数- 各次元要素数から配列の先頭からのオフセット値を返す
linedim
命令- 配列の先頭からのオフセット値を各次元要素数に変換する
ctlarray_start
命令ctlarray
の動作制御フィールドの開始
ctlarray_end
命令ctlarray
の動作制御フィールドの終了
ctlexcld
命令- 動作制御フィールド内で制御の除外を行う
その他
- 動作制御命令 ctlarray命令の調整
- よく使う処理やイテレーター等の関数・命令化
- モジュール内で使用する変数の一部変数名を修正
- スクリプトの整備・修正
var 0.26.3
2022/12/30
priarray
命令のラベル名取得機能完成
また、同命令にモジュール型変数の指定時、モジュール名及び関連情報の表示機能を仮搭載 (※未完成)labarray
命令の追加に伴い、setarray
命令をラベル型変数非対応に
このバージョンからラベル型変数対応命令はpriarray
,outarray
の2つとなる- エラーレポート機能の廃止
新規追加命令・関数
ctlarray 命令
priarray
,setarray
,outarray
,labarray
命令の各動作範囲を制御する
(※試作段階のもので、本バージョンから試験導入)
(※以下、本モジュールの~array命令を補佐する付随命令・関数)
sortgetc |
関数 | sortgetの関数バージョン |
---|---|---|
twinsortary |
命令 | 一方の配列のソートに合わせて他方もソート |
bisrch |
命令 | 二分木探索を行う |
modlabget |
関数 | ラベル名・モジュール名取得 |
その他
- モジュール内で使用する変数の変数名及び各命令・関数のエイリアス名の見直し
- strf関数用書式文字列格納変数にモジュール情報用の書式追加(仮)
- スクリプトの整備・修正
以下略
ver 0.26.1
2022/12/20
priarray命令
にラベル型配列変数のラベル名表示機能を追加(2022/12/18現在、最適化できておらず)
-
新規追加命令
outarray命令
の追加- 多次元配列変数の値のみを複数行文字列として書き出す
cnvarray命令
の追加- 複数行文字列、多次元配列変数を別の多次元配列変数へ変換する
labarray命令
の追加- 文字列型配列変数を複数行文字列として書き出し、ラベル型に変換する
-
その他
- スクリプトの修正
- コメント表示の書式微修正
- 内部関数
ainfo_関数
の命令化
ver 0.25
2022/12/07
書き出し命令 priarray命令
にコメント機能の追加
一括代入命令 setarray命令
に増減機能の追加
一部コードの改修
ver 0.24
2022/12/05
多次元配列変数への一括代入setarray命令
の追加
値の書き出しができないラベル型、モジュール型、COMオブジェクト型を指定した際に変数の使用状況(varuse関数
)とエラーレポートを表示する機能を追加
ver 0.23
2022/12/04
書き出し方法の大幅改良
一部スクリプトの効率化
ver 0.22
2022/12/01
配列情報の表示方法の変更
ver 0.21
2022/11/29
パラメーターの修正
ver 0.20
2022/11/26
ヘッダファイル、サンプルファイルの修正
ver 0.10
2022/11/25
初公開
myarray v0.27
マイ・アレイ ![GitHub release (latest by date including pre-releases)](https://camo.githubusercontent.com/6c62605531c42a0c457c651752472e9614932883ccb7a7db95544221580df968/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f59555a52414e49554d2f30325f6d7961727261793f696e636c7564655f70726572656c6561736573267374796c653d666c61742d737175617265)
多次元配列変数をなんやかんやする、なんてことないモジュール
不具合報告や要望等は HSPTV!掲示板 で頂けると幸いです。
今後の予定
- 追加分のヘルプファイル
-
ctlarray
命令をはじめとした制御系命令の調整 - モジュール型変数への対応
- 多次元配列の結合と分離 (※半分妄想)
- 辞書的なもの (※半分妄想)
- 多次元配列変数どうし、もしくは多次元配列変数と通常変数の連続的な四則演算 (※半分妄想)
特徴(Feature)
- 標準命令のみで動作し、変数名、ラベル名の表示等が可能.
- 1次元、2次元、3次元、4次元、全ての次元に対応.
- ラベル型、文字列型、実数型、整数型に対応
- 配列の途中から値の書き出し、連続代入、配列コピーが可能.
情報を書き出す priarray
多次元配列変数の情報を複数行文字列として書き出す priarray
命令 (由来 : print array)
// string_var : 情報を受け取る文字列型変数
// ary : 多次元配列変数
// coment : コメント(省略可)
priarray string_var, ary, coment
表示内容 \ 型 | label | str | double | int | struct | COM object |
---|---|---|---|---|---|---|
変数名 | O | O | O | O | O | O |
型 | O | O | O | O | O | O |
各次元要素数 | O | O | O | O | O | O |
使用時の行数 | O | O | O | O | O | O |
値の書出し | O | O | O | O | X | X |
デバッグウィンドウでも多次元配列変数の中身をテキストに出力できますが、この命令を使えばより柔軟なデバッグ作業、確認作業が可能になるはずです.
※あくまでも、デバッグ用、確認用としてお使い下さい.
連続代入を行う setarray
多次元配列変数に連続代入を行う setarray
命令 (由来 : setting array)
// ary : 代入先の配列変数 (dim系での初期化 必須)
// in_val : 代入したい値 (初期値)
// idx_flag : indexフラグ
// idx : 増減値
setarray ary, in_val, idx_flag, idx
動作内容 \ 型 | label | str | double | int |
---|---|---|---|---|
連続代入 | --- | O | O | O |
増減機能 | X | O | O | O |
-
文字列型、実数型、整数型の多次元配列変数への連続代入が可能.
-
実数型、整数型では代入時に増減値を指定することで値を変化させることが可能.
-
文字列型の場合はインデックス付与として機能します.
検証用の多次元配列変数を簡単に準備できます.
※ 既存の配列や複数行文字列を配列変数に代入したい場合は cnvarray
命令をご利用下さい
※ ラベル型配列を生成したい場合は labarray
命令をご使用ください
値を書き出す outarray
多次元配列変数の値を複数行文字列として書き出す outarray
命令 (由来 : output array)
// string_var : 配列変数の中身を受け取る文字列型変数
// ary : 配列変数
// label_flag : ラベルモード
outarray string_var, ary, label_flag
-
priarray
命令とは異なり、値のみを複数行文字列として書き出す -
ラベル型、文字列型、実数型、整数型に対応
-
ラベル型を書き出す際に、ラベルモードのフラグを1にすると
return
が追加される
(※stop
は追加されません)
変換する cnvarray
あらゆるものを別の多次元配列に変換する cnvarray
命令 (由来 : convert array)
// ary_name : 変数名
// in_val : 読み込む 複数行文字列型変数 または 多次元配列変数
// type : 変換後の型を表す数値 (= 2) (2:文字列型, 3:実数型, 4:整数型)
// d1,d2,d3,d4 : 変換後の各次元要素数 (= 0, 0, 0, 0)
cnvarray ary_name, in_val, type, d1, d2, d3, d4
-
複数行文字列、多次元配列変数 を 別の多次元配列変数 に変換
-
変換時に変数の型、及び各次元要素数を指定できる
-
内部で
dimtype ary_name, type, d1, d2, d3, d4
としているのでary_name
を初期化する必要はない -
in_val
が多次元配列変数の場合のみ d1 以降すべて省略できる.
その際はin_val
の各次元要素数が、そのままary_name
の要素数となる ( ---> 配列変数コピー機能) -
outarray
命令と組み合わせることで、値と変数名はそのままに、次元の拡張・縮小、型変換を行うことができる
sdim hogehoge, 64, 10, 2
:
sdim str_tmp, 1024
outarray str_tmp, hogehoge // hogehoge のすべての値を複数行文字列として str_tmp に書き出し
cnvarray hogehoge, str_tmp, 4, 10, 5, 3 // hogehoge を整数型、3次元配列(10, 5, 3) に変換
ラベルを量産する labarray
ラベルを量産する labarray
命令 (由来 : label array)
// string_var : 書き出し先の文字列型変数
// ary : 書き出す文字列型配列変数
// in_val : 代入値またはそれを格納した変数
// index : 増減値
labarray string_var, ary, in_val, index
導入方法(Introduction)
.
├─ 02_myarray.hsp
│
├── 02_myarray
│ ├── 02_myarray.hs
│ ├── 02_1_PriSetOut.hsp
│ ├── 02_2_CnvOut.hsp
│ ├── 02_3_Cnv.hsp
│ ├── 02_4_Lab.hsp
│ ├── 02_5_Ctl.hsp
│ └── 02_myarray.txt
│
├── README.md
└── License.txt
-
02_myarray.hsp をユーザースクリプトのディレクトリか、HSP のインストールディレクトリ下の commonフォルダ内において、02_myarray.hspをインクルードしてください。
例) hsp37/common/02_myarray.hsp
-
02_myarrayフォルダをHSPのインストールディレクトリ下にある doclibフォルダ内に02_myarrayフォルダごと 置いて下さい。サンプルファイルもそのままで構いません。
例) hsp37/doclib/02_myarray
必要環境(Environment)
- Windows10, 11
- HSP3.6以上
使用言語(Coding Language)
開発環境(Development environment)
- Windows11 Pro 22H2 x64
- Hot Soup Processor 3.7beta4
- Visual Studio Code ver 1.74.3
LICENSE
本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」)の複製を取得するすべての人に対し、ソフトウェアを無制限に扱うことを無償で許可します。
これには、ソフトウェアの複製を使用、複写、変更、結合、掲載、頒布、サブライセンス、および/または販売する権利、およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます。
ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。
作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求、損害、その他の義務について何らの責任も負わないものとします。
謝 辞(SPECIAL THANKS)
- HSPTV!掲示板の皆様
このモジュールは HSPTV!掲示板 の皆様によって支えられております。
この場を借りて感謝申し上げます。誠に有難うございます。
項 目 | 掲示板情報 |
---|---|
Kind | 宣 伝 |
Date | 2022/11/26 |
Person | Yuzranium |
Pontent | 多次元配列変数を複数行文字列に |
更新履歴(Change Log)
ver 0.27
2023/01/09
新規追加命令・関数
dimlinec
関数- 各次元要素数から配列の先頭からのオフセット値を返す
linedim
命令- 配列の先頭からのオフセット値を各次元要素数に変換する
ctlarray_start
命令ctlarray
の動作制御フィールドの開始
ctlarray_end
命令ctlarray
の動作制御フィールドの終了
ctlexcld
命令- 動作制御フィールド内で制御の除外を行う
その他
- 動作制御命令 ctlarray命令の調整
- よく使う処理やイテレーター等の関数・命令化
- モジュール内で使用する変数の一部変数名を修正
- スクリプトの整備・修正
var 0.26.3
2022/12/30
priarray
命令のラベル名取得機能完成
また、同命令にモジュール型変数の指定時、モジュール名及び関連情報の表示機能を仮搭載 (※未完成)labarray
命令の追加に伴い、setarray
命令をラベル型変数非対応に
このバージョンからラベル型変数対応命令はpriarray
,outarray
の2つとなる- エラーレポート機能の廃止
新規追加命令・関数
ctlarray 命令
priarray
,setarray
,outarray
,labarray
命令の各動作範囲を制御する
(※試作段階のもので、本バージョンから試験導入)
(※以下、本モジュールの~array命令を補佐する付随命令・関数)
sortgetc |
関数 | sortgetの関数バージョン |
---|---|---|
twinsortary |
命令 | 一方の配列のソートに合わせて他方もソート |
bisrch |
命令 | 二分木探索を行う |
modlabget |
関数 | ラベル名・モジュール名取得 |
その他
- モジュール内で使用する変数の変数名及び各命令・関数のエイリアス名の見直し
- strf関数用書式文字列格納変数にモジュール情報用の書式追加(仮)
- スクリプトの整備・修正
以下略
ver 0.26.1
2022/12/20
priarray命令
にラベル型配列変数のラベル名表示機能を追加(2022/12/18現在、最適化できておらず)
-
新規追加命令
outarray命令
の追加- 多次元配列変数の値のみを複数行文字列として書き出す
cnvarray命令
の追加- 複数行文字列、多次元配列変数を別の多次元配列変数へ変換する
labarray命令
の追加- 文字列型配列変数を複数行文字列として書き出し、ラベル型に変換する
-
その他
- スクリプトの修正
- コメント表示の書式微修正
- 内部関数
ainfo_関数
の命令化
ver 0.25
2022/12/07
書き出し命令 priarray命令
にコメント機能の追加
一括代入命令 setarray命令
に増減機能の追加
一部コードの改修
ver 0.24
2022/12/05
多次元配列変数への一括代入setarray命令
の追加
値の書き出しができないラベル型、モジュール型、COMオブジェクト型を指定した際に変数の使用状況(varuse関数
)とエラーレポートを表示する機能を追加
ver 0.23
2022/12/04
書き出し方法の大幅改良
一部スクリプトの効率化
ver 0.22
2022/12/01
配列情報の表示方法の変更
ver 0.21
2022/11/29
パラメーターの修正
ver 0.20
2022/11/26
ヘッダファイル、サンプルファイルの修正
ver 0.10
2022/11/25
初公開
02_myarray
マイ・アレイ ![GitHub release (latest by date including pre-releases)](https://camo.githubusercontent.com/6c62605531c42a0c457c651752472e9614932883ccb7a7db95544221580df968/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f59555a52414e49554d2f30325f6d7961727261793f696e636c7564655f70726572656c6561736573267374796c653d666c61742d737175617265)
多次元配列変数をなんやかんやする、なんてことないモジュール
不具合報告や要望等は HSPTV!掲示板 で頂けると幸いです。
特徴(Feature)
- 多次元配列変数に格納されている全ての値を複数行文字列として変数に格納.
- 1次元、2次元、3次元、4次元、全ての次元に対応.
- 標準命令のみで動作.
- 変数名、ラベル名の表示.
- 複数行文字列から多次元配列、多次元配列から別の多次元配列へ、次元を超えた変換が可能.
- 配列コピー、文字列型、実数型、整数型の相互変換.
- ラベル型配列変数の生成.
-
多次元配列変数を複数行文字列にする
priarray
命令 (由来 : print array)表示内容 \ 型 label str double int struct COM object 変数名 O O O O O O 型 O O O O O O 各次元要素数 O O O O O O 使用時の行数 O O O O O O 値の書出し O O O O X X 変数の使用状況 --- --- --- --- O O
デバッグウィンドウでも多次元配列変数の中身をテキストに出力できますが、このモジュールで追加される命令を使えばより柔軟なデバッグ作業、確認作業が可能になるはずです.
※あくまでも、デバッグ用、確認用としてお使い下さい.
-
多次元配列変数に連続代入を行う
setarray
命令 (由来 : setting array)動作内容 \ 型 label str double int struct COM object 連続代入 - O O O X X 増減機能 - O O O X X
- 文字列型、実数型、整数型の多次元配列変数への連続代入が可能.
- 実数型、整数型では代入時に増減値を指定することで値を変化させることが可能.
- 文字列型の場合はインデックスの付与として機能します.
ラベル型配列を生成したい場合はlabarray命令
をご使用ください
機能(Function)
追加される使用可能命令・関数
// 多次元配列変数の書き出し
//
// p1 : 中身を受け取る文字列型変数
// p2 : 多次元配列変数
// p3 : コメント(省略可)
priarray p1, p2, p3
// 多次元配列変数一括代入
//
// p1 : 代入先の配列変数
// p2 : 代入したい値 (label, str, double, int)
// p3 : indexフラグ(=0)
// p4 : 増減値 (str, double, int)
setarray p1, p2, p3, p4
// 多次元配列変数の値書き出し
//
// p1 : 配列変数の中身を受け取る文字列型変数
// p2 : 配列変数
outarray p1, p2
// 多次元配列に変換する
//
// ary : 変数名
// in_val : 読み込む複数行文字列若しくは多次元配列変数
// type : 変換先の型を表す数値 (= 2) (2:文字列型, 3:実数型, 4:整数型)
// d1 : 第1次元要素数 (= 0)
// d2 : 第2次元要素数 (= 0)
// d3 : 第3次元要素数 (= 0)
// d4 : 第4次元要素数 (= 0)
cnvarray ary, in_val, type, d1, d2, d3, d4
// ラベル型配列変数生成
//
// hyouj : 書き出し先の複数行文字列型変数
// ary : 書き出す文字列型配列変数
// in_val : 代入値またはそれを格納した変数
// index : 増減値 (str, double, int)
labarray hyouj, ary, in_val, index
使用方法
ldim ary0, 4, 4, 4
sdim ary1, 64, 5, 5, 5, 5
ddim ary2, 10
dim ary3, 5, 5
// setarray <代入先の配列>, <代入値>, <インデックス使用フラグ(0:off, 1:on)>, <増減値>
setarray ary0, *main // ラベル型には増減機能は使えません。連続代入のみです
setarray ary1, "ABCDE", 1, 1 // 文字列の場合は、ABCDE, ABCDE1, ABCDE2, ABCDE3, ...
setarray ary2, 0.0, 1, 0.125 // 初期値: 0.0, 増減値: +0.125
setarray ary3, 10, 1, -1 // 初期値: 10, 増減値: -1
// priarray <中身を受け取る文字列型変数>, <多次元配列変数>, <コメント(省略可)>
priarray hyouji, ary1, "文字列にインデックスをつけています"
/*** any processing ***/
setarray aray1, "け―れー!!", 1, "(`・ω・´)ゞ"
priarray hyouji, ary1, "増減値に文字列を指定することも可能です"
priarray hyouji, ary3, "10, 9, 8, ... と減少していき、\n0, -1, -2, ...となっていきます"
// スクリプトの途中で内容をテキストファイルとして出力
notesel hyouji
notesave dir_cur + "\\check_array.txt"
一覧表示のサンプル
[ ttsta ] label(10) L=74
(0) = <null label>
(1) = <null label>
(2) = <null label>
(3) = <null label>
(4) = <null label>
(5) = <null label>
(6) = <null label>
(7) = <null label>
(8) = <null label>
(9) = <null label>
[ sub_labl ] label(4) L=97
/*------------------------------
ラベル名表示テスト
------------------------------*/
(0) = *ary_dim
(1) = *fileload
(2) = *type_change
(3) = *loop_ch
[ aa ] str(2) L=98
(0) = ちゃんと変数名も型も行数も表示できますよ
(1) = そう、マクロならね
[ 使い方 ] str(13) L=99
/*------------------------------
コメントの表示形式についてどうでしょうか?
デバッグ用、確認用と謳っているにも関わらず
コメントできないというのはどうなんだろう...
と思いまして。もう少し表示形式を練ってみます
------------------------------*/
(0) = 第一パラメータには文字列型変数を指定して下さい。
(1) = 第二パラメータに中身を見たい多次元配列変数を指定して下さい
(2) = こんなふうに変数名と要素の総数、マクロを呼び出した行数
(3) = そして各配列要素に対応した値が一覧として表示できます
(4) =
(5) = デバッグウィンドウで確認できるって?
(6) = ログ表示をテキストに出力できるって?
(7) = ......
(8) = うっあっあっうわぁぁぁぁぁぁぁぁぁぁぁぁぁぁ
(9) = あっ!!、でっ、でっ、でも明示的にスクリプト内でこういった事が
(10) = できるだけでも存在価値はあるんじゃない?
(11) = ほっ、ほら!
(12) = ログ出力みたいに上書きされずに済むよ(;゚∀゚)=3ハァハァ
[ aray1 ] double(3, 3) L=107
/*------------------------------
処理の前後に挟むと確認ができます
------------------------------*/
(0, 0) = 0.000000
(1, 0) = 0.000000
(2, 0) = 0.000000
(0, 1) = 0.000000
(1, 1) = 0.000000
(2, 1) = 0.000000
(0, 2) = 0.000000
(1, 2) = 0.000000
(2, 2) = 0.000000
[ aray1 ] double(3, 3) L=112
/*------------------------------
増減機能のテストです
------------------------------*/
(0, 0) = 0.000000
(1, 0) = 0.125000
(2, 0) = 0.250000
(0, 1) = 0.375000
(1, 1) = 0.500000
(2, 1) = 0.625000
(0, 2) = 0.750000
(1, 2) = 0.875000
(2, 2) = 1.000000
[ aray2 ] str(3, 2, 1) L=115
(0, 0, 0) =
(1, 0, 0) =
(2, 0, 0) =
(0, 1, 0) =
(1, 1, 0) =
(2, 1, 0) =
[ aray2 ] str(3, 2, 1) L=117
/*------------------------------
増減機能は文字列に対してはインデックス付与として機能します。
------------------------------*/
(0, 0, 0) = *main
(1, 0, 0) = *main1
(2, 0, 0) = *main2
(0, 1, 0) = *main3
(1, 1, 0) = *main4
(2, 1, 0) = *main5
[ aray2 ] str(3, 2, 1) L=119
/*------------------------------
増減値に文字列を指定することも可能です()
(`・ω・´)ゞ
------------------------------*/
(0, 0, 0) = ABCDEFG
(1, 0, 0) = ABCDEFG(`・ω・´)ゞ
(2, 0, 0) = ABCDEFG(`・ω・´)ゞ(`・ω・´)ゞ
(0, 1, 0) = ABCDEFG(`・ω・´)ゞ(`・ω・´)ゞ(`・ω・´)ゞ
(1, 1, 0) = ABCDEFG(`・ω・´)ゞ(`・ω・´)ゞ(`・ω・´)ゞ(`・ω・´)ゞ
(2, 1, 0) = ABCDEFG(`・ω・´)ゞ(`・ω・´)ゞ(`・ω・´)ゞ(`・ω・´)ゞ(`・ω・´)ゞ
[ aray4 ] int(4, 3, 2, 1) L=133
/*------------------------------
負の値も指定可
------------------------------*/
(0, 0, 0, 0) = 100
(1, 0, 0, 0) = 90
(2, 0, 0, 0) = 80
(3, 0, 0, 0) = 70
(0, 1, 0, 0) = 60
(1, 1, 0, 0) = 50
(2, 1, 0, 0) = 40
(3, 1, 0, 0) = 30
(0, 2, 0, 0) = 20
(1, 2, 0, 0) = 10
(2, 2, 0, 0) = 0
(3, 2, 0, 0) = -10
(0, 0, 1, 0) = -20
(1, 0, 1, 0) = -30
(2, 0, 1, 0) = -40
(3, 0, 1, 0) = -50
(0, 1, 1, 0) = -60
(1, 1, 1, 0) = -70
(2, 1, 1, 0) = -80
(3, 1, 1, 0) = -90
(0, 2, 1, 0) = -100
(1, 2, 1, 0) = -110
(2, 2, 1, 0) = -120
(3, 2, 1, 0) = -130
導入方法(Introduction)
.
├─ 02_myarray.hsp
│
├── 02_myarray
│ ├── 02_myarray.hs
│ ├── 02_1_PriSetOut.hsp
│ ├── 02_2_CnvOut.hsp
│ ├── 02_3_Cnv.hsp
│ ├── 02_4_Lab.hsp
│ └── 02_myarray.txt
│
├── README.md
├── README.html
└── License.txt
-
02_myarray.hsp をユーザースクリプトのディレクトリか、HSP のインストールディレクトリ下の commonフォルダ内において、02_myarray.hspをインクルードしてください。
例) hsp37/common/02_myarray.hsp
-
02_myarrayフォルダをHSPのインストールディレクトリ下にある doclibフォルダ内に02_myarrayフォルダごと 置いて下さい。サンプルファイルもそのままで構いません。
例) hsp37/doclib/02_myarray
必要環境(Environment)
- Windows10, 11
- HSP3.6以上
使用言語(Coding Language)
開発環境(Development environment)
- Windows11 Pro 22H2 x64
- Hot Soup Processor 3.7beta4
- Visual Studio Code ver 1.74.1
LICENSE
本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」)の複製を取得するすべての人に対し、ソフトウェアを無制限に扱うことを無償で許可します。
これには、ソフトウェアの複製を使用、複写、変更、結合、掲載、頒布、サブライセンス、および/または販売する権利、およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます。
ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。
作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求、損害、その他の義務について何らの責任も負わないものとします。
謝 辞(SPECIAL THANKS)
- HSPTV!掲示板の皆様
このモジュールは HSPTV!掲示板 の皆様によって支えられております。
この場を借りて感謝申し上げます。誠に有難うございます。
項 目 | 掲示板情報 |
---|---|
Kind | 宣 伝 |
Date | 2022/11/26 |
Person | Yuzranium |
Pontent | 多次元配列変数を複数行文字列に |
今後の予定
- ヘルプファイルの作製
- ヘッダファイルのコメントの充実
- サンプルファイルのコメントの充実
- 配列変数への一括代入命令の追加
- ラベル型の表面上の文字列にインデックスをつけるのが私の夢です()
- 次元要素の書き出し範囲の指定ができるようにしたい
(4次元配列をすべて書き出すとなるとユーザーのPCに膨大な負荷がかかる恐れがあるため)
更新履歴(Change Log)
ver 0.26.1
2022/12/20
priarray命令
にラベル型配列変数のラベル名表示機能を追加(2022/12/18現在、最適化できておらず)
-
新規追加命令
outarray命令
の追加- 多次元配列変数の値のみを複数行文字列として書き出す
cnvarray命令
の追加- 複数行文字列、多次元配列変数を別の多次元配列変数へ変換する
labarray命令
の追加- 文字列型配列変数を複数行文字列として書き出し、ラベル型に変換する
-
その他
- スクリプトの修正
- コメント表示の書式微修正
- 内部関数
ainfo_関数
の命令化
ver 0.25
2022/12/07
書き出し命令 priarray命令
にコメント機能の追加
一括代入命令 setarray命令
に増減機能の追加
一部コードの改修
ver 0.24
2022/12/05
多次元配列変数への一括代入setarray命令
の追加
値の書き出しができないラベル型、モジュール型、COMオブジェクト型を指定した際に変数の使用状況(varuse関数
)とエラーレポートを表示する機能を追加
ver 0.23
2022/12/04
書き出し方法の大幅改良
一部スクリプトの効率化
ver 0.22
2022/12/01
配列情報の表示方法の変更
ver 0.21
2022/11/29
パラメーターの修正
ver 0.20
2022/11/26
ヘッダファイル、サンプルファイルの修正
ver 0.10
2022/11/25
初公開
02_myarray
マイ・アレイ ![GitHub release (latest by date including pre-releases)](https://camo.githubusercontent.com/6c62605531c42a0c457c651752472e9614932883ccb7a7db95544221580df968/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f59555a52414e49554d2f30325f6d7961727261793f696e636c7564655f70726572656c6561736573267374796c653d666c61742d737175617265)
多次元配列変数を簡単に書き出す、なんてことないモジュール
不具合報告や要望等は HSPTV!掲示板 で頂けると幸いです。
特徴(Feature)
- 多次元配列変数に格納されている全ての値を複数行文字列として変数に格納.
- 1次元、2次元、3次元、4次元、全ての次元に対応.
- 標準命令のみで動作.
-
多次元配列変数を複数行文字列にする
priarray
命令 (由来 : print array)表示内容 \ 型 label str double int struct COM object 変数名 O O O O O O 型 O O O O O O 各次元要素数 O O O O O O 使用時の行数 O O O O O O 値の書出し X O O O X X 変数の使用状況 O --- --- --- O O
デバッグウィンドウでも多次元配列変数の中身をテキストに出力できますが、このモジュールで追加される命令を使えばより柔軟なデバッグ作業、確認作業が可能になるはずです.
※あくまでも、デバッグ用、確認用としてお使い下さい.
-
多次元配列変数に連続代入を行う
setarray
命令 (由来 : setting array)動作内容 \ 型 label str double int struct COM object 連続代入 O O O O X X 増減機能 X O O O X X -
ラベル型、文字列型、実数型、整数型の多次元配列変数への連続代入が可能.
-
実数型、整数型では代入時に増減値を指定することで値を変化させることが可能.
-
文字列型の場合はインデックスの付与として機能します.
機能(Function)
追加される使用可能命令・関数
// 多次元配列変数の書き出し
//
// p1 : 中身を受け取る文字列型変数
// p2 : 多次元配列変数
// p3 : コメント(省略可)
priarray p1, p2, p3
// 多次元配列変数一括代入
//
// p1 : 代入先の配列変数
// p2 : 代入したい値 (label, str, double, int)
// p3 : indexフラグ(=0)
// p4 : 増減値 (str, double, int)
setarray p1, p2, p3, p4
使用方法
ldim ary0, 4, 4, 4
sdim ary1, 64, 5, 5, 5, 5
ddim ary2, 10
dim ary3, 5, 5
// setarray <代入先の配列>, <代入値>, <インデックス使用フラグ(0:off, 1:on)>, <増減値>
setarray ary0, *main // ラベル型には増減機能は使えません。連続代入のみです
setarray ary1, "ABCDE", 1, 1 // 文字列の場合は、ABCDE, ABCDE1, ABCDE2, ABCDE3, ...
setarray ary2, 0.0, 1, 0.125 // 初期値: 0.0, 増減値: +0.125
setarray ary3, 10, 1, -1 // 初期値: 10, 増減値: -1
// priarray <中身を受け取る文字列型変数>, <多次元配列変数>, <コメント(省略可)>
priarray hyouji, ary1, "文字列にインデックスをつけています"
/*** any processing ***/
setarray aray1, "け―れー!!", 1, "(`・ω・´)ゞ"
priarray hyouji, ary1, "増減値に文字列を指定することも可能です"
priarray hyouji, ary3, "10, 9, 8, ... と減少していき、\n0, -1, -2, ...となっていきます"
// スクリプトの途中で内容をテキストファイルとして出力
notesel hyouji
notesave dir_cur + "\\check_array.txt"
一覧表示のサンプル
[ aa ] str(2) L=98
(0) = ちゃんと変数名も型も行数も表示できますよ
(1) = そう、マクロならね
[ 使い方 ] str(13) L=99
------
コメントの表示形式についてどうでしょうか?
デバッグ用、確認用と謳っているにも関わらず
コメントできないというのはどうなんだろう...
と思いまして。もう少し表示形式を練ってみます
------
(0) = 第一パラメータには文字列型変数を指定して下さい。
(1) = 第二パラメータに中身を見たい多次元配列変数を指定して下さい
(2) = こんなふうに変数名と要素の総数、マクロを呼び出した行数
(3) = そして各配列要素に対応した値が一覧として表示できます
(4) =
(5) = デバッグウィンドウで確認できるって?
(6) = ログ表示をテキストに出力できるって?
(7) = ......
(8) = うっあっあっうわぁぁぁぁぁぁぁぁぁぁぁぁぁぁ
(9) = あっ!!、でっ、でっ、でも明示的にスクリプト内でこういった事が
(10) = できるだけでも存在価値はあるんじゃない?
(11) = ほっ、ほら!
(12) = ログ出力みたいに上書きされずに済むよ(;゚∀゚)=3ハァハァ
[ aray1 ] double(3, 3) L=107
------
処理の前後に挟むと確認ができます
------
(0, 0) = 0.000000
(1, 0) = 0.000000
(2, 0) = 0.000000
(0, 1) = 0.000000
(1, 1) = 0.000000
(2, 1) = 0.000000
(0, 2) = 0.000000
(1, 2) = 0.000000
(2, 2) = 0.000000
[ aray1 ] double(3, 3) L=112
------
増減機能のテストです
------
(0, 0) = 0.000000
(1, 0) = 0.125000
(2, 0) = 0.250000
(0, 1) = 0.375000
(1, 1) = 0.500000
(2, 1) = 0.625000
(0, 2) = 0.750000
(1, 2) = 0.875000
(2, 2) = 1.000000
[ aray2 ] str(3, 2, 1) L=115
(0, 0, 0) =
(1, 0, 0) =
(2, 0, 0) =
(0, 1, 0) =
(1, 1, 0) =
(2, 1, 0) =
[ aray2 ] str(3, 2, 1) L=117
------
増減機能は文字列に対してはインデックス付与として機能します。
------
(0, 0, 0) = *main
(1, 0, 0) = *main1
(2, 0, 0) = *main2
(0, 1, 0) = *main3
(1, 1, 0) = *main4
(2, 1, 0) = *main5
[ aray2 ] str(3, 2, 1) L=119
------
増減値に文字列を指定することも可能です()
(`・ω・´)ゞ
------
(0, 0, 0) = ABCDEFG
(1, 0, 0) = ABCDEFG(`・ω・´)ゞ
(2, 0, 0) = ABCDEFG(`・ω・´)ゞ(`・ω・´)ゞ
(0, 1, 0) = ABCDEFG(`・ω・´)ゞ(`・ω・´)ゞ(`・ω・´)ゞ
(1, 1, 0) = ABCDEFG(`・ω・´)ゞ(`・ω・´)ゞ(`・ω・´)ゞ(`・ω・´)ゞ
(2, 1, 0) = ABCDEFG(`・ω・´)ゞ(`・ω・´)ゞ(`・ω・´)ゞ(`・ω・´)ゞ(`・ω・´)ゞ
[ aray4 ] int(4, 3, 2, 1) L=133
------
負の値も指定可
------
(0, 0, 0, 0) = 100
(1, 0, 0, 0) = 90
(2, 0, 0, 0) = 80
(3, 0, 0, 0) = 70
(0, 1, 0, 0) = 60
(1, 1, 0, 0) = 50
(2, 1, 0, 0) = 40
(3, 1, 0, 0) = 30
(0, 2, 0, 0) = 20
(1, 2, 0, 0) = 10
(2, 2, 0, 0) = 0
(3, 2, 0, 0) = -10
(0, 0, 1, 0) = -20
(1, 0, 1, 0) = -30
(2, 0, 1, 0) = -40
(3, 0, 1, 0) = -50
(0, 1, 1, 0) = -60
(1, 1, 1, 0) = -70
(2, 1, 1, 0) = -80
(3, 1, 1, 0) = -90
(0, 2, 1, 0) = -100
(1, 2, 1, 0) = -110
(2, 2, 1, 0) = -120
(3, 2, 1, 0) = -130
[ v ] struct(2) L=141
------
エラーレポート機能のテストです
you tried to enter a value into unsupported variable types
->name:[ ie ] line:136
->name:[ ie2 ] line:137
->name:[ v ] line:140
------
(0): 1 [0x7493a0]
(1): 1 [0x7493b0]
a = 15
b = 3.140000
c(0) = 初めてのモジュール変数です。
c(1) = 大丈夫かな?(;゚∀゚)=3ハァハァ
a = 12345
b = 9.876500
c(0) = こんな風にモジュール型変数も表示できたらいいなぁ~
c(1) = 無理かぁ~w
[ v2 ] struct(1) L=149
(0): 2 [0x7488f8]
[ v ] struct(4) L=150
------
モジュール変数の使い方まだよくわかっていませんね
------
(0): 1 [0x7493a0]
(1): 1 [0x7493b0]
(2): 1 [0x7493c0]
(3): 1 [0x7493d0]
導入方法(Introduction)
.
├── 02_myarray.hsp
│
├── 02_myarray
│ ├── 02_myarray.hs
│ ├── 02_myarraysmpl.hsp
│ └── 02_myarray.txt
│
├── README.md
├── README.html
└── License.txt
-
02_myarray.hsp をユーザースクリプトのディレクトリか、HSP のインストールディレクトリ下の commonフォルダ内において、02_myarray.hspをインクルードしてください。
例) hsp36/common/02_myarray.hsp
-
02_myarrayフォルダをHSPのインストールディレクトリ下にある doclibフォルダ内に02_myarrayフォルダごと 置いて下さい。サンプルファイルもそのままで構いません。
例) hsp36/doclib/02_myarray
必要環境(Environment)
- Windows10, 11
- HSP3.6以上
使用言語(Coding Language)
開発環境(Development environment)
- Windows11 Pro 22H2 x64
- Hot Soup Processor 3.7beta4
- Visual Studio Code ver 1.74
LICENSE
本ソフトウェアおよび関連文書のファイル(以下「ソフトウェア」)の複製を取得するすべての人に対し、ソフトウェアを無制限に扱うことを無償で許可します。
これには、ソフトウェアの複製を使用、複写、変更、結合、掲載、頒布、サブライセンス、および/または販売する権利、およびソフトウェアを提供する相手に同じことを許可する権利も無制限に含まれます。
ソフトウェアは「現状のまま」で、明示であるか暗黙であるかを問わず、何らの保証もなく提供されます。ここでいう保証とは、商品性、特定の目的への適合性、および権利非侵害についての保証も含みますが、それに限定されるものではありません。
作者または著作権者は、契約行為、不法行為、またはそれ以外であろうと、ソフトウェアに起因または関連し、あるいはソフトウェアの使用またはその他の扱いによって生じる一切の請求、損害、その他の義務について何らの責任も負わないものとします。
謝 辞(SPECIAL THANKS)
- HSPTV!掲示板の皆様
このモジュールは HSPTV!掲示板 の皆様によって支えられております。
この場を借りて感謝申し上げます。誠に有難うございます。
項 目 | 掲示板情報 |
---|---|
Kind | 宣 伝 |
Date | 2022/11/26 |
Person | Yuzranium |
Pontent | 多次元配列変数を複数行文字列に |
今後の予定
- ヘルプファイルの作製
- ヘッダファイルのコメントの充実
- サンプルファイルのコメントの充実
- 配列変数への一括代入命令の追加
- ラベル型の表面上の文字列にインデックスをつけるのが私の夢です()
- 次元要素の書き出し範囲の指定ができるようにしたい
(4次元配列をすべて書き出すとなるとユーザーのPCに膨大な負荷がかかる恐れがあるため)
更新履歴(Change Log)
ver 0.25
2022/12/07
書き出し命令 priarray命令
にコメント機能の追加
一括代入命令 setarray命令
に増減機能の追加
一部コードの改修
ver 0.24
2022/12/05
多次元配列変数への一括代入setarray命令
の追加
値の書き出しができないラベル型、モジュール型、COMオブジェクト型を指定した際に変数の使用状況(varuse関数
)とエラーレポートを表示する機能を追加
ver 0.23
2022/12/04
書き出し方法の大幅改良
一部スクリプトの効率化
ver 0.22
2022/12/01
配列情報の表示方法の変更
ver 0.21
2022/11/29
パラメーターの修正
ver 0.20
2022/11/26
ヘッダファイル、サンプルファイルの修正
ver 0.10
2022/11/25
初公開