2007年5月3日木曜日

ディレクトリ構成のHTML化

ディレクトリ構成をulタグ(順序なしリスト)にして出力する。
再帰を利用した単純なスクリプト。ネストの制限上、深すぎるとエラー。
#include "hspext.as"

#module
#defcfunc existfolder str path, local stmp
    dirlist stmp, path, 5
    return stat

#deffunc serch str path, local sList
    chdir path
    v1 += "<li>" + getpath(path, 8) + "\n<ul>"
    dirlist sList, "*"5
    repeat stat
        notesel sList
        noteget sTmp, cnt
        sTmp = path + "\\" + sTmp
        serch sTmp
    loop

    chdir path
    dirlist sList, "*"1
    repeat stat
        notesel sList
        noteget sTmp, cnt
        v1 += "<li>" + sTmp + "</li>\n"
    loop
    v1 += "</ul></li>"
    return

#deffunc serchstart val code
    v1 = ""
    serch dir_cur
    code += v1
    return

#global

    dnTarget = ""
    code = ""
    gosub *makeScreen
    stop

*makeScreen
    title "ディレクトリ構成のHTML化"
    pos   0,   0 : input dnTarget, 52023 : idInputDirectory = stat
    sendmsg objinfo(stat2), $CF1

    objsize 12023
    pos 520,   0 : button gosub "選択..."*selectDirectory
    pos   0,  23 : mesbox code, ginfo_winxginfo_winy - 235 : idMesboxCode = stat
    return

*selectDirectory
    selfolder dnTarget, ""
    if stat == 0 {
        objprm idInputDirectory, dnTarget
        gosub *start
    }
    return

*start
    code = "<html><body><ul>"
    if existfolder(dnTarget) == 0 {
        dialog "フォルダのパスが正しくありません。"1
        return
    }

    chdir dnTarget
    serchstart code
    code += "</ul></body></html>"
    objprm idMesboxCode, code
    return

0 件のコメント: