Skip to content

Releases: YUZRANIUM/02_myarray

myarray

01 Apr 08:26
f3133ed
Compare
Choose a tag to compare

マイ・アレイ GitHub release (latest by date including pre-releases)

多次元配列変数をなんやかんやする、なんてことないモジュール

不具合報告や要望等は 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_aryary1 の変数型と各次元要素数で初期化
  • 文字列型、実数型、整数型のみ対応

その他
  • 配列情報取得 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命令に修正を加え、一般公開命令とした

Read more

myarray

21 Jan 07:16
5e4b600
Compare
Choose a tag to compare

マイ・アレイ GitHub release (latest by date including pre-releases)

多次元配列変数をなんやかんやする、なんてことないモジュール

不具合報告や要望等は 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_aryary1 の変数型と各次元要素数で初期化
  • 文字列型、実数型、整数型のみ対応

その他
  • 配列動作制御 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)

      ほぼすべての命令・関数の中核を担うイテレータなどを内部命令化・関数化し、定義する本...
Read more

myarray

16 Jan 11:53
6764a0d
Compare
Choose a tag to compare

マイ・アレイ GitHub release (latest by date including pre-releases)

多次元配列変数をなんやかんやする、なんてことないモジュール

不具合報告や要望等は 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

14 Jan 07:06
Compare
Choose a tag to compare

マイ・アレイ GitHub release (latest by date including pre-releases)

多次元配列変数をなんやかんやする、なんてことないモジュール

不具合報告や要望等は 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

20 Dec 03:04
Compare
Choose a tag to compare

マイ・アレイ GitHub release (latest by date including pre-releases)

多次元配列変数をなんやかんやする、なんてことないモジュール

不具合報告や要望等は 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

29 Nov 03:26
Compare
Choose a tag to compare
02_myarray Pre-release
Pre-release

マイ・アレイ GitHub release (latest by date including pre-releases)

多次元配列変数を簡単に書き出す、なんてことないモジュール

不具合報告や要望等は 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
初公開