★ソース最適化

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

情報

作者名:fuji、五十六
引用元:なでしこプログラム掲示板「ソース高速HTML化」
勝手に改変

概要

ソースを最適化します。

具体的にはこんな変化があります。(↑が変化前 ↓が変化後)
「てすてす」

(『てすてす』)

「あいうえお{変数A}かきくけこ」。

(『あいうえお』&(変数A)&『かきくけこ』)。

これの作成にあたってfujiさんの★ソース高速HTML化を参考にさせて頂きました。
というかほとんど流用です。ごめんなさい。

解説


ほげほげ=「hoge
ほげ
ホゲ」。

A=システム時間。
100000回
 親回数=回数
 TEMP=「{母艦パス}てすてす{ほげほげ[0]}」。
 もし、回数%1000=0ならば母艦のタイトルは回数。
A=システム時間-A。
「最適化前 {A}」を表示。

A=システム時間。
100000回
 親回数=回数
 TEMP=母艦パス&「てすてす」&ほげほげ[0]。
 もし、回数%1000=0ならば母艦のタイトルは回数。
A=システム時間-A。
「最適化後 」&Aを表示。

引数

ソース:ソース本文(≠.nakoへの絶対パス)

返り値

最適化されたソース

サンプルプログラム

A=(「.nako」のファイル選択)を開く。
A=Aをソース最適化。
Aを言う。

//本体

●ソース最適化(ソースを|ソースの)
  '定数
  文字列色は"#000080"
  
  #    CR=CHR(13)
  
  //「"”『``{{・/*##//'’※
  囲み文字=`「
"
”
`&"『
`
`"&`
{
{
/*
・
#
#
//
'
’
※`
  
  
  閉じ文字=`」"”`&"』``"&`}}`#*/ 
  
  囲み文字数=要素数(囲み文字)。

    
    最初部分=「」
    
    (ソース!=『』)の間
     最小文字数=文字数(ソース)
     番号=-1
     囲み文字を反復
       ソースで対象が何文字目。
       もし、(それ<最小文字数)かつ(それ>0)なら
         最小文字数=それ。
         番号=回数-1
         次囲み文字=対象。
        
     #関数を探す
     「●{~}■{~}*」を反復
       ソースを"^\t* * *{対象}"で正規表現マッチ。
       それ=それ\0。
       もし、(それ<>「」)かつ(何文字目(ソース,それ)<最小文字数)なら
         番号=囲み文字数+回数-1
         次囲み文字=対象。
     #次の囲み文字を言う。
     もし、番号=-1なら、抜ける。#囲み文字が見つからなかった場合。
    
     ソースの次囲み文字までを切り取る。
     最初部分=最初部分&それ。
     
     #囲み文字に応じて切り取り
     もし、番号<=9ならば
       もし、番号<=8ならば、
         もし、番号=8ならば
           次閉じ文字="*/"
         違えば
           次閉じ文字=MID(閉じ文字,番号+1,1)
       違えば、
         もし、(何文字目(ソース," "))<(何文字目(ソース,改行))ならば
           次閉じ文字=" "
         違えば
           次閉じ文字=改行。
     違えば、次閉じ文字=改行
     
     もし、次閉じ文字=改行なら、
        ソースの改行までを切り取る。
        切り取り部分=「{次囲み文字}{それ}」
        ソース=改行&ソース
     違えば、
        ソースの次閉じ文字までを切り取る。
        切り取り部分=「{次囲み文字}{それ}{次閉じ文字}」。
     
     もし、番号<6なら
       //ここから文字列
       文字列判定=切り取り部分の1から1文字抜き出す。
       もし、(文字列判定=『「』)ならば
         切り取り部分=切り取り部分の『{』を`』&(`に置換。
         切り取り部分=切り取り部分の『}』を`)&『`に置換。
         切り取り部分=切り取り部分の『{』を`』&(`に置換。
         切り取り部分=切り取り部分の『}』を`)&『`に置換。
         切り取り部分の1から1文字削除。切り取り部分=`(『`&切り取り部分。
         切り取り部分から1文字右端削除。切り取り部分=切り取り部分&`』)`。
         切り取り部分=切り取り部分の`&『』&`を空に置換。
         切り取り部分=切り取り部分の`『』&`を空に置換。
         切り取り部分=切り取り部分の`&『』`を空に置換。
         もし、(切り取り部分の1から2文字抜き出す=「((」)かつ(切り取り部分から2文字右部分=「))」)ならば
           切り取り部分の1から1文字削除。切り取り部分から1文字右端削除。
         
       もし、(文字列判定=『"』)ならば
         切り取り部分=切り取り部分の『{』を『`&(』に置換。
         切り取り部分=切り取り部分の『}』を『)&`』に置換。
         切り取り部分=切り取り部分の『{』を『`&(』に置換。
         切り取り部分=切り取り部分の『}』を『)&`』に置換。
         切り取り部分の1から1文字削除。切り取り部分=『(`』&切り取り部分。
         切り取り部分から1文字右端削除。切り取り部分=切り取り部分&『`)』。
         切り取り部分=切り取り部分の『&``&』を空に置換。
         切り取り部分=切り取り部分の『``&』を空に置換。
         切り取り部分=切り取り部分の『``&』を空に置換。
         もし、(切り取り部分の1から2文字抜き出す=「((」)かつ(切り取り部分から2文字右部分=「))」)ならば
           切り取り部分の1から1文字削除。切り取り部分から1文字右端削除。
     
     
     最初部分=最初部分&切り取り部分。
     
  完成文=最初部分&ソース。
  完成文を戻す。


名前:
コメント:


ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。