mieki256's diary



2023/10/21() [n年前の日記]

#2 [hsp] HSPの配列について勉強中

プログラミング言語 HSP の配列の仕様について確認中。

HSPにおける配列は、最初に何個必要になるか要素数を宣言しておかないといけないのだけど、その最大個数を超えて要素を追加できないものかなと。要は、動的に配列の要素数を変更していきたい。Python なら append() でそういうことができた気がする。Ruby なら push() だっただろうか。

環境は Windows10 x64 22H2 + HSP 3.6。

あちこちの解説記事を見ると、大きいインデックス値を指定すれば自動で配列がそこまで増える、という記述も見かけたのだけど。実際試してみるとエラーになる。

_array_add.hsp
; 一度確保した配列に要素を追加できるか確認
; 要素の追加は無理っぽい。エラーになる

    onkey goto *jobend

    dim a, 5, 4
    repeat 5
        a(cnt, 0) = cnt
        a(cnt, 1) = cnt
        a(cnt, 2) = cnt
        a(cnt, 3) = cnt
    loop

    ; エラーになる
    ; a(5, 0) = 5

    repeat length(a)
        pos 4, cnt * 24
        mes "a(" + cnt + ", 0)=" + a(cnt, 0)
    loop
    stop
    
*jobend
    end

やはり、最初に用意した要素数を超えて、要素を増やすことはできないようだなと…。

となると…。一度、仮で、十分に要素数が多い配列を用意して、そこに値を入れていって、必要な要素数が判明した時点で別の配列を確保して、必要な分だけ値をコピーする…。そんな感じの処理しか思いつかない。もっと上手い方法はないのだろうか。

以上です。

過去ログ表示

Prev - 2023/10 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project