//limemo for 1.50034 up
!母艦設計=「母艦の可視はオフ」
!APPタイトル=「えっくすめも」
!DTD=「limemo013.dtd」
!データヘッダー=「
]>
」
!データフッター=「」
INIファイル=「xmemo_settings.ini」
データベース=「xmemo_db01.xml」
母艦のタイトルはAPPタイトル
母艦のクライアントHは280
母艦のクライアントWは530
母艦の背景色はウィンドウ背景色
母艦の終了可能は0
母艦を中央移動
更新タイマーとはタイマー
その値は500
機能タブとはタブページ
そのレイアウトは全体
機能タブに「メモ」をタブ追加
機能タブに「リスト」をタブ追加
機能タブの表示タブは0
メモエリアとはメモ
その親部品は機能タブ
そのレイアウトは全体
その文字サイズは10
その文字書体は「MS Pゴシック」
//そのスクロールバーは「縦」
機能タブの表示タブは1
タイトル一覧とはリスト
その親部品は機能タブ
そのレイアウトは全体
「,mf,ファイル(&F)
-,f1,新規(&N),F8,,新規作成
-,f2,クリップボードから取り込み(&I),F7,,新規クリップ
-,fb_1,-,,,
-,f3,削除(&D),F12,,データ削除
-,fb_2,-,,,
-,fd1,データベース変更(&O),,,データベース切り替え
-,fx,閉じる(&X),ESC,,終わる
,me,編集(&E)
-,eu,戻す(&Z),Ctrl+Z,,メモエリアをUNDO
-,er,やり直す(&Y),Ctrl+Y,,メモエリアをREDO
-,eb_1,-,,,
-,ea,すべて選択(&A),Ctrl+A,,エリア全選択
-,eb_2,-,,,
-,et,タブ切り替え(&T),Ctrl+SPACE,,タブ切り替え
,mh,ヘルプ(&H)
-,h1,{APPタイトル}について(&A),,,アバウト」をメニュー一括作成
母艦の閉じた時は〜
終了処理
タイトル一覧のダブルクリックした時は〜
「{タイトル一覧の値}」のログ読み込み
タイトル一覧のキー離した時は〜
もし、タイトル一覧の押された仮想キーが13ならば、
「{タイトル一覧の値}」のログ読み込み
メモエリアの変更した時は〜
機能タブの表示タブは0。
編集フラグ=1
更新タイマーの時満ちた時は〜
タイトル更新
開始処理
●データベース切り替え
"*.xml"のファイル選択
もしそれが空でなければ
DB候補=それ
新規作成
メインデータをデータベースにデータベース書き込み
データベース=DB候補
データベース読み込み
新規作成
●データベース読み込み
もし((データベースが存在するか)=0)ならば
データヘッダー&データフッターをデータベースへ保存。
メモDB=データベースを開く
メインデータ=メモDBから「memo-list」のタグ切り出し
メモDB=0
メインデータ=メインデータの「」を「」に置換
メインデータ=メインデータの「」を「」に置換
リスト初期化
●ログ読み込み(Sの)
もし、S>-1ならば
メモID2=IDリスト[S]
日付2=日付リスト[S]
新規作成
メモID=メモID2
日付=日付2
メモIDのデータロード
●データロード(Sの)
IDリストを反復
もしそれ=「{S}」ならば
メモエリア=メモリスト[回数-1]のタグ還元
タイトル一覧の値は(回数-1)
抜ける
編集フラグ=0
新規フラグ=0
●新規クリップ
新規作成
メモエリア=クリップボード取得
●エリア全選択
機能タブの表示タブは0。
メモエリアを全選択。
●タブ切り替え
もし(機能タブの表示タブ=0)ならば
機能タブの表示タブは1
違えば、
機能タブの表示タブは0
●新規作成
もし((メモエリア!=「」)&&(編集フラグ=1))ならばデータベース更新
リスト初期化
メモID=0
もしIDリストが空でなければ
メモID=((IDリストの配列最大値)+1)
日付=今日&「 」&今
現在記事数=日付
編集記事=現在記事数
タイトル一覧のアイテムはタイトルリスト
機能タブの表示タブは0
メモエリア=「」
編集フラグ=0
新規フラグ=1
●タイトル更新
バッファ=メモエリア
バッファ=バッファの「{\n}」まで切り取る
もし、バッファが空ならば、バッファは日付
メモタイトル=バッファ
もし((新規フラグ=0)&&(編集フラグ=1))ならば
母艦は「"{バッファ}..."* - {APPタイトル}」
違えばもし((新規フラグ=0)&&(編集フラグ=0))ならば
母艦は「"{バッファ}..." - {APPタイトル}」
違えばもし((新規フラグ=1)&&(編集フラグ=1))ならば
母艦は「新規"{バッファ}..."* - {APPタイトル}」
違えば
母艦は「新規 - {APPタイトル}」
母艦ステータス=「ID:{メモID} - {日付}」
●データベース更新
もし新規フラグが1ならば、
メインデータにメモエリアをXML要素追加
違えば、
メモIDのメモエリアでメインデータをXML要素変更
●データ削除
「メモID:{メモID}番の記事{~}”{メモタイトル}”を削除します。{~}よろしいですか?」と二択
もし((それ=はい)&&(新規フラグ=0))ならば
メインデータのメモIDをXML要素削除
メモエリア=「」
新規作成
違えばもし(それ=はい)ならば
メモエリア=「」
新規作成
●リスト初期化
IDリスト=メインデータの「memo/id」をXMLリスト作成
タイトルリスト=メインデータの「memo/title」をXMLリスト作成
日付リスト=メインデータの「memo/date」をXMLリスト作成
メモリスト=メインデータの「memo/text」をXMLリスト作成
IDリスト=IDリストのタグ削除
タイトルリスト=タイトルリストのタグ削除
タイトルリスト=タイトルリストのタグ改行なし還元
日付リスト=日付リストのタグ削除
メモリスト=メモリストの「」を「」に置換
●タグ置換({参照渡し}Sの)
S=SをHTMLエンティティ変換
S=Sの「,」を「,」に置換
S=Sの「{\t}」を「&tab;」に置換
S=Sの「{\n}」を「&br;」に置換
Sを戻す
●タグ還元({参照渡し}Sの)
S=Sの「&br;」を「{\n}」に置換
S=Sの「&tab;」を「{\t}」に置換
S=Sの「,」を「,」に置換
S=SをHTMLエンティティ復号
Sを戻す
●タグ改行なし還元({参照渡し}Sの)
S=Sの「&br;」を「」に置換
S=Sの「&tab;」を「」に置換
S=Sの「,」を「,」に置換
S=SをHTMLエンティティ復号
Sを戻す
●XMLリスト作成({参照渡し}SのAを)
B=SからAの階層タグ切り出し
B=Bの「{\n}」を「」に置換
B=Bの「*>」を「{\n}」にワイルドカード置換
Bを戻す
●XML要素変更(Sの{参照渡し}Aで{参照渡し}Bを)
IDリストを反復
もしそれ=「{S}」ならば
メモリスト[回数-1]=Aのタグ置換
タイトルリスト[回数-1]=メモタイトルのタグ置換
日付リスト[回数-1]=日付
抜ける
B=「」
IDリストを反復
B=「{B}{~}{~} {それ}{~} {タイトルリスト[回数-1]}{~} {日付リスト[回数-1]}{~} {メモリスト[回数-1]}{~}{~}」
●XML要素削除({参照渡し}SのAを)
IDリストを反復
もしそれ=「{A}」ならば
IDリスト[回数-1]=「」
メモリスト[回数-1]=「」
タイトルリスト[回数-1]=「」
日付リスト[回数-1]=「」
抜ける
S=「」
IDリストを反復
もしそれ!=「」ならば
S=「{S}{~}{~} {それ}{~} {タイトルリスト[回数-1]}{~} {日付リスト[回数-1]}{~} {メモリスト[回数-1]}{~}{~}」
●XML要素追加({参照渡し}Sに{参照渡し}Aを)
A=Aのタグ置換
B=メモタイトルのタグ置換
もしBが空ならば
Bは日付
S=「{~}{~} {メモID}{~} {B}{~} {日付}{~} {A}{~}{~}{S}」
●データベース書き込み({参照渡し}SをAに)
B=「{データヘッダー}{S}{データフッター}」
BをAに保存。
Aが存在
もしそれが0ならば
「保存失敗」という。
●アバウト
「{APPタイトル}{~}XMLを使ったメモアプリケーション」という
●開始処理
INIファイルが存在
もし、それが1ならば
エラー監視
「{INIファイル}」のINI開いてテキストハンドルに代入
テキストハンドルで「ウィンドウ」の「X」をINI読んで母艦のXに代入
テキストハンドルで「ウィンドウ」の「Y」をINI読んで母艦のYに代入
テキストハンドルで「ウィンドウ」の「W」をINI読んで母艦のクライアントWに代入
テキストハンドルで「ウィンドウ」の「H」をINI読んで母艦のクライアントHに代入
テキストハンドルで「ファイル」の「場所」をINI読んでデータベースに代入
テキストハンドルのINI閉じる
エラーならば
「設定ファイルを正常に読み込めませんでした。」と言う
更新タイマーの開始
メモエリアに注目
母艦の可視はオン
描画処理反映
データベース読み込み
新規作成
●終了処理
母艦を元通り
母艦の可視はオフ
新規作成
メインデータをデータベースにデータベース書き込み
母艦パスに作業フォルダ変更
「{INIファイル}」のINI開いてテキストハンドルに代入。
テキストハンドルで「ヘッダ」の「このINIを利用するプログラム」にタイトルをINI書く
テキストハンドルで「ウィンドウ」の「X」に母艦のXをINI書く
テキストハンドルで「ウィンドウ」の「Y」に母艦のYをINI書く
テキストハンドルで「ウィンドウ」の「W」に母艦のクライアントWをINI書く
テキストハンドルで「ウィンドウ」の「H」に母艦のクライアントHをINI書く
テキストハンドルで「ファイル」の「場所」にデータベースをINI書く
テキストハンドルのINI閉じる
母艦の終了可能は1
終わり