Pastebin: 【BASIC!】メモデータベース・ソースプログラム

【BASIC!】メモデータベース・ソースプログラム ・Androidで動作するBASICインタープリター「BASIC!」用 の簡易メモ帳ソースプログラム ・メモデータは、SQLITEでデータベースに保存 ・データベースは、FTPでバックアップ

Format
Plain text
Post date
2014-02-14 17:52
Publication Period
Unlimited
  1. REM Start of BASIC! Program
  2. popup "メモデータベースを起動します。",0,0,1
  3. console.title "メモデータベース"
  4. pause 4000
  5. input "タブレットモード(キーボードなし)で起動しますか?(y/n)",tab$,"y"
  6. if tab$="y" then
  7. print "タブレットモードで起動します。"
  8. jjj=1
  9. else
  10. print "キーボード有りモードで起動します。"
  11. endif
  12. gosub tbopn
  13. gosub menux
  14. gosub cldb
  15. popup "メモデータベースを終了します。",0,0,1
  16. pause 5000
  17. exit
  18. !------- menu routine -----
  19. menux:
  20. if vv$<>"9" then
  21. print "メモデータベース>>1-検索 2-変更 3-削除 4-全データ一覧 5-新規 6-件名一覧 7-メモ新規 9-終了 c-クリア a-lunch e-閲覧 f-掲載済 x-初期化"
  22. if tab$="y" then
  23. print "☆タブレットモードではバックボタンを押してから操作を選択☆"
  24. else
  25. endif
  26. else
  27. endif
  28. ink=0
  29. do
  30. if vv$<>"9" then
  31. if tab$="y" then
  32. ! popup "wait...",300,-150,1
  33. ! pause 5000
  34. if jjj=1 then
  35. input "選択=> 1-検索 2-変更 3-削除 4-全一覧 5-新規 6-件一覧 7-メ新 9-終 c-ク a-ラ e-閲 f-済 x-初期",vv$
  36. jjj=0
  37. else
  38. vv$=""
  39. endif
  40. else
  41. inkey$ vv$
  42. endif
  43. endif
  44. if vv$="1" then
  45. gosub kensak
  46. ink=1
  47. endif
  48. if vv$="2" then
  49. gosub henkou
  50. ink=1
  51. endif
  52. if vv$="3" then
  53. gosub sakujo
  54. ink=1
  55. endif
  56. if vv$="4" then
  57. gosub pall
  58. ink=1
  59. endif
  60. if vv$="5" then
  61. gosub intbl
  62. ink=1
  63. endif
  64. if vv$="6" then
  65. gosub pken
  66. ink=1
  67. endif
  68. if vv$="7" then
  69. gosub mintbl
  70. ink=1
  71. endif
  72. if vv$="9" then
  73. ink=1
  74. endif
  75. if vv$="a" then
  76. gosub luch
  77. ink=1
  78. endif
  79. if vv$="e" then
  80. gosub eturan
  81. ink=1
  82. endif
  83. if vv$="f" then
  84. gosub henkof
  85. ink=1
  86. endif
  87. if vv$="c" then
  88. cls
  89. print "メモデータベース>>1-検索 2-変更 3-削除 4-全データ一覧 5-新規 6-件名一覧 7-メモ新規 9-終了 c-クリア a-lunch e-閲覧 f-掲載済 x-初期化"
  90. if tab$="y" then
  91. print "☆タブレットモードではバックボタンを押してから操作を選択☆"
  92. else
  93. endif
  94. endif
  95. if vv$="x" then
  96. gosub syoki
  97. ink=1
  98. endif
  99. until ink
  100. return
  101. !------- TBL Initialize (NEW) routine -----
  102. syoki:
  103. input "本当に初期化しますか?すべてのデータが削除されます。",syo$
  104. if syo$="y" then
  105. else
  106. return
  107. endif
  108. SQL.CLOSE DB_Ptr
  109. SQL.OPEN DB_Ptr, dbname$
  110. tbname$ = "memo001"
  111. c1$ = "kenmei"
  112. c2$ = "updymd"
  113. c3$ = "keisaif"
  114. c4$ = "kanren"
  115. c5$ = "naiyou"
  116. SQL.DROP_TABLE DB_Ptr, tbname$
  117. SQL.NEW_TABLE DB_Ptr, tbname$, c1$, c2$, c3$, c4$,c5$
  118. gosub menux
  119. RETURN
  120. ------- TBL OPEN routine -----
  121. tbopn:
  122. dbname$ = "memo.db"
  123. time y$, m$, d$, h$, n$, s$
  124. today$=y$+m$+d$+h$+n$+s$
  125. SQL.OPEN DB_Ptr, dbname$
  126. tbname$ = "memo001"
  127. c1$ = "kenmei"
  128. c2$ = "updymd"
  129. c3$ = "keisaif"
  130. c4$ = "kanren"
  131. c5$ = "naiyou"
  132. gosub menux
  133. RETURN
  134. !------- memo input routine -----
  135. mintbl:
  136. clipboard.get clzz$
  137. text.input azz$, clzz$,"メモ貼り付けフィールド"
  138. text.open w,flaa,"../../minput/temp.txt"
  139. text.writeln flaa,azz$
  140. popup "一時ファイルに出力しました",0,0,1
  141. pause 4000
  142. text.close flaa
  143. text.open r,file_number,"../../minput/temp.txt"
  144. Text.readln file_number,line$
  145. kenmei1$=line$
  146. keisaif1$="未"
  147. Text.readln file_number,line$
  148. kenren1$=line$
  149. all$=""
  150. while line$ <> "EOF"
  151. Text.readln file_number,line$
  152. if line$ <> "EOF" then
  153. all$=all$+line$+"\n"
  154. else
  155. endif
  156. repeat
  157. Text.close file_number
  158. naiyou1$=all$
  159. popup "一時ファイル読込完了しました",0,0,1
  160. pause 4000
  161. GOSUB insert
  162. gosub menux
  163. return
  164. !------- input routine -----
  165. intbl:
  166. zzzz$=""
  167. while zzzz$<>"n"
  168. text.input kenmei1$,,"件名"
  169. keisaif1$="未"
  170. text.input kenren1$,,"このメモに関連するキーワード"
  171. text.input naiyou1$,,"メモの内容"
  172. GOSUB insert
  173. input "継続しますか?(y/n)",zzzz$
  174. repeat
  175. gosub menux
  176. return
  177. !------- TBL Insert routine -----
  178. insert:
  179. SQL.INSERT DB_Ptr, tbname$, c1$,kenmei1$, c2$,today$, c3$,keisaif1$, c4$,kenren1$, c5$,naiyou1$
  180. Clipboard.put naiyou1$
  181. popup "クリップボードにメモの内容をコピーしました",0,0,1
  182. pause 5000
  183. RETURN
  184. !------- TBL Print routine -----
  185. pall:
  186. title$ = "全件データ一覧"
  187. Columns$ = "_id," + c1$ +"," + c2$ + "," +c3$ + "," + c4$ + "," + c5$
  188. SQL.QUERY Cursor, DB_Ptr, tbname$, Columns$
  189. PRINT title$
  190. xdone = 0
  191. DO
  192. SQL.NEXT xdone,cursor,index$,v1$,v2$,v3$,v4$,v5$
  193. if !xdone THEN
  194. PRINT index$,v1$,v2$,v3$
  195. PRINT v4$
  196. print v5$
  197. endif
  198. UNTIL xdone
  199. PRINT " "
  200. gosub menux
  201. RETURN
  202. !------- TBL Print(kenmei) routine -----
  203. pken:
  204. title$ = "件名一覧"
  205. Columns$ = "_id," + c1$ +"," + c2$ + "," +c3$
  206. SQL.QUERY Cursor, DB_Ptr, tbname$, Columns$
  207. PRINT title$
  208. xdone = 0
  209. DO
  210. SQL.NEXT xdone,cursor,index$,v1$,v2$,v3$
  211. if !xdone THEN
  212. PRINT index$,v1$,v2$,v3$
  213. endif
  214. UNTIL xdone
  215. PRINT " "
  216. gosub menux
  217. RETURN
  218. !------- DB kensaku routine -----
  219. kensak:
  220. input "検索文字列を入力してください。",jjj$
  221. Columns$ = "_id," + c1$ +"," + c2$ + "," +c3$ + "," + c4$ + "," + c5$
  222. Where$ = "kenmei like '%" + jjj$ + "%' OR kanren like '%" + jjj$ + "%' OR naiyou like '%" + jjj$ + "%'"
  223. SQL.QUERY Cursor, DB_Ptr, tbname$, Columns$, Where$
  224. PRINT WHERE$;"の検索結果"
  225. xdone = 0
  226. DO
  227. SQL.NEXT xdone,cursor,index$,v1$,v2$,v3$,v4$,v5$
  228. if !xdone THEN
  229. PRINT index$,v1$,v2$,v3$,v4$,left$(v5$,10)
  230. endif
  231. UNTIL xdone
  232. PRINT " "
  233. gosub menux
  234. RETURN
  235. !------- DB henkou routine -----
  236. henkou:
  237. input "検索文字列を入力してください。",jjj$
  238. Columns$ = "_id," + c1$ +"," + c2$ + "," +c3$ + "," + c4$ + "," + c5$
  239. Where$ = "kenmei like '%" + jjj$ + "%' OR kanren like '%" + jjj$ + "%' OR naiyou like '%" + jjj$ + "%'"
  240. SQL.QUERY Cursor, DB_Ptr, tbname$, Columns$, Where$
  241. PRINT WHERE$;"の検索結果"
  242. xdone = 0
  243. DO
  244. SQL.NEXT xdone,cursor,index$,v1$,v2$,v3$,v4$,v5$
  245. if !xdone THEN
  246. PRINT index$,v1$,v2$,v3$,v4$,left$(v5$,10)
  247. endif
  248. UNTIL xdone
  249. PRINT " "
  250. if tab$="y" then
  251. popup "wait...",300,-150,1
  252. pause 5000
  253. else
  254. endif
  255. input "更新するメモ番号を指定 中止時はx",ckck$
  256. if ckck$="x" then
  257. else
  258. Columns$ = "_id," + c1$ +"," + c2$ + "," +c3$ + "," + c4$ + "," + c5$
  259. Where$ = "_id = '" + ckck$ + "'"
  260. SQL.QUERY Cursor, DB_Ptr, tbname$, Columns$, Where$
  261. PRINT WHERE$;"の検索結果"
  262. xdone = 0
  263. DO
  264. SQL.NEXT xdone,cursor,index$,v1$,v2$,v3$,v4$,v5$
  265. if !xdone THEN
  266. PRINT index$,v1$,v2$,v3$,v4$,v5$
  267. endif
  268. UNTIL xdone
  269. PRINT " "
  270. text.input kenmei1$,v1$,"件名"
  271. Clipboard.put kenmei1$
  272. popup "クリップボードに件名をコピーしました",0,0,1
  273. pause 4000
  274. text.input keisaif1$,v3$,"掲載済フラグ"
  275. text.input kenren1$,v4$,"このメモに関連するキーワード"
  276. text.input naiyou1$,v5$,"メモの内容"
  277. SQL.UPDATE DB_Ptr, tbname$, c1$,kenmei1$,c2$,today$,c3$,keisaif1$,c4$,kenren1$,c5$,naiyou1$: Where$
  278. Clipboard.put naiyou1$
  279. popup "クリップボードにメモの内容をコピーしました",0,0,1
  280. pause 5000
  281. popup "更新完了",0,0,1
  282. endif
  283. gosub menux
  284. RETURN
  285. !------- flag henkou routine -----
  286. henkof:
  287. input "検索文字列を入力してください。",jjj$
  288. Columns$ = "_id," + c1$ +"," + c2$ + "," +c3$ + "," + c4$ + "," + c5$
  289. Where$ = "kenmei like '%" + jjj$ + "%' OR kanren like '%" + jjj$ + "%' OR naiyou like '%" + jjj$ + "%'"
  290. SQL.QUERY Cursor, DB_Ptr, tbname$, Columns$, Where$
  291. PRINT WHERE$;"の検索結果"
  292. xdone = 0
  293. DO
  294. SQL.NEXT xdone,cursor,index$,v1$,v2$,v3$,v4$,v5$
  295. if !xdone THEN
  296. PRINT index$,v1$,v2$,v3$,v4$,left$(v5$,10)
  297. endif
  298. UNTIL xdone
  299. PRINT " "
  300. if tab$="y" then
  301. popup "wait...",300,-150,1
  302. pause 5000
  303. else
  304. endif
  305. input "掲載済フラグを更新するメモ番号を指定 中止時はx",ckck$
  306. if ckck$="x" then
  307. else
  308. Columns$ = "_id," + c1$ +"," + c2$ + "," +c3$ + "," + c4$ + "," + c5$
  309. Where$ = "_id = '" + ckck$ + "'"
  310. SQL.QUERY Cursor, DB_Ptr, tbname$, Columns$, Where$
  311. PRINT WHERE$;"の検索結果"
  312. xdone = 0
  313. DO
  314. SQL.NEXT xdone,cursor,index$,v1$,v2$,v3$,v4$,v5$
  315. if !xdone THEN
  316. PRINT index$,v1$,v2$,v3$,v4$,v5$
  317. endif
  318. UNTIL xdone
  319. PRINT " "
  320. kenmei1$=v1$
  321. keisaif1$="済"
  322. kenren1$=v4$
  323. naiyou1$=v5$
  324. SQL.UPDATE DB_Ptr, tbname$, c1$,kenmei1$,c2$,today$,c3$,keisaif1$,c4$,kenren1$,c5$,naiyou1$: Where$
  325. popup "掲載済フラグを済に更新完了",0,0,1
  326. endif
  327. gosub menux
  328. RETURN
  329. !------- DB eturan routine -----
  330. eturan:
  331. input "検索文字列を入力してください。",jjj$
  332. Columns$ = "_id," + c1$ +"," + c2$ + "," +c3$ + "," + c4$ + "," + c5$
  333. Where$ = "kenmei like '%" + jjj$ + "%' OR kanren like '%" + jjj$ + "%' OR naiyou like '%" + jjj$ + "%'"
  334. SQL.QUERY Cursor, DB_Ptr, tbname$, Columns$, Where$
  335. PRINT WHERE$;"の検索結果"
  336. xdone = 0
  337. DO
  338. SQL.NEXT xdone,cursor,index$,v1$,v2$,v3$,v4$,v5$
  339. if !xdone THEN
  340. PRINT index$,v1$,v2$,v3$,v4$,left$(v5$,10)
  341. endif
  342. UNTIL xdone
  343. PRINT " "
  344. if tab$="y" then
  345. popup "wait...",300,-150,1
  346. pause 5000
  347. else
  348. endif
  349. input "閲覧するメモ番号を指定 中止時はx",ckck$
  350. if ckck$="x" then
  351. else
  352. Columns$ = "_id," + c1$ +"," + c2$ + "," +c3$ + "," + c4$ + "," + c5$
  353. Where$ = "_id = '" + ckck$ + "'"
  354. SQL.QUERY Cursor, DB_Ptr, tbname$, Columns$, Where$
  355. PRINT WHERE$;"の検索結果"
  356. xdone = 0
  357. DO
  358. SQL.NEXT xdone,cursor,index$,v1$,v2$,v3$,v4$,v5$
  359. if !xdone THEN
  360. PRINT index$,v1$,v2$,v3$,v4$,v5$
  361. endif
  362. UNTIL xdone
  363. PRINT " "
  364. tp$=v1$+"\n"+v5$
  365. text.open w,flab,"../../minput/etemp.txt"
  366. text.writeln flab,tp$
  367. popup "一時ファイルに出力しました",0,0,1
  368. pause 4000
  369. text.close flab
  370. system.open
  371. aaax$="/system/bin/am start -a android.intent.action.VIEW -t \"text/plain\" "
  372. bbbx$="-c \"android.intent.category.DEFAULT\""
  373. dddx$=" -d file:/sdcard/minput/etemp.txt"
  374. cccx$=aaax$+bbbx$+dddx$
  375. popup cccx$,0,0,1
  376. pause 4000
  377. system.write cccx$
  378. pause 5000
  379. system.close
  380. Clipboard.put v1$
  381. input " クリップボードに件名をコピーしました ",et$,"y"
  382. Clipboard.put v5$
  383. input " クリップボードに内容をコピーしました ",etx$,"y"
  384. endif
  385. gosub menux
  386. RETURN
  387. !------- DB sakujo routine -----
  388. sakujo:
  389. input "検索文字列を入力してください。",jjj$
  390. Columns$ = "_id," + c1$ +"," + c2$ + "," +c3$ + "," + c4$ + "," + c5$
  391. Where$ = "kenmei like '%" + jjj$ + "%' OR kanren like '%" + jjj$ + "%' OR naiyou like '%" + jjj$ + "%'"
  392. SQL.QUERY Cursor, DB_Ptr, tbname$, Columns$, Where$
  393. PRINT WHERE$;"の検索結果"
  394. xdone = 0
  395. DO
  396. SQL.NEXT xdone,cursor,index$,v1$,v2$,v3$,v4$,v5$
  397. if !xdone THEN
  398. PRINT index$,v1$,v2$,v3$,v4$,left$(v5$,10)
  399. endif
  400. UNTIL xdone
  401. PRINT " "
  402. input "削除するメモ番号を指定 中止時はx",ckck$
  403. if ckck$="x" then
  404. else
  405. Columns$ = "_id," + c1$ +"," + c2$ + "," +c3$ + "," + c4$ + "," + c5$
  406. Where$ = "_id = '" + ckck$ + "'"
  407. SQL.QUERY Cursor, DB_Ptr, tbname$, Columns$, Where$
  408. PRINT WHERE$;"の検索結果"
  409. xdone = 0
  410. DO
  411. SQL.NEXT xdone,cursor,index$,v1$,v2$,v3$,v4$,v5$
  412. if !xdone THEN
  413. PRINT index$,v1$,v2$,v3$,v4$,v5$
  414. endif
  415. UNTIL xdone
  416. PRINT " "
  417. input "このメモを削除します よろしいですか(y/n)",dldl$
  418. if dldl$="y" then
  419. SQL.DELETE DB_ptr, tbname$, Where$
  420. endif
  421. popup "削除完了",0,0,1
  422. endif
  423. gosub menux
  424. RETURN
  425. luch:
  426. SQL.CLOSE DB_Ptr
  427. popup "メモデータベースをクローズしました。",0,0,1
  428. pause 4000
  429. popup "ランチャーを起動します。",0,0,1
  430. pause 4000
  431. run "a-h2lunch1.bas"
  432. return
  433. !------- DB Close routine -----
  434. cldb:
  435. SQL.CLOSE DB_Ptr
  436. popup "メモデータベースをクローズしました。",0,0,1
  437. pause 5000
  438. ! ftp upload
  439. socket.myip ip$
  440. if ip$="" then
  441. return
  442. else
  443. popup "wi-fi接続済",0,0,1
  444. pause 4000
  445. endif
  446. HTML.OPEN
  447. HTML.LOAD.URL "ftpchke.html"
  448. xnextUserAction:
  449. ! loop until data$ is not ""
  450. DO
  451. HTML.GET.DATALINK data$
  452. UNTIL data$ <> ""
  453. type$ = LEFT$(data$, 4)
  454. data$ = MID$(data$,5)
  455. ! Act on the data type
  456. ! Shown are all the current data types
  457. SW.BEGIN type$
  458. ! Back Key hit.
  459. ! if we can go back then do it
  460. SW.CASE "BAK:"
  461. PRINT "BACK key: " + data$
  462. popup "強制終了します",0,0,0
  463. pause 2000
  464. EXIT
  465. SW.BREAK
  466. ! A hyperlink was clicked on
  467. SW.CASE "LNK:"
  468. PRINT "Hyperlink selected: "+ data$
  469. HTML.LOAD.URL data$
  470. array.delete aaa$[]
  471. split aaa$[],data$,"name="
  472. array.length laaa,aaa$[]
  473. print "URL ENCODE:";aaa$[2]
  474. SW.BREAK
  475. ! An error occured
  476. SW.CASE "ERR:"
  477. PRINT "Error: " + data$
  478. popup "エラーが発生しました 強制終了します",0,0,0
  479. pause 2000
  480. exit
  481. SW.BREAK
  482. ! User data returned
  483. SW.CASE "DAT:"
  484. ! PRINT "User data: " + data$
  485. ! Check for Exit
  486. IF data$ = "Exit"
  487. PRINT "FTP送信実施なし"
  488. HTML.CLOSE
  489. popup "FTP送信は実施しません",0,0,0
  490. pause 2000
  491. return
  492. else
  493. Decrypt "sinagawa",data$,decr$
  494. array.delete zza$[]
  495. split zza$[],decr$,"###"
  496. array.length lzza,zza$[]
  497. zzax$="FTP SERVER: "+zza$[1]+"\n"
  498. zzax$=zzax$+"FTP USER: "+zza$[2]+"\n"
  499. zzax$=zzax$+"FTP PASS: "+zza$[3]
  500. popup zzax$,0,0,1
  501. pause 4000
  502. ENDIF
  503. SW.BREAK
  504. ! Form data returned.
  505. ! Note: Form data returning
  506. ! always exits the html.
  507. SW.CASE "FOR:"
  508. PRINT "Form data: "+data$
  509. popup "強制終了します",0,0,0
  510. pause 2000
  511. exit
  512. SW.BREAK
  513. SW.DEFAULT
  514. PRINT "Unexpected data type:", type$ + data$
  515. popup "強制終了します",0,0,0
  516. pause 2000
  517. exit
  518. SW.END
  519. popup "Connecting to ftp server...",0,0,1
  520. pause 4000
  521. ! Set the default path
  522. path$=zza$[1]
  523. fusr$=zza$[2]
  524. fpas$=zza$[3]
  525. FTP.OPEN path$, 21, fusr$, fpas$
  526. ! Clear the default path
  527. path$="/"
  528. !goto fup
  529. FTP.DIR ftplist
  530. list.size ftplist,fsize
  531. for i=1 to fsize
  532. list.get ftplist,i,fname$
  533. print fname$
  534. next i
  535. !fup:
  536. zzz$="../databases/memo.db"
  537. yyy$="memo.db"
  538. POPUP "UPloading メモデータベース...", 0, 0, 1
  539. pause 4000
  540. FTP.put zzz$, yyy$
  541. popup "UPload complete!",0,0,1
  542. PAUSE 4000 % Pause for a little
  543. popup "FTP close process start!",0,0,1
  544. pause 4000
  545. Ftp.close
  546. PAUSE 1000 % Pause for a little
  547. POPUP "メモデータベースUPload 終了", 0, 0, 1
  548. pause 4000
  549. html.close
  550. return
  551. onbackkey:
  552. jjj=1
  553. back.resume
Download Printable view

URL of this paste

Embed with JavaScript

Embed with iframe

Raw text