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

「★ソース最適化」の編集履歴(バックアップ)一覧はこちら

★ソース最適化」の最新版変更点

追加された行は青色になります。

削除された行は赤色になります。

 *情報
 作者名:fuji、五十六
 引用元:[[なでしこプログラム掲示板「ソース高速HTML化」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=444&rev=&no=0]]
 勝手に改変
 
 *概要
 ソースを最適化します。
 
 具体的にはこんな変化があります。(↑が変化前 ↓が変化後)
  「てすてす」
  
  (『てすてす』)
 
  「あいうえお{変数A}かきくけこ」。
  
  (『あいうえお』&(変数A)&『かきくけこ』)。
 
 これの作成にあたってfujiさんの[[★ソース高速HTML化]]を参考にさせて頂きました。
 というかほとんど流用です。ごめんなさい。
 
 *解説
 
 ※最適化の効果を確認してみるプログラム
 引用+改変:[[なでしこプログラム掲示板「メモリ不足??」ツリーより 焼きそばさんの検証プログラム>http://www.himanavi.net/cgi/nade-bbs2/cbbs.cgi?mode=one&number=7258&type=7250&space=120&no=0]]
  ほげほげ=「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文字右端削除。
       
       
       最初部分=最初部分&切り取り部分。
       
    完成文=最初部分&ソース。
    完成文を戻す。
 
 ----
 - WinAPI利用してるとソースがむちゃくちゃになるかも・・・いずれ直します  -- 管理人  (2009-01-06 22:27:21)
+- http://www.example.com エラー  -- http://www.example.com  (2010-01-21 18:27:57)
 #comment()
 
 ----
ツールボックス

下から選んでください:

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