投稿
けいさんへの私信のような内容なので ここのスペースを使うのが申し訳ないですが… PUSH,POP,UNSHIFT,SHIFTを使うとメモリを余分に消費することがわかり 処理の修正範囲を狭めるために関数を独自実装してみました 変数名を指定して数値配列か文字列配列かを意識せず使えるよう実装したのですが これを実装するにあたり ここで公開されたけいさんの知識が大いに役立ちました ありがとうございます (画像はその処理の一部です)
3そうだね
プレイ済み
返信[1]
親投稿
けい kei0baisoku
引数の型の自動判定でしょうか? お役に立てたようで嬉しいです(^O^) と言っても私はmyu314さんともやしもどきさんのやり取りをまとめただけですので少々胸が痛みますが(^^; 、コメントの中に埋もれさせるには惜しい情報だと思いましたので、投稿してよかったです(´ω`)
0そうだね
プレイ済み
返信[2]
親投稿
>けいさん いえ、今回は配列を扱うため単純に変数名での判定にしておきました VAR("変数名")で変数にアクセス可能だという投稿を見ていたからこそ実現出来たものです 知らなかったら関数が倍以上になってたかもしれません(^^;) 本当にありがとうございました
0そうだね
プレイ済み
返信[3]
親投稿
けい kei0baisoku
ああ、豆知識みたいなのをまとめて投稿したことがありましたね(^O^) あれですか! とんでもないです。そしてそっちはてらこやさん提供の情報だったりします(^^; それもコメントの中に埋もれていましたので……… 公式のリファレンスとかあまり整備された環境じゃなくて皆さんが試行錯誤されてますので、ユーザ間で情報を共有するのは有用ですね。
0そうだね
プレイ済み
返信[4]
親投稿
>けいさん それですそれです 埋もれたままだと気づけなかったと思うので助かりました
0そうだね
プレイ済み
返信[5]
親投稿
Godot orz_127
PUSH使わん方が良いですか? DIM A[0]で配列宣言してPUSHしていく方法、つい便利なので使ってしまつていますが^^; あらかじめデータ数をもらって、先に動的にそのサイズで配列宣言した方が良いのかな^^;
0そうだね
プレイ済み
返信[6]
親投稿
>Godotさん PUSHなどのメモリーリークは一応文字列配列で起こってるようなので数値配列なら大丈夫(かも)しれません。 気になったらプログラム上でFREEMEMを使って調べつつ利用してみるといいのかもしれません。
0そうだね
プレイ済み
返信[7]
親投稿
>Godotさん 自分が制作中のRMG IMEにFREEMEMを常時表示するようにしたら 思いのほかガツガツ減っていくのが目に見えたので処理を変更したのですが 私自身では数値か文字列かを意識しての修正ではなかったので未検証ですね 数値なら大丈夫だったのかな(^^;) >でんぺんさん コメントでのフォローありがとうございます
0そうだね
プレイ済み
返信[8]
親投稿
Godot orz_127
回答ありがとうございます。 文字列の配列は気を付けなければならないんですね。 でも… 普通に文字の配列で使っている^^; ちょっと気を付けて見ます。
0そうだね
プレイ済み
返信[9]
親投稿
>Godotさん もしよければですが 作った関数アップしましょうか? テストように作ったファイルが残っているのですぐ上げられます
0そうだね
プレイ済み
返信[10]
親投稿
Godot orz_127
あ、多分大丈夫です。 必要になったら実装した方を参考にさせて頂きます。 お気遣いどうもです^^
0そうだね
プレイ済み
返信[11]
親投稿
ちなみに、一応作った関数の使い方を書いておくと 前提として配列変数とインデックスを関連付けるためのIF文に変数名をそれぞれ追加して TXT$=POP(ARR$)だったら TXT$=POPARR("ARR$")に変えるだけで使えます PUSH ARR$,TXT$も PUSHARR "ARR$",TXT$に変えるだけ LEN(ARR$)は ARRLEN("ARR$")で使えます が、紐付けたインデックスがそのまま要素数を示しているので ARRLENはつかわなくてもいいかもです 新規に配列を宣言して使い始める箇所だけは 自分でインデックスに0を代入しないといけないですが それ以外はあまり変更せずにお使いいただけます
0そうだね
プレイ済み
返信[12]
親投稿
了解です(^^)
0そうだね
プレイ済み