ここから本文です

この知恵ノートを「知恵コレクション」に追加しました。

追加した知恵ノートはMy知恵袋の「知恵コレクション」ページで確認できます。

知恵コレクション」に登録済みです。

再登録しました。

追加に失敗しました。

ノートに戻り、もう一度やり直してください。

すでに1,000件のノートが登録されています。

新しく追加したい場合は、My知恵袋の「知恵コレクション」ページで登録されているノートを削除してください。

追加できませんでした。

ノートは削除されました。

AndroidでBASICで遊ぶ方法 その8-2

ライターさん(最終更新日時:2013/11/5)投稿日:

  • ナイス!:

    0

  • 閲覧数:320

印刷用のページを表示する

この知恵ノートは、以下の知恵ノートの継続のページとなります。

この知恵ノートを見る前に以下をご覧ください。

 

AndroidでBASICで遊ぶ方法 その8-1
http://note.chiebukuro.yahoo.co.jp/detail/n224842

 

5.「メモデータベース」のプログラム内容(前半)

 

  それではもう少し具体的にこのツールの内容を見ていきます。
  BASIC!のプログラムで実際にやっていることを順に記載すると
  以下の通りとなります。

 

  継ぎ足しで作った成果サブールーチンの呼び出しがあまり
  良くないやり方をしている所がありますが、実際に使っている
  プログラムをそのまま解説します。
 

  実際のブログラムのソースは以下をご覧ください。

  ブログラムのソース: https://db.tt/yu3bogab

  
  (1)メイン処理

 

     REM Start of BASIC! Program
     popup "メモデータベースを起動します。",0,0,1
     console.title "メモデータベース"
         →コンソール画面上部に処理名を表示

 

     pause 8000
     
     input "タブレットモード(キーボードなし)で起動しますか?(y/n)",tab$
     if tab$="y" then
       print "タブレットモードで起動します。"
       jjj=1
     else
       print "キーボード有りモードで起動します。"
     endif
         →キーボードが接続されているか自動判断できないので
         →入力ダイアログを出して確認   
     
     gosub tbopn
         →テーブルオープンサブルーチンを呼び出し

 

     gosub menux
         →メニューサブルーチンを呼び出し


     gosub cldb
         →テーブルクローズサブルーチンを呼び出し

 

     popup "メモデータベースを終了します。",0,0,1
     pause 5000
     
     exit
         →メイン処理の終了

     
  (2)メニュー処理
     
     
     !------- menu routine -----
     menux:
         →メニューサブルーチン


      if vv$<>"9" then
        print "メモデータベース>>1-検索 2-変更 3-削除 4-全データ一覧 5-新規 6-件名一覧 7-メモ新規 9-終了 c-クリア x-初期化"
        if tab$="y" then
           print "☆タブレットモードではバックボタンを押してから操作を選択☆"
        else
        endif
      else
      endif
         →コンソール画面に処理を選択のメニュー行表示
         →キーボードなしの場合はバックキー割込の説明を表示


      ink=0
      do
         →各サブルーチンを呼び出されない間は繰り返し


       if vv$<>"9" then
          if tab$="y" then
     !        popup  "wait...",300,-150,1
     !        pause 5000
            if jjj=1 then
              input "選択=> 1-検索 2-変更 3-削除 4-全一覧 5-新規 6-件一覧 7-メ新規 9-終 c-クリ x-初期",vv$
              jjj=0
            else
              vv$=""
            endif
          else 
            inkey$ vv$
          endif
       endif
         →キーボードなしの時、メニュー選択ダイアログを
         →起動直後だけ表示
         →キーボードありの時、何かキー入力があればinkey$に格納

 

       if vv$="1" then
          gosub kensak
          ink=1
       endif
         →検索サブルーチンを呼び出し


       if vv$="2" then
          gosub henkou
          ink=1
       endif
         →変更サブルーチンを呼び出し


       if vv$="3" then
          gosub sakujo
          ink=1
       endif
         →削除サブルーチンを呼び出し


       if vv$="4" then
          gosub pall
          ink=1
       endif
         →全件表示サブルーチンを呼び出し

     
       if vv$="5" then
          gosub intbl
          ink=1
       endif
         →新規サブルーチンを呼び出し


       if vv$="6" then
          gosub pken
          ink=1
       endif
         →件名一覧ブルーチンを呼び出し


       if vv$="7" then
          gosub mintbl
          ink=1
       endif
         →メモ新規サブルーチンを呼び出し


       if vv$="9" then
          ink=1
       endif
         →終了を選択した場合はメインに戻る


       if vv$="c" then
          cls
          print "メモデータベース>>1-検索 2-変更 3-削除 4-全データ一覧 5-新規 6-件名一覧 7-メモ新規 9-終了 c-クリア x-初期化"
          if tab$="y" then
             print "☆タブレットモードではバックボタンを押してから操作を選択☆"
          else
          endif
       endif
         →クリアを選択した場合は、コンソール画面をクリア
         →コンソール画面に処理を選択のメニュー行表示
         →キーボードなしの場合はバックキー割込の説明を表示

 

 

       if vv$="x" then
          gosub syoki
          ink=1
       endif
         →初期化サブルーチンを呼び出し


      until ink
         →ここまで繰り返し


     return
         →メニューサブルーチンの終了

 

  (3)初期化処理

     
     !------- TBL Initialize (NEW) routine -----
     syoki:
         →初期化サブルーチン

     
     input "本当に初期化しますか?すべてのデータが削除されます。",syo$
     if syo$="y" then
     else
       return
     endif
         →初期化なので確認ダイアログを表示


     
     
     SQL.CLOSE DB_Ptr
         →データベースをクローズ


     
     SQL.OPEN DB_Ptr, dbname$
         →データベースを開く


     
     tbname$ = "memo001"
         →テーブル名を設定


     
     c1$ = "kenmei"
     c2$ = "updymd"
     c3$ = "keisaif"
     c4$ = "kanren"
     c5$ = "naiyou"
         →項目名を設定
         →件名、更新日、掲載F、関連項目、内容


     
     
     SQL.DROP_TABLE DB_Ptr, tbname$
         →テーブルを削除


     
     
     SQL.NEW_TABLE DB_Ptr, tbname$, c1$, c2$, c3$, c4$,c5$
         →テーブルを作成


     
     
     gosub menux
         →メニューサブルーチンを呼び出し
         →構造化をやや無視していますが呼び出し元の
         →ルーチンを呼び出ししています。


     

     RETURN
         →初期化サブルーチンの終了ですが
         →永久に実行されません。

 

  (4)テーブルオープン処理
     
     
     
     ------- TBL OPEN routine -----
     tbopn:
         →テーブルオープンサブルーチン


     
     
     dbname$ = "memo.db"
         →データベース名を設定
     

     
     time y$, m$, d$, h$, n$, s$
     today$=y$+m$+d$+h$+n$+s$
         →現在時刻を取得し設定
     

     
     
     SQL.OPEN DB_Ptr, dbname$
         →データベースをオープン
     

     
     
     tbname$ = "memo001"
     c1$ = "kenmei"
     c2$ = "updymd"
     c3$ = "keisaif"
     c4$ = "kanren"
     c5$ = "naiyou"
     
     gosub menux
     RETURN
         →テーブルオープンサブルーチンの終了


  (5)メモ新規処理
     
     !------- memo input routine -----
     mintbl:
         →メモ新規サブルーチン

     
     clipboard.get clzz$
     text.input azz$, clzz$,"メモ貼り付けフィールド"
         →クリップボードの内容をコピー
         →コピーした内容を初期表示してテキストボックス
         →を表示


     text.open w,flaa,"../../minput/temp.txt"
     text.writeln flaa,azz$
     popup "一時ファイルに出力しました",0,0,1
     pause 4000
     text.close flaa
         →テキストボックスの内容を一時ファイルに書き出し

     
     text.open r,file_number,"../../minput/temp.txt"
         →一時ファイルを開く
     
     Text.readln file_number,line$
     kenmei1$=line$
     
     keisaif1$="未"
     
     Text.readln file_number,line$
     kenren1$=line$
     all$=""
     while line$ <> "EOF"
      Text.readln file_number,line$
      if line$ <> "EOF" then
           all$=all$+line$+"\n"
      else
      endif
     repeat
     Text.close file_number
         →一時ファイルの一行目を件名として変数にセット
         →2行目を関連項目として変数にセット

     
     naiyou1$=all$
         →3行目以降を内容として変数にセット

     
     popup "一時ファイル読込完了しました",0,0,1
     pause 4000
     
     
     GOSUB insert
         →テーブル挿入サブサブルーチンの呼び出し
      
     
     gosub menux
     return
         →メモ新規サブルーチンの終了

 

  (6)新規処理
     
     
     !------- input routine -----
     intbl:
         →新規サブルーチン
     
     zzzz$=""
     
     while zzzz$<>"n"
       text.input kenmei1$,,"件名"
       keisaif1$="未"
       text.input kenren1$,,"このメモに関連するキーワード"
       text.input naiyou1$,,"メモの内容"
       GOSUB insert
       input "継続しますか?(y/n)",zzzz$
     repeat
         →件名、関連項目、内容を入力するためのテキスト
         →ボックスを表示してテーブル挿入サブサブルーチン
         →を呼び出し


     gosub menux
     return
         →新規サブルーチンの終了

 

  (7)テーブル挿入内部処理

     
     !------- TBL Insert routine -----
     insert:
         →テーブル挿入サブサブルーチン

     SQL.INSERT DB_Ptr, tbname$, c1$,kenmei1$,  c2$,today$, c3$,keisaif1$, c4$,kenren1$, c5$,naiyou1$
         →テーブル指定された件名、更新日、掲載F,
         →関連項目、内容のレコードを1行挿入


     Clipboard.put naiyou1$
         →クリップボードに内容をコピー

     
     popup "クリップボードにメモの内容をコピーしました",0,0,1
     pause 5000
     
     RETURN
         →テーブル挿入サブサブルーチンの終了

 

8-3に続きます。
     
    AndroidでBASICで遊ぶ方法 その8-3
    http://note.chiebukuro.yahoo.co.jp/detail/n225771 

このノートに関するQ&A

このノートに関するQ&Aは、まだありません。

このノートについて質問する

このノートについてライターの方に質問できます。

※ライターの方から必ず回答をいただけるとは限りません

※別ウィンドウで開きます

ピックアップ

Android向けアプリ Yahoo!ブラ...
基本的な使い方(メニュー・操作)便利な使い方オススメの使...
結婚してから発覚しました!
                                                         ...
【完全版】ああすんなり!頭に...
   5 1 0, 0 0 0 H I T! 閲覧して下さりありがとうご...
本文はここまでです このページの先頭へ