Top 上へ 目次
Ver.12β1と移行の注意事項
えらい難産で未解決の問題も少し残っていますが、生存報告がてらひっそりとリリースです。
(ネットワークのフォルダーの自動更新で対象外のタブが更新されてしまう現象が発生しており、現在も調査中です)
ぶっちゃけた話をすると、Ver.11以前も同じ問題があるんじゃね?という気もしますので、あまり大差なかったりします。
まず、パッケージについての告知です。
CPUコア数に対してリニアに使用数が変化するようになったので、シングルスレッド版の提供がなくなります。
16コア以上の環境で動作が改善してるような気がしますが、そんな贅沢な環境は手元に無いので分かりません。
AVX2使用版はインラインアセンブラの部分の移行が量が多過ぎてめんどくさい行き詰まったので、しばらくお休みです。
せめて組み込み関数にして置けばよかったんですが、移植性が最悪でしたorz
今回の移行に関する注意事項はこちらです。
Ver.12への移行に関する注意事項
ざっくりと3点です。
1.初回インストール時/更新時ともにSetting.exeを実行してください。
2.初回インストール時/更新時のどちらのルートでも、途中でランタイムの確認画面が表示されるので確認してください。
必ず更新が必要とは限りませんが、ご注意ください。
例えばWindows10で1803あたりでWindows updateの更新をとめてたりすると(Visual studio 2019のリリース前)、ランタイム更新が必要です。
3.スクリプトの代入文でごく普通の四則演算が当たり前にできるようになったというのがありますが、ここまで使い込んでる人はほとんどいないと思います。
が、使っている方は、ご注意ください。
細かいところで、Asr.exeと同じディレクトリにLgFunc.dllというDLLが追加されていますが、C++17に未対応のWindowsAPIを本体から分離したというものですのですので、あまり気にしないでください。
四則演算のあたりの新しいヘルプからの抜粋です。
変数の四則演算
代入式の四則演算
代入文で渡された値が、全て半角の数字、ピリオド、演算子、スペースのみで構成されている場合に、数式として認識して計算処理を行います。
数式内には、四則演算と剰余算が行え、演算子として+,-,/,*,%の5種類が使用できます。
また計算式の優先順位を指定する方法として、(,)が使用できます。
なお内部は全てdouble(倍精度浮動小数点型)で計算しているので、数式内に小数を含めることが可能です。
【書式】
変数 = 数式の文字列
※前処理として、変数や環境変数などの置換、16進数→10進数に変換されます。
※全て半角の数字、ピリオド、演算子「+,-,/,*,%,(,)」、スペースのみで構成されている場合に、数式として認識されます。
※数式として不整合がある場合は、文法エラーになります。(暗黙の乗算は使用できません)
OK $ans$ =(1/2 + 0.5) * 2
OK $ans$ =(a/b + c) * d(a,b,c,dが変数、bが0でないことが条件)
NG $ans$ =)1/2 + 0.5) * 2(括弧の向きがそろってない)
NG $ans$ =(1/2 + 0.5) ** 2(掛け算の記号が2こ続いている)
NG $ans$ =2(1/2 + 0.5)(暗黙の掛け算記号の省略はできません)
※0による除算(/)、剰余(%)は算術エラーになります。
※計算結果はprintf関数などで使われる"%f"(桁数が未指定の実数表記)で書式化しています。
有効桁数にはご注意ください。
なお整数の場合は小数点以下の記述を削除、書式化で付与される余分な末尾の0は削除されます。
例)3.0000000→3、1.3010000→1.301
2項式の四則演算
2つの値のみを計算する目的の書式で、前述の「代入式の四則演算」が実装される前に使用されていたもので、互換性のために残されています。
ただ、文字列連結はこちらにしか存在しておりませんので、ご注意ください。
(変数の置換で代用は可能です)
- 変数に数字が格納されている場合は、加減乗除が行えます。(文字列が格納されている場合や空文字は0とみなされます)
- 整数演算のみ対応しており、小数点以下は切り捨てられます。
- 0で除算を行った場合は、除算の結果も、剰余も0になりますのでご注意ください。
- 算術演算で数字の代わりに文字を記述すると、演算子とみなされず代入文となります。
$test$ = /H("/H"が代入される)
$test$ = /6($test$を6で割る)
- 本演算は、置換マクロ展開後に処理されます。
- 通常は行の前後のスペースは除去して処理されますが、文字列連結の場合のみ前後ともスペースが除去されません。
コマンドラインオプションなどを連結していくような用途を想定しているためです。
演算子
+・・・加算
-・・・減算
*・・・乗算
/・・・剰算
%・・・剰余
&・・・文字列連結
【例】
Var $初期値$ = 10
//初期化時に変数同士に代入の例
Var $hoge$ = 初期値
//変数同士の代入例
$hoge$ = $初期値$
//加算
$hoge$ = + 5
MessageBoxOK=$hoge$
//減算
$hoge$ = - 4
MessageBoxOK=$hoge$
//乗算
$hoge$ = * 10
MessageBoxOK=$hoge$
//除算
$hoge$ = / 2
MessageBoxOK=$hoge$
//剰余
$hoge$ = % 2
MessageBoxOK=$hoge$
//文字列連結サンプル1(スペース、環境変数、置換マクロを埋め込んでいる例)
$hoge$ = & = 1 Answer Text %ProgramFiles% ?NowDir? "?any?"
MessageBoxOK=$hoge$
//文字列連結サンプル2(リストで選択したファイルを、"で括ってスペース区切りした文字列の作成)
var $SelFiles$
for
$SelFiles$ = & "?selfile?"
next
MessageBoxOK=$SelFiles$