//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 終わり