Top



 今回はスクリプトの仕様が若干変わっているので、動作確認目的のβ版です。



Ver.10.1.9.3

ダウンロード

●スクリプト仕様の追加と変更
・if文の論理式の評価を関数化した(whileの論理式への流用目的)
・do/while/continue/breakによる繰り返し構文を追加
・varコマンドで配列の宣言の仕様を追加
・varコマンドで連想配列の宣言の仕様を追加
・変数の置換を再帰展開するように変更(最大10回)
・for/next、do/whileのループ外で、continue,breakが出現したらエラーになるように変更

●タグ入力ダイアログ
・タグ入力ダイアログをサイズ可変に変更
・対象ファイルの表示をディスエブルからReadOnlyに変更
・対象ファイルの表示を複数行表示に変更(ダイアログサイズを変更すると自動調整する)

●テキスト文字コード変換コマンド
・複数選択可能にし、一括でコード訂正できるようにした
・全て選択ボタンを追加
・改行コードの変更は文字種によって信頼性が低下するので封印した
・文字コード検出の優先コードページをSJISからシステムのデフォルトコードページに変更
・テキスト文字コード変換の検証として、As/R本体のソースコードを全てUNICODEに変換した

●文字コード判別エンジン
・OSのエンジンが頻繁に間違えるので、前処理でUTF8/16/32のBOM判定をするようにした
※本体プレビュー/サムネイル、テキスト文字コード変換コマンド、テキストビューアに影響

●不具合修正
・設定でツールバーアイコンのサイズを大きくした場合、リスト下部のボタン幅とエリア高さの計算が不正になる不具合の修正


Whileの論理式が正の場合にdo-whileの間を繰り返し処理します。
※上級者向けの機能なので無限ループを作ってしまったらタスクマネージャから強制終了させてください
【書式】
do
(繰り返し処理)
while 論理式
【例】
do
  do
    i =+ 1
    j =+ 1
  while j < 3
  j = 0
while i < 9
messageboxok=i,j

※forとwhileは直前に見つけたdoを対象にジャンプをするので、for文とクロスするような推奨しません。
ループで戻ったときにifブロックと認識できずに、else句の処理2を実行してしまう例

※if文のブロックとクロスすることは可能ですが、2回目の呼び出しがifブロックの外と見なされるので不適切な記述となります。
if j == 0
 do
 処理1
else
 do
 処理2
endif
while i == 0



・varコマンドで配列と連想配列の宣言の仕様を追加
・置換の入れ子を可能な限り展開するようにした
 この仕様変更は、「a[a[a[0]]]」のような配列の中の入れ子の変数を展開する目的です。

【書式】
配列の宣言
var 変数名[配列の個数を示す数値]
ハッシュの宣言
var 変数名[任意の文字列]

【例】
var a[10]
 →a[0]〜a[9]まで10個変数を確保
var a[hoge]
 →hogeを添え字としてa[hoge]を変数として確保

※添え字を使う場合の注意事項
1.[]が閉じてない場合や、添え字を示す[]の後ろに文字が続く場合は1つの変数として認識します。
var a[10
 →「a[10」という1つの変数と認識
var a[10]a
 →「a[10]a」という1つの変数と認識

2.配列の宣言で代入式は使えません
 var a[10]=テキスト
 →エラー
 var a[hoge]=テキスト
 →OK
 このように宣言した場合、a[10]は添え字の範囲外のため未定義のエラーになります。
 ハッシュの場合は通常の変数と同じように初期化が行えます。

3.代入の際の添え字のスペースは除去して格納されますが、ifやwhileなどの条件式や、置換を行う際にはスペースを除去してください。
a[ hoge ]=hoge
 →a[hoge]に格納
if a[ 0 ]==ほげ
 →文字列の「a[ 0 ]」として認識されるため変数として展開されない
MessageBoxOk=a[ 0 ]
 →文字列の「a[ 0 ]」として認識されるため変数として展開されない

4.宣言時の添え字に0を指定した場合はハッシュ宣言と見なされるのでエラーになりません。

5.宣言時には固定値を指定してください。変数は使用できません。

6.一度宣言した配列のサイズは変更できません。

7.値を読み出す場合の添え字には、変数が使用可能です。
例
var a[ほげ]
var a[10]
var z=ほげ
a[ほげ]=ほげ?
a[0]=0個め
a[1]=1個め
z=ほげ
MessageboxOk=a[z]
z=1
MessageboxOk=a[z]