ラベル 法律勉強プログラムを作ってみるの巻 の投稿を表示しています。 すべての投稿を表示
ラベル 法律勉強プログラムを作ってみるの巻 の投稿を表示しています。 すべての投稿を表示

2016年12月8日木曜日

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

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

日本語だった…

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

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

↓参考文献

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

 

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年12月1日木曜日

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

 取得した条文を整形して、

読みやすく加工する

<<第1回  <第4回                                                            第6回>

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

必要なもの:

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

 

簡単な解説:

条文は条文シートから1行づつ取ってきているので、そのタイミングで整形することにした。
整形専用のサブルーチン
  • 条、項、号、イロハは行を変え、インデントをつけて表示する
  • 行に含まれる漢数字は”全て”アラビア数字に変換(変換パターン2つに対応w)
    • 百十条 → 110条
    • 百十条 → 一一〇条 ←後で使う事になるのさ
    • 逆変換はできません(;・∀・)

↑おおかたこんな感じの表示になります

↑無慈悲な変換w



LibreOffice(≒OpenOffice)には無いらしい…ので、あえなく自作せざるを得ない。
・文字列置換関数
・漢数字をアラビア数字に変化する関数


以下、今回追加した関数

2016年11月29日火曜日

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

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

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

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

必要なもの:

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

手順:

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

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

法律条文をインターネット上から拾ってきます

←第1回                                                            第3回→


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

必要なもの:

・インターネット接続環境
・コピペするときに「書式設定」 ができるということを知っている程度のPCスキル
・ 「law.e-gov.go.jp」シリーズを使います
・自己責任を許容できる寛容な心
・時間と勇気

以下手順:


「law.e-gov.go.jp」のデータがフォーマットも一様なので、機械的な操作にはやりやすいです。
以後、このデータが保存されていることを前提に、プログラムを書いていきます。


全選択&コピー(CTR+A, CTR+C)

calc画面に戻ってセルA1で右クリック
「形式を選択して貼り付け」


画面のようなダイアログが開きますが、何も変えずに「OK」

1行づつ分けた状態でcalcに取り込めました。
シート名を編集しておきます。

〜能書き〜