JW_CADの「外部変形」を日本語プログラム言語「なでしこ」で
グーグルに公開してるのですが公開からコピペすると行間に毎行空白行が出来てしまってます
空白行があっても動くようですが対処方法が分かるまではこのままです
下記に個々のDL先貼り付けました
①外変なでしこ説明プログラム.bat→ https://d.kuku.lu/mf2g8ymcs
①外変なでしこ説明プログラム.nako→ https://d.kuku.lu/8gpyc6u52
②外変文字間隔変換.bat→ https://d.kuku.lu/jg74eye86
②外変文字間隔変換.nako→ https://d.kuku.lu/tfywdeb68
③外変文字変換単語化.bat→ https://d.kuku.lu/uk5w6yj72
③外変文字変換単語化.nako→ https://d.kuku.lu/ps5636btd
1外部変形とは?
Jw_cad に書いた線や点や文字などを外部変形で「JWC_TEMP.TXT」に情報を書き出して、何か(今回は、なでしこ)で編集して戻すと反映される仕組み
なぜ「なでしこ」?
やりたい事がありJw_cad の外部変形で使える物が出来れば言語は何でもよかったんです
(自己流なんで推奨文法にも沿ってないし動くと言うだけ)
使ってみた感想
プログラムとしての約束は他の言語と同じだと思うが、日本語表記で見やすいが参考例が少ないから文法が分からない時もある
無理に日本語表現ぽく書くよりプログラム記述形式で書く方が見やすいし、後ろにコメント注釈付けると尚良い
以下はバッチファイルとなでしこのプログラム
↓↓↓ 外変 .batの記述サンプル ↓↓↓
REM
@echo off
REM #jww
REM #hf
REM #cd
REM #h4
REM #hp
REM #e
start /HIGH /WAIT 外変テスト.exe
↑↑↑ ここまで ↑↑↑
日本語プログラム言語「なでしこ」V1をインストールして立ち上げ、下のプログラムをコピペして「保存後」に「実行ファイル作成」→「作成」で
上のバッチファイルと同じフォルダーに(外変テスト.exeと名付けて保存)すると「同プログラム」と「plug-insのファイル」が同フォルダーに出来ます
(配布時には〇〇〇.exeと作成時に出来た「plug-insのファイルの中身」が必要です)
なでしこは「背景色に黒を用いる」に設定すると格段に見やすくなります
実行時にコマンドプロンプトが表示の邪魔しますがそれのタスクバー右クリックのプロパティで少し小さくすると良いでしょう
※サイズ調整は各5程度までにしておかないとプロパティが呼べなくなって積むのでほどほどに 尚、非表示にする方法は判りませんでした
プログラム文をドラッグして移動させる事も出来ます
この下はなでしこで作った外変プログラムで説明用に作ったので自分のごちゃごちゃプログラムよりはスマートになってると思います
↓↓↓ なでしこのプログラムはここの下から ↓↓↓
#JWW外部変形をなでしこで作る説明プログラム 作成2023年2月26日
# なでしこのバージョン:1.587 俗にV1と言うインストールして使う言語です
# *関数の中で宣言された変数は、ローカル変数となりますが、関数の中でも宣言せずに使った変数はグローバル変数となります。
# *私は宣言せずに使ってます。
!母艦設計=「母艦の可視はオフ」
めいんぷろ; 終わり # めいんぷろ関数を呼出しその処理が終わったら終わり
●めいんぷろ
#################### JWC_TEMP二次元配列取り込み ####### JWW_CADデータ取り込み ############
線数=0; 円数=0; 点数=0; 複写X=0; 複写Y=0 # 名付けた変数達に初期値を代入
「横への移動値は?」と尋ねる; 複写X=それ; 「縦への移動値は?」と尋ねる; 複写Y=それ
「JWC_TEMP.TXT」を毎行読んで反復 # 一行ずつ読込む
対象の0から1文字抜き出す; もし、それが「 」ならば; 対象を「 」で区切る ; 線数=線数+1 # 対象が線データならば「 」で区切る
L【線数,0】=それ【1】; L【線数,1】=それ【2】 # 線データは2点座標で表される (X1;Y1)
L【線数,2】=それ【3】; L【線数,3】=それ【4】 # (X2;Y2の並び)
対象の0から3文字抜き出す; もし、それが「ci 」ならば; 対象を「 」で区切る ; 円数=円数+1 # 対象が円データならば「 」で区切る
C【円数,0】=それ【1】; C【円数,1】=それ【2】; C【円数,2】=それ【3】 # 円データは1点座標と半径で表される (X1;Y1;半径の並び)
対象の0から3文字抜き出す; もし、それが「pt 」ならば; 対象を「 」で区切る ; 点数=点数+1 # 対象が点データならば「 」で区切る
P【点数,0】=それ【1】; P【点数,1】=それ【2】 # 点データは1点座標で表される (X1;Y1の並び)
#################### データー編集加工 ####### JWW_CADデータ作成 #############
出力先ファイルは「JWC_TEMP.TXT」; 出力先初期化 # クリアされた「JWC_TEMP.TXT」にこれから書込む
(線数)回 # 受取った線の数の回数分繰返す
X1=L【回数,0】+複写X; Y1=L【回数,1】+複写Y # 回数は回の現在値が入れ替わる
X2=L【回数,2】+複写X; Y2=L【回数,3】+複写Y; 線出力 # 左の例題は線を複写XYを加算して線出力関数呼び出し
(円数)回
X1=C【回数,0】+複写X; Y1=C【回数,1】+複写Y; R1=C【回数,2】; 円出力 # 上で読込んだ二次元配列に横と縦の移動を加算して下の関数で文章化
(点数)回
X1=P【回数,0】+複写X; Y1=P【回数,1】+複写Y; 点出力
#################### めいんぷろはここまで ####### 下は出力の関数 #############
●線出力
「 」&X1&「 」&Y1&「 」&X2&「 」&Y2を一行出力 # JW_CADへ帰す文を出力
●円出力
「ci 」&X1&「 」&Y1&「 」&R1を一行出力
●点出力
「pt 」&X1&「 」&Y1を一行出力
↑↑↑ ここまでをなでしこにコピペして下さい ↑↑↑
#JWW外部変形をなでしこで作る説明プログラム 作成2023年2月26日
# なでしこのバージョン:1.587 俗にV1と言うインストールして使う言語です
# *関数の中で宣言された変数は、ローカル変数となりますが、関数の中でも宣言せずに使った変数はグローバル変数となります。
# *私は宣言せずに使ってます。
!母艦設計=「母艦の可視はオフ」
めいんぷろ; 終わり # めいんぷろ関数を呼出しその処理が終わったら終わり
●めいんぷろ
#################### JWC_TEMP二次元配列取り込み ####### JWW_CADデータ取り込み ############
線数=0; 円数=0; 点数=0; 複写X=0; 複写Y=0 # 名付けた変数達に初期値を代入
「横への移動値は?」と尋ねる; 複写X=それ; 「縦への移動値は?」と尋ねる; 複写Y=それ
「JWC_TEMP.TXT」を毎行読んで反復 # 一行ずつ読込む
対象の0から1文字抜き出す; もし、それが「 」ならば; 対象を「 」で区切る ; 線数=線数+1 # 対象が線データならば「 」で区切る
L【線数,0】=それ【1】; L【線数,1】=それ【2】 # 線データは2点座標で表される (X1;Y1)
L【線数,2】=それ【3】; L【線数,3】=それ【4】 # (X2;Y2の並び)
対象の0から3文字抜き出す; もし、それが「ci 」ならば; 対象を「 」で区切る ; 円数=円数+1 # 対象が円データならば「 」で区切る
C【円数,0】=それ【1】; C【円数,1】=それ【2】; C【円数,2】=それ【3】 # 円データは1点座標と半径で表される (X1;Y1;半径の並び)
対象の0から3文字抜き出す; もし、それが「pt 」ならば; 対象を「 」で区切る ; 点数=点数+1 # 対象が点データならば「 」で区切る
P【点数,0】=それ【1】; P【点数,1】=それ【2】 # 点データは1点座標で表される (X1;Y1の並び)
#################### データー編集加工 ####### JWW_CADデータ作成 #############
出力先ファイルは「JWC_TEMP.TXT」; 出力先初期化 # クリアされた「JWC_TEMP.TXT」にこれから書込む
(線数)回 # 受取った線の数の回数分繰返す
X1=L【回数,0】+複写X; Y1=L【回数,1】+複写Y # 回数は回の現在値が入れ替わる
X2=L【回数,2】+複写X; Y2=L【回数,3】+複写Y; 線出力 # 左の例題は線を複写XYを加算して線出力関数呼び出し
(円数)回
X1=C【回数,0】+複写X; Y1=C【回数,1】+複写Y; R1=C【回数,2】; 円出力 # 上で読込んだ二次元配列に横と縦の移動を加算して下の関数で文章化
(点数)回
X1=P【回数,0】+複写X; Y1=P【回数,1】+複写Y; 点出力
#################### めいんぷろはここまで ####### 下は出力の関数 #############
●線出力
「 」&X1&「 」&Y1&「 」&X2&「 」&Y2を一行出力 # JW_CADへ帰す文を出力
●円出力
「ci 」&X1&「 」&Y1&「 」&R1を一行出力
●点出力
「pt 」&X1&「 」&Y1を一行出力
↑↑↑ ここまでをなでしこにコピペして下さい ↑↑↑
ここから下は「・・・」による文字均等を任意サイズ文字に変更して文字間隔値で同様な表示にするバッチファイルとなでしこのソース
文字均等割り・・・を取り除き間隔で均等にするバッチファイル
REM #h3にしてるので、範囲内の文字データのみ外変用データ出力
外変実行後にマウスで範囲選択後→ 上のタスクバー「選択確定」をクリックする事で実行となります
↓↓↓ 外変 .batの記述サンプル ↓↓↓
REM
@echo off
REM #jww
REM #hf
REM #cd
REM #h3
REM #hp
REM #e
start /HIGH /WAIT 外変テスト.exe
↑↑↑ ここまで ↑↑↑
↓↓↓ なでしこのプログラムはここの下から ↓↓↓
#JWW外部変形をなでしこで作る説明プログラム 文字均等割り付けの・・・を文字間隔に変換 作成2023年3月2日 半角にも一応対応したが全角/半角混在には未対応
# なでしこのバージョン:1.587 俗にV1と言うインストールして使う言語です
# *関数の中で宣言された変数は、ローカル変数となりますが、関数の中でも宣言せずに使った変数はグローバル変数となります。
# *私は宣言せずに使ってます。
/*
--------------------------------------------------------------------------------------------------------------------------
配列変数 ll 0 l ① l ② l ③ l ④ l ⑤ l ⑥ l ⑦ l ⑧ l ⑨ l ⑩ l
--------------------------------------------------------------------------------------------------------------------------
幅 ll hcw l 2 l 2.5 l 3 l 4 l 5 l 6 l 7 l 8 l 9 l 10 l
--------------------------------------------------------------------------------------------------------------------------
高さ ll hch l 2 l 2.5 l 3 l 4 l 5 l 6 l 7 l 8 l 9 l 10 l
--------------------------------------------------------------------------------------------------------------------------
間隔 ll hcd l 0 l 0 l 0.5 l 0.5 l 0.5 l 0.5 l 1 l 1 l 1 l 1 l
--------------------------------------------------------------------------------------------------------------------------
ペンNO ll hcc l 1 l 1 l 2 l 2 l 3 l 3 l 4 l 4 l 5 l 5 l
--------------------------------------------------------------------------------------------------------------------------
も【字種】ll cn0-10 l 幅 l 高さ l 間隔 l ペンNO l 点点数 l 原文 l間隔増値 l lg l ly l l
--------------------------------------------------------------------------------------------------------------------------
*/
!母艦設計=「母艦の可視はオフ」
めいんぷろ; 終わり # めいんぷろ関数を呼出しその処理が終わったら終わり
●めいんぷろ
#################### JWC_TEMP二次元配列取り込み ####### JWW_CADデータ取り込み ############
字種=0; 点点数=0 # 名付けた変数達に初期値を代入
「JWC_TEMP.TXT」を毎行読んで反復 # 一行ずつ読込む
対象の0から4文字抜き出す; もし、それが「hcw 」ならば; 対象を「 」で区切る; 幅設定=それ; 続ける # 設定値展開 頭へ戻る
対象の0から4文字抜き出す; もし、それが「hch 」ならば; 対象を「 」で区切る; 高さ設定=それ; 続ける
対象の0から4文字抜き出す; もし、それが「hcd 」ならば; 対象を「 」で区切る; 間隔設定=それ; 続ける
対象の0から3文字抜き出す; もし、それが「hcc」ならば; 対象を「 」で区切る; ペン設定=それ; 続ける
対象の0から3文字抜き出す; もし、それが「cn"」ならば; 続ける # cn"なら頭へ戻る
もし、対象が「cn10」ならば; 対象=「cn00」 # 文字種10は下の計算で、1で拾われるので対策
字種=字種+1; も【字種,7】=0 # 二次配列読込の連番 文字間隔補正初期化
も【字種,0】=も【字種-1,0】; も【字種,1】=も【字種-1,1】; も【字種,2】=も【字種-1,2】 # 新たな設定が無ければ前値引継ぐ
も【字種,3】=も【字種-1,3】; も【字種,4】=も【字種-1,4】; も【字種,8】=も【字種-1,8】; も【字種,9】=も【字種-1,9】
対象の0から2文字抜き出す; もし、それが「lg」ならば; も【字種,8】=(対象の0から3文字抜き出す)から1文字右部分 # グループレイア情報取得
対象の0から2文字抜き出す; もし、それが「ly」ならば; も【字種,9】=(対象の0から3文字抜き出す)から1文字右部分 # レイア情報取得
対象の0から2文字抜き出す; もし、それが「cn」ならば; ペンNO=(対象の0から3文字抜き出す)から1文字右部分 # 文字種が1-9ならここで文字設定を二次元配列に取込み
9回
もし、ペンNO=回数ならば; も【字種,0】=cn&ペンNO; も【字種,1】=幅設定【回数】; も【字種,2】=高さ設定【回数】
も【字種,3】=間隔設定【回数】; も【字種,4】=ペン設定【回数】
対象の0から4文字抜き出す; もし、それが「cn00」ならば # 文字種10の二次元配列代入式
も【字種,0】=cn&10; も【字種,1】=幅設定【10】; も【字種,2】=高さ設定【10】
も【字種,3】=間隔設定【10】; も【字種,4】=ペン設定【10】
対象の0から4文字抜き出す; もし、それが「cn0 」ならば; 対象を「 」で区切る # 文字種0の二次元配列代入式
も【字種,0】=それ【0】; も【字種,1】=それ【1】; も【字種,2】=それ【2】; も【字種,3】=それ【3】; も【字種,4】=それ【4】
############# 上は文字種設定の読込 ########### 下は文字均等割付を間隔に転化 ##############
対象の0から3文字抜き出す; もし、それが「ch 」ならば; 原文=対象; 点点数=0 # 原文←ch 座標XY 傾きXY "表示文字
32回
もし、(原文の1文字右部分)が「・」ならば; 原文=原文の1文字右端削除; 点点数=点点数+1 # 原文の・・・を削除
原文から1文字右部分が全角か判定; もし、そうならば # ・・・削除分を間隔増値補正へ代入
も【字種,7】=(((も【字種,1】+も【字種,3】)*点点数)/((原文の文字数)-(原文で「"」が何文字目か)-1)) # 全角文字ならこちらで補正値計算
違えば;
も【字種,7】=((((も【字種,1】+も【字種,3】)*2)*点点数)/((原文の文字数)-(原文で「"」が何文字目か)-1)) # 半角ならこちらで補正値計算
も【字種,7】=も【字種,7】-(も【字種,3】/((原文の文字数)-(原文で「"」が何文字目か)-1)) # 間隔値の半分なぜかズレるので適当対応?
も【字種,7】=も【字種,7】を2で小数点四捨五入 # 無限数対策に少し下で四捨五入
も【字種,5】=点点数; も【字種,6】=原文
#################### データー編集加工 ####### JWW_CADデータ作成 #############
出力先ファイルは「JWC_TEMP.TXT」; 出力先初期化; 「hd」を一行出力 # クリアされた「JWC_TEMP.TXT」にこれから書込む 「hd」は対象を全消し
(字種)回 # 受取ったデータ回数分繰返す
も【回数,6】の0から2文字抜き出す; もし、それが「ch」ならば # 表示文字「ch」なら以下実行
「lg」&も【回数,8】を一行出力; 「ly」&も【回数,9】を一行出力 # レイヤ情報出力
もし、も【回数,5】>0ならば # ・・・の削除履歴有なら以下実行
cn0&「 」&も【回数,1】&「 」&も【回数,2】&「 」&(も【回数,3】+も【回数,7】)&「 」&も【回数,4】を一行出力
も【回数,6】を一行出力; 続ける # 0番の任意サイズ文字として出力
もし、も【回数,0】=「cn0」ならば # すでに任意サイズ文字でも上と同じ処理
cn0&「 」&も【回数,1】&「 」&も【回数,2】&「 」&も【回数,3】&「 」&も【回数,4】を一行出力
も【回数,6】を一行出力; 続ける
も【回数,0】を一行出力; も【回数,6】を一行出力 # 変更なしはそのまま再出力
↑↑↑ ここまでを、なでしこにコピペして下さい ↑↑↑
ここから下は「・・・」による文字均等を(文字設定を変更せずに)1文字づつに分解して同様な表示にする
↓↓↓ なでしこのプログラムはここの下から ↓↓↓
#JWW外部変形をなでしこで作る説明プログラム 文字均等割り付けの・・・を文字分解出力 作成2023年3月5日
# 半角にも一応対応したが全角/半角混在には未対応 文字分解出力 斜め文字対応 任意文字不具合修正
# なでしこのバージョン:1.587 俗にV1と言うインストールして使う言語です
# *関数の中で宣言された変数は、ローカル変数となりますが、関数の中でも宣言せずに使った変数はグローバル変数となります。
# *私は宣言せずに使ってます。
/*
--------------------------------------------------------------------------------------------------------------------------
配列変数 ll 0 l ① l ② l ③ l ④ l ⑤ l ⑥ l ⑦ l ⑧ l ⑨ l ⑩ l
--------------------------------------------------------------------------------------------------------------------------
幅 ll hcw l 2 l 2.5 l 3 l 4 l 5 l 6 l 7 l 8 l 9 l 10 l
--------------------------------------------------------------------------------------------------------------------------
高さ ll hch l 2 l 2.5 l 3 l 4 l 5 l 6 l 7 l 8 l 9 l 10 l
--------------------------------------------------------------------------------------------------------------------------
間隔 ll hcd l 0 l 0 l 0.5 l 0.5 l 0.5 l 0.5 l 1 l 1 l 1 l 1 l
--------------------------------------------------------------------------------------------------------------------------
ペンNO ll hcc l 1 l 1 l 2 l 2 l 3 l 3 l 4 l 4 l 5 l 5 l
--------------------------------------------------------------------------------------------------------------------------
も【字種】ll cn0-10 l 幅 l 高さ l 間隔 l ペンNO l 点点数 l 原文 l間隔増値 l lg l ly l l
--------------------------------------------------------------------------------------------------------------------------
*/
!母艦設計=「母艦の可視はオフ」
めいんぷろ; 終わり # めいんぷろ関数を呼出しその処理が終わったら終わり
●めいんぷろ
#################### JWC_TEMP二次元配列取り込み ####### JWW_CADデータ取り込み ############
字種=0; 点点数=0 # 名付けた変数達に初期値を代入
「JWC_TEMP.TXT」を毎行読んで反復 # 一行ずつ読込む
対象の0から4文字抜き出す; もし、それが「hcw 」ならば; 対象を「 」で区切る; 幅設定=それ; 続ける # 設定値展開 頭へ戻る
対象の0から4文字抜き出す; もし、それが「hch 」ならば; 対象を「 」で区切る; 高さ設定=それ; 続ける
対象の0から4文字抜き出す; もし、それが「hcd 」ならば; 対象を「 」で区切る; 間隔設定=それ; 続ける
対象の0から3文字抜き出す; もし、それが「hcc」ならば; 対象を「 」で区切る; ペン設定=それ; 続ける
対象の0から3文字抜き出す; もし、それが「cn"」ならば; 続ける # cn"なら頭へ戻る
もし、対象が「cn10」ならば; 対象=「cn00」 # 文字種10は下の計算で、1で拾われるので対策
字種=字種+1; も【字種,7】=0 # 二次配列読込の連番 文字間隔補正初期化
も【字種,0】=も【字種-1,0】; も【字種,1】=も【字種-1,1】; も【字種,2】=も【字種-1,2】 # 新たな設定が無ければ前値引継ぐ
も【字種,3】=も【字種-1,3】; も【字種,4】=も【字種-1,4】; も【字種,8】=も【字種-1,8】; も【字種,9】=も【字種-1,9】
対象の0から2文字抜き出す; もし、それが「lg」ならば; も【字種,8】=(対象の0から3文字抜き出す)から1文字右部分 # グループレイア情報取得
対象の0から2文字抜き出す; もし、それが「ly」ならば; も【字種,9】=(対象の0から3文字抜き出す)から1文字右部分 # レイア情報取得
対象の0から2文字抜き出す; もし、それが「cn」ならば; ペンNO=(対象の0から3文字抜き出す)から1文字右部分 # 文字種が1-9ならここで文字設定を二次元配列に取込み
9回
もし、ペンNO=回数ならば; も【字種,0】=cn&ペンNO; も【字種,1】=幅設定【回数】; も【字種,2】=高さ設定【回数】
も【字種,3】=間隔設定【回数】; も【字種,4】=ペン設定【回数】
対象の0から4文字抜き出す; もし、それが「cn00」ならば # 文字種10の二次元配列代入式
も【字種,0】=cn&10; も【字種,1】=幅設定【10】; も【字種,2】=高さ設定【10】
も【字種,3】=間隔設定【10】; も【字種,4】=ペン設定【10】
対象の0から4文字抜き出す; もし、それが「cn0 」ならば; 対象を「 」で区切る # 文字種0の二次元配列代入式
も【字種,0】=それ【0】; も【字種,1】=それ【1】; も【字種,2】=それ【2】; も【字種,3】=それ【3】; も【字種,4】=それ【4】
############# 上は文字種設定の読込 ########### 下は文字均等割付を間隔に転化 ##############
対象の0から3文字抜き出す; もし、それが「ch 」ならば; 原文=対象; 点点数=0 # 原文←ch 座標XY 傾きXY "表示文字
32回
もし、(原文の1文字右部分)が「・」ならば; 原文=原文の1文字右端削除; 点点数=点点数+1 # 原文の・・・を削除
原文から1文字右部分が全角か判定; もし、そうならば # ・・・削除分を間隔増値補正へ代入
も【字種,7】=(((も【字種,1】+も【字種,3】)*点点数)/(原文字数-1)) # 全角文字ならこちらで補正値計算
違えば
も【字種,7】=((((も【字種,1】+も【字種,3】)*2)*点点数)/(原文字数-1)) # 半角ならこちらで補正値計算
も【字種,7】=も【字種,7】-(も【字種,3】/(原文字数-1)) # 間隔値の半分なぜかズレるので適当対応?
も【字種,7】=も【字種,7】を2で小数点四捨五入 # 無限数対策に少し下で四捨五入
も【字種,5】=点点数; も【字種,6】=原文
#################### データー編集加工 ####### JWW_CADデータ作成 #############
出力先ファイルは「JWC_TEMP.TXT」; 出力先初期化; 「hd」を一行出力 # クリアされた「JWC_TEMP.TXT」にこれから書込む 「hd」は対象を全消し
(字種)回 # 受取ったデータ回数分繰返す
も【回数,6】の0から2文字抜き出す; もし、それが「ch」ならば; 原文=も【回数,6】 # 表示文字「ch」なら以下実行
「lg」&も【回数,8】を一行出力; 「ly」&も【回数,9】を一行出力 # レイヤ情報出力
もし、も【回数,5】>0ならば; 原文を「 」で区切る; 原文前=それ; 原文後=原文前【5】を文字列分解 # ・・・の削除履歴有なら以下実行
原文から1文字右部分が全角か判定; もし、そうならば # 全角半角で補正値が違う
間隔増値=も【回数,1】+も【回数,3】+も【回数,7】
違えば
間隔増値=(も【回数,1】+も【回数,3】+も【回数,7】)/2
X増値=(COS(ARCTAN(原文前【4】/原文前【3】)))*間隔増値 # 斜め文字の個別字原点の起点移動値計算
Y増値=(SIN(ARCTAN(原文前【4】/原文前【3】)))*間隔増値 # SINは正弦と書いてもOK
もし、も【回数,0】=「cn0」ならば # 文字種を見て
cn0&「 」&も【回数,1】&「 」&も【回数,2】&「 」&も【回数,3】&「 」&も【回数,4】を一行出力 # 任意サイズならば cn0+cn0の個別仕様を出力
違えば
も【回数,0】を一行出力 # 任意サイズ以外ならそのまま出力
(原文字数)回 # バラした原文の文字回数分回す
ch&「 」&原文前【1】&「 」&原文前【2】&「 」&原文前【3】&「 」&原文前【4】&「 」&「"」&原文後【回数】を一行出力
原文前【1】=原文前【1】+X増値; 原文前【2】=原文前【2】+Y増値 # 次の文字を右にずらす値を代入
続ける # この文出し終わったら先頭に戻る
もし、も【回数,0】=「cn0」ならば # 0番の任意サイズ文字として出力
cn0&「 」&も【回数,1】&「 」&も【回数,2】&「 」&も【回数,3】&「 」&も【回数,4】を一行出力
も【回数,6】を一行出力; 続ける # 先頭に戻る
も【回数,0】を一行出力; も【回数,6】を一行出力 # 変更なしはそのまま再出力
●原文字数
それ=(原文の文字数)-(原文で「"」が何文字目か)
↑↑↑ ここまでを、なでしこにコピペして下さい ↑↑↑