ラベル LibreBasicにいま持ってる知識で立ち向かってみる の投稿を表示しています。 すべての投稿を表示
ラベル LibreBasicにいま持ってる知識で立ち向かってみる の投稿を表示しています。 すべての投稿を表示

2016年12月8日木曜日

LibreBasicにいま持ってる知識で立ち向かってみる  法律勉強プログラムを作ってみるの巻 第11回

パスワードロックによる不具合の原因は

日本語だった…

<<第1回  <第10回                                                            第12回>

 ここまでLibreOfficeで日本語が問題になったことがなかったものだから、完全に盲点でした
コード中の日本語が、パスワードをかけると化ける問題が以前からあるとのこと。
条文を整形する過程でコード中に日本語が多分に含まれているので、完全にコレのせいで挙動不審になっていた模様。

↓参考文献

 今のところコード中の日本語をconstとして定義して使う方法をとっていますが、起動にめっぽう時間がかかるようになってしまったような気がするので、改善の余地ありです。→マシンを再起動したら治りました(;´∀`)

 

2016年12月7日水曜日

LibreBasicにいま持ってる知識で立ち向かってみる  法律勉強プログラムを作ってみるの巻 第9回

 ALPHA版というべきもの

キタ━━━━(゚∀゚)━━━━!!

<<第1回  <第8回                                                            第10回>

alpha2016-12

概要:
e-govから取得した法律データを利用して、法律の暗記を支援するマクロです。
虫食い条文を自分で作成できるので、手軽に条文問題集を作ることが出来ると思います。
条文から判例を検索できる機能を近々追加予定!!

ご興味がある方はこちらからLibreCalcファイルをダウンロードしてください。
ウィルス的なところは、某国会議員並みに「僕を信じてください」w
今のところ無料配布。 マクロの保護が掛けれないため、コードも晒します。

※完全に、e-govの書式依存です(;・∀・)
※当システムは学習支援するものなので、資格試験等の合格を保証するものではありません(;・∀・)
※他、大人の判断で常識範囲内での利用をお願います(;・∀・)
※例外処理は無いに等しいです(;・∀・)
※実用には耐えると思いますが、処理が重いです。改善に努めます。(;・∀・)

※具体的な改善点等、いただけたら幸いです。抽象的な誹謗中傷は要りません

 

2016年12月5日月曜日

LibreBasicにいま持ってる知識で立ち向かってみる  法律勉強プログラムを作ってみるの巻 第8回

  大改修(2)

<<第1回  <第7回                                                            第9回>


必要だと思う機能がだいぶ絞れてきて
落ち着いてきたので、機能の紹介をしてみます。




 学習対象にしたい法律の種類、条文数を指定

  • ブックから全法律シートを取得します
  • 対象範囲全部の法律からランダムに条文を指定個数ピックアップした一覧をシート(以下問題シート)に保存
  • ピックアップは、完全にランダムにもできるし、閲覧日付で重み付けも出来る

 

作成した問題シートを選択

  • 表示する 条文順を選べる(適宜ソートできる)
  •  問題シートには各法律名の頭文字と作成日付がつく

 

 

 

 

 

条文右側のテキストフィールドで、虫食い化

自分で単語を登録することで、条文を虫食い化することが出来る。単語はカンマ区切り。

 




回収:(■は掛け●は実験済み)

  • 「進む」「戻る」のキーボード操作
  • 虫食い単語の簡易高速登録
  • 配列データの一括読み書きによる処理の高速化(■)
  • Libreからブラウザを起動して、判例を検索できるようにする(●)
  • 虫食いの適用/非適用をボタンでスイッチする (●)
  • 並べ替え(条文順、 閲覧日付順)(■)
  • 複数の法律を同時に指定
  • 問題として表示する条文数を指定
  • ランダムに条文をピックアップ(■)
  • メモを書き込めるようにする

 

仕様変更:

  • 法律シートの命名規則 頭に(法)とあるものを法律シートと認識
  • 問題シートの命名規則 頭に(問)とあるものを問題シートと認識
  • イベント発生時のインデックスの参照先を法律シートから問題シートに変更
    • 主に条文のインデックスしか見ない心意気

 

 盛大にハマった技術:

  • ソート
  • setdataarray→要素にemptyがあるとsetを受け付けてくれない
  • ランダムはRAND()ではなくRND()
  • isNumeric()

2016年12月3日土曜日

LibreBasicにいま持ってる知識で立ち向かってみる  法律勉強プログラムを作ってみるの巻 第7回

  大改修

<<第1回  <第6回                                                            第8回>

調子に乗っていろいろ盛っていたら、結構大変なことになってしまい…。
見てくればかり立派になってき、全く実装が追いつきませんぬ(;・∀・)

やりたいこと:

  • 選択した法律全てを網羅して勉強したい
  • 閲覧する条文の数を限定したい
    • 選択した法律の条文(インデックス)を一度乱数でシャッフルし
    • 上から指定個数(デフォルト250個)取得(=統計的に全ての法律を含む飛び石の条文集と考える)
    •  この内指定の割合は、閲覧日付の古いものを含ませることで、忘却曲線に対抗する
    • 適時並べ替え出来るようにする
    • ↑一覧を作成し、保存。 途中からの学習リジューム出来るようにする
  • メモを取れるようにする
  • 判例を容易に検索できるよう工夫する

回収:(■は掛け)

  • 虫食いの適用/非適用をボタンでスイッチする
  • 複数の法律を同時に指定
  • 問題として表示する条文数を指定
  • ランダムに条文をピックアップ(■)
  • 並べ替え(条文順、 閲覧日付順)
  • メモを書き込めるようにする
  • Libreからブラウザを起動して、判例を検索できるようにする(■)

 


2016年12月2日金曜日

LibreBasicにいま持ってる知識で立ち向かってみる  法律勉強プログラムを作ってみるの巻 第6回

  条文を虫食いにする

<<第1回  <第5回                                                            第7回>

↑今回の成果ヽ(`▽´)/


必要なもの:

・「無いものは作る」意思
・自己責任を許容できる寛容な心
・プログラムをトライ&エラーできる程度の時間と勇気
・LibreOffice5
・BASICのプログラム経験
・オブジェクト指向言語を触った経験があれば尚良
・OpenOffice/LibreOffice マクロ

 

したいこと:

・ 条文を登録単語で虫食い状にしたい
・ 単語を自由に登録したい
・ 登録した単語を次回に持ち越したい

したこと:

虫食い単語用のテキストフィールドと、それを保存するためのボタン「反映」を用意。

 

 「反映」が押された時の処理
  • 法律シートの該当条文IDXの10列目に、当テキストフィールドの内容が書き込む
  • 法律シートの該当条文IDXの10列目を参照して、条文テキストフィールドの情報を書き直す
    • 虫食い単語があれば、虫食い状態で表示する
  • 虫食いの単語は半角カンマで区切る

 

 〜能書き〜

法律の暗記用の穴埋め問題集的な感じになってきたのではないでしょうかw
より一層問題集に近づけるため、次回からは次のようなことを実装していきたいと思っています。

今後実装したいこと一覧
  • 虫食いの適用/非適用をボタンでスイッチする
  • 複数の法律を同時に指定
  • 問題として表示する条文数を指定
  • ランダムに条文をピックアップ
  • 並べ替え(条文順、 閲覧日付順)
  • メモを書き込めるようにする
  • Libreからブラウザを起動して、判例を検索できるようにする

 以下、現在のプログラム全部
コピペで動かせます。多分。

2016年11月30日水曜日

LibreBasicにいま持ってる知識で立ち向かってみる  法律勉強プログラムを作ってみるの巻 第4回

リストボックスで選択した法律の条文を

一条づつテキストボックスに表示する

<<第1回  <第3回                                                            第5回>


↑今回の成果ヽ(`▽´)/

今のところ法律条文ビューアーですね…。
一条づつ表示したら何が嬉しいのか…
これから先、このご利益が明らかになっていく!!
好ご期待!!

必要なもの:

・自己責任を許容できる寛容な心
・プログラムをトライ&エラーできる程度の時間と勇気
・vlookupがどのように働くのか、理解できる程度の表計算経験
(今回はvlookup使わないですが、似たような概念は使ってます)
・BASICのプログラム経験


簡単な解説:

・ListBoxで「法律名」が選択されたら、そのイベントをトリガーにして、テキストフィールドの値を変える処理に入る
・テキストフィールドの値は「法律名」「固有インデックス」によって決まる
・ダイアログの次へ/戻るボタンは、「固有インデックス」をひとつだけ進め/戻す
・以上の情報を使ってgetJOUBUNbyIDN()が、テキストフィールドへ書き込むべき一つの条文データを取得しているが、同時にテキストフィールドへの書き込みも担当している。


・他、境界処理、条文の塊把握、バグフィックスなど…

参考資料:

https://wiki.openoffice.org/wiki/JA/Documentation/BASIC_Guide/Events



-次回予告-
・テキストフィールドの書式を整える
・条文番号をアラビア数字に変換する
・BASICからブラウザを起動する


〜能書き〜
変数宣言を強制的にさせるオプションってなかったっけ?
変数名間違えてても走っちゃう言語ってやっぱり苦手かも…。



以下、追加したプログラム

2016年11月29日火曜日

LibreBasicにいま持ってる知識で立ち向かってみる  法律勉強プログラムを作ってみるの巻 第3回

条文シートの条文にインデックスを振ってみる

<<第1回  <第2回                                                            第4回>

↑A列に条文に対応したIDを振ります

必要なもの:

・コンピュータ言語上、「逐次、選択、繰り返し」がわかる程度の知識と経験
・「マクロからシートを操作する」という言葉の意味がわかる程度の知識と経験
・自己責任を許容できる寛容な心
・プログラムを書く時間と勇気

手順:

1. 条文シート加工
2. インデックス挿入サブルーチン作成
3. ダイアログにボタンを追加してサブルーチンを割り当てる