|
配列サイズを最初に大きく宣言したものをforでデータをいれていき、余分なサイズ分を削除する関数を利用したのですが、次元すうが合いませんと表示されます。何か良い方法はないでしょうか?
(メイン)
CALL C:\Users\Desktop\共通化.uws dim 配列1[20]
for i = 0 to 10 配列1[i]=i next
配列1=COMMON.hai_sizeawaseru(配列1) print "配列1サイズは"+resize(配列1)//配列サイズを10にしたい --------------------- 下記は、classファイルに入力。
function hai_sizeawaseru(配列1[]) b=join(配列1,"<#CR>",true)
a1=split(b,"<#CR>")//a1の配列変数作成、現在入っているデータサイズを得る為 result=resize(配列1,resize(a1))//aの配列変数を現在のデータ配列サイズresize(a1)に変更 fend
|
No.4624 2017/10/31(Tue) 10:33:09
|
☆ Re: 配列サイズの調整関数について / しろまさ |
|
|
resize(配列1,resize(a1)) の戻値は配列の上限値。配列ではない。
配列を戻したい場合は参照引数を使用する。 function hai_sizeawaseru(var 配列1[])
|
No.4627 2017/10/31(Tue) 11:16:49
|
|
☆ Re: 配列サイズの調整関数について / さやか |
|
|
メインでprocedureを書いた場合だとちゃんと配列1サイズは10が出力される。なぜ、COMMON.hai_sizeawaseru(配列1)がうまくいかないのでしょうか? --------------------- ◯
CALL C:\Users\aruke\Desktop\ショットカット構文一覧\00_共通化.uws dim 配列1[20]
for i = 0 to 10 配列1[i]=i next
hai_sizeawaseru(配列1) print "配列1サイズは"+resize(配列1)
procedure hai_sizeawaseru(var 配列1[]) b=join(配列1,"<#CR>",true)
a1=split(b,"<#CR>")//a1の配列1作成、現在入っているデータサイズを得る為 resize(配列1,resize(a1))//aの配列変数を現在のデータ配列サイズresize(a1)に変更
fend --------------------- × CALL C:\Users\Desktop共通化.uws dim 配列1[20]
for i = 0 to 10 配列1[i]=i next
COMMON.hai_sizeawaseru(配列1) print "配列1サイズは"+resize(配列1)
//次元数が合いません。b=join(配列1,"<#CR>",true)と表示される。 --------------------- 共通化.uws
procedure hai_sizeawaseru(var 配列1[]) b=join(配列1,"<#CR>",true)
a1=split(b,"<#CR>")//a1の配列1作成、現在入っているデータサイズを得る為 resize(配列1,resize(a1))//aの配列変数を現在のデータ配列サイズresize(a1)に変更 fend ---------------------
|
No.4630 2017/10/31(Tue) 18:43:55
|
|
☆ Re: 配列サイズの調整関数について / しろまさ |
|
|
// 不明ですね。こちらでは正しく表示されます。 // 今までの話の流れで、どこかのPublic消し忘れてるとかありません?
dim 配列1[20]
for i = 0 to 10 配列1[i]=i next
COMMON.hai_sizeawaseru(配列1) print "配列1サイズは"+resize(配列1)
//次元数が合いません。b=join(配列1,"<#CR>",true)と表示される。 Module COMMON procedure hai_sizeawaseru(var 配列1[]) b=join(配列1,"<#CR>",true)
a1=split(b,"<#CR>")//a1の配列1作成、現在入っているデータサイズを得る為 resize(配列1,resize(a1))//aの配列変数を現在のデータ配列サイズresize(a1)に変更 fend EndModule
|
No.4631 2017/10/31(Tue) 20:11:02
|
|
☆ Re: 配列サイズの調整関数について / さやか |
|
|
しろまさ様、返信ありがとうございます。 共通化.uws内に色々な関数を入力しているのですが、下記を修正したら解決しました。 procedure hai_sizeawaseru(var 配列1[])前にも色々関数が入力されていて、変数名をbやa1で安易に決めて入力していたのでこれが影響していたようです。 共通化.uws内の変数名とかも慎重に決める必要があると認識できたのですが、皆様は変数名はどのように決めていますか? パスは、path、ファイル名はfileとかガチガチに決めて使用されていますか?
b=join(配列1,"<#CR>",true)→b_naiyou=join(配列1,"<#CR>",true) //変数名を変更
a1=split(b_naiyou,"<#CR>")//→a1hai=split(b_naiyou,"<#CR>") //変数名を変更
|
No.4632 2017/10/31(Tue) 21:53:25
|
|
☆ Re: 配列サイズの調整関数について / しろまさ |
|
|
私もそういう問題に苦しんだので、あまりメイングローバルは使わなくしたのです^^
それこそ好みの世界ですが、最近のマイルールは dn_ ディレクトリ名 fn_ ファイル名 dp_ ディレクトリパス fp_ ファイルパス up_ uwsパス ep_ Exeパス a_ 引数 o_ オブジェクト el_ エレメント s_ 文字列 n_ 数字 等々、頭に種類 _ より下は識別できる略名を付けてます。
更にModule内変数は上記に加え頭に _ を付けてます(しゅんさんのマネ)
|
No.4634 2017/11/01(Wed) 08:25:52
|
|
☆ Re: 配列サイズの調整関数について / さやか |
|
|
スクリプトを書く時に変数って面倒なので,aとか1文字で書いてしまうくせがあるので、しろまさ様のマイルール参考にさせて頂きます。ありがとうございました。
|
No.4636 2017/11/01(Wed) 10:43:16
|
|