今年やったこと2つ。

今年は以前と違ってニートでなかった時期が比較的長く、また「部屋が汚いから自宅勤務をやりたくない」という個人的な理由により、なかなか調査時間を取るのに難航しました。「今年多少なりとも関わってなくもない事」リストを眺めていたところ、何とか一昨…

Unicode Collation Algorithm

この記事はLibreOffice Advent Calendar 2020の記事です。時間オーバーして2020-12-24に公開していますが、2020-12-23の記事です。 自分がなにか書く時って大抵最近(?)出会ったバグレポをとっかかりにすることが多く、今回もネタとしては、tdf#125363 - U…

WIP:StarBasicのコード(C++)を読もう!

まず、StarBasicのコードがどのように実行されているかを順番に示す。 SbiTokenizerは、StarBasic中の各語(トークン)が何であるかという情報を割り当てる。(字句解析)。なお、次のトークンを切り出す際にはSbiScanner::NextSymの力を借りている。その際色々…

俺が列名変換問題を解くと…

今回はLibreOfficeは直接関係ない話。 まずは俺の解き方の紹介から。 条件変更: 問題1と問題2は同時に公開されて出題されたものとする。アルゴリズムを考えればOK。Perl?知らない子ですね。ある数の上位の桁が書かれていないときって、そこに0が書かれてい…

「オプションの違い」による「印刷」と「エクスポート」の違い

LibreOffice Advent Calendar 2018の22日目の記事です。前回はRakugouさんのデータの前処理で躓いた時の話でした。 再現手順(With LibreOffice master[6.3]) LibreOffice Writerを起動する メインメニューから[書式]→[ページ] [背景]タブ→[色]→[赤]→[OK] メ…

動機というかなんというか

理解されなかったり誤解されやすい関数でいつか説明したいとは思ってた。どのタイミングでどうやって切り出すか迷ってたけどいい機会なので。英辞郎によるto dateの意味明日のLibreOffice Advent Calendar 2018はMucky999さんの「LibreOffice Conference 201…

補遺

四則演算の演算子(+-*/)を関数に置き換えましたが、^とか他にも演算子はいっぱいある。>演算子とか。左側の式が大きかったときに1を右側の式が大きかったときは0を返すわけだ。 Style関数は、適用されるスタイルを変更する。 今までの議論を踏まえてCurrent…

短絡評価

通常は全ての引数が順番に評価されるから =Mod(4+Current(),Current()) の場合 4 Current Add Current Mod というように引数間もその影響を受ける。答えはもちろん0 ただ、例えばIf関数(関数ということにしておく)の第一引数がtrueであったときは第三引数、f…

ここから本題

Current関数は引数を取らない関数で、逆ポーランド記法を処理するときに登場すると、そのときにリストの先頭にあったものを取り出して(pop)2回先頭に突っ込む(push)。つまり先頭が複製される。 =1+3*Current() は 1 3 Current Multiply Add だから 1 こうし…

関数に置き換える

こんな感じで関数が定義されていたとする。 Function Add(arg1 As Double, arg2 As Double) As Double Add = arg1 + arg2 End Function Function Subtract(arg1 As Double, arg2 As Double) As Double Subtract = arg1 - arg2 End Function Function Multipl…

たのしい関数:Current関数

2018年12月13日のLibreOffice Advent CalendarはnogajunさんのLibreOfficeを使ってるならTelegram messengerの「LibreOffice-JA」グループに入ろうでした。(この辺の紹介はEnokiさんのマネ)この記事はLibreOffice Advent Calendar 2018の14番目の記事です。 …

test