しらたまのコミッタ日記

2008-03-27

[]=と== 11:23

http://nadesiko.g.hatena.ne.jp/kyuuzyuu9yen/20080324/1206359486

実は、この二つ字句解析上は同じ(だったはず)です。

だから、以下のようなコードは動作します。

あ==「こんにちは」

あを表示

だから例えば一致かどうか調べるために次のようなコードを書くと、期待通りの動作しません。

あ=「こんにちは」

あ==「こんにちは」を表示

期待の動作をさせたければ、次のように書く必要あります

あ=「こんにちは」

(あ==「こんにちは」)を表示

こうすると、()の内部は計算式しか書くことが出来ない、つまり代入式は書けないことにより、正しく比較文として動作します。

なお、==でなく=でも問題なく動作します。

あ=「こんにちは」

(あ=「こんにちは」)を表示

2008-03-21

[]ヌル文字が入る文字列の取り扱い 16:56

なでしこの文字列関連処理は、ヌル終端文字列を想定していることが多いです。

普通の処理では基本的に問題になりませんが、あるWinAPIみたいに複数の文字列をヌルで区切って、最後にはヌル2つ、というようなものでは困ります。

まあ、おらく「while p^ <> #0 do」というループ終了条件を、文字列の長さと比較するようにすれば問題ないと思うんですが。

……以前に文字列メモ確保を一括でするために、ループをいじって処理がうまく動かなくなった記憶が。

とりあえず、出来そうなところから手を付けてみましょうか。

kujirahandkujirahand2008/03/25 12:53修正ありがとうございます!

2008-03-20

[]トリップ算出 23:27

id:periwnkl:20080320:calc_2ch_trip

「CRYPT暗号化」を実装したときに作ったテストコードを引っ張り出してみる。

正規表現修飾子は「go」

パスは「ADC{\0}DEF\」

パスの2から2バイト抜き出す

それの「[^\.-z]」を「\.」へ正規表現置換

それの「:;<=>?@[\\]^_`」を「ABCDEFGabcdef」へ正規表現入換

パスをそれでCRYPT暗号化して10バイト右部分表示

これなら「文字列分解」でヌル文字が使えないことも避できています。

でもまあ、どうせPerlでもcryptってヌル文字があったらこで切るようなので、関係ないんですけどね

 

追記:

periwnklさんの示されているアルゴリズムと、私が見たアルゴリズムが違うことに気づいたので修正。

正規表現修飾子は「go」

パスは「#ADC{\0}DEF\」

パスHG」の2から2バイト抜き出す

それの「:;<=>?@[\\]^_`」を「ABCDEFGabcdef」へ正規表現入換

それの「\x80-\xFF」を「\x00-\x7F」へ正規表現置換

それの「\x7B-\x7F」を「\x2e-\x32」へ正規表現置換

それの「\x14-\x2D」を「\x61-\x7A」へ正規表現置換

それの「\x00-\x13」を「\x47-\x5A」へ正規表現置換

パスをそれでCRYPT暗号化して10バイト右部分表示

多分、これOK

2008-03-12

[][]親部品を無しに 17:59

親部品が無い状態で親部品を取得しようとすると、エラーになっていたのでそれを修正しました。

また、「」または代入することで、親部品をなしにできるようにしました。

…本当は「」以外でも、グループない変数を渡せば親部品無しになりますが、んなことしないでください。

ソースがわかりにくくなるだけだと思いますので。

[]アンテナ 18:38

http://a.hatena.ne.jp/white-ball-nako/

こんなの作ってみた。

登録ページ、自薦他薦問わず募集中。

[][]「作る」に引数 20:14

グループ引数を付けられないものかと、ソースを見ていました。

で、どうやら「~~とはグループ(引数)」という形でのみ呼び出すのなら、付けられなくもない感じです。

……まあ、引数の構文木の作り方調べていないので、まだ分かりませんが。

hima_parser.pasの3800行目付近が肝みたいです。

mu_keysmu_keys2008/03/13 00:10アンテナ、見やすくて面白いですね。

white-ballwhite-ball2008/03/14 23:00コメントありがとうございます。
学習帳トップの検索に引っかかったページとか、いろいろ追加していきたいです。

2008-03-06

[][][]少しコミット 22:05

「コマンド実行」の追加、「和暦変換」「範囲内切り取り」「範囲内置換」の修正を行いました。

うーん、報告溜まりすぎですね。

文字列処理の修正なら比較的手早くできるのですが、GUIの不具合はVCLの仕様の可能性もあったりして、修正が大変です。

新しい命令の追加も、引数に付ける助詞をどういう風に付ければいいかとか、この名前にして他とバッティングしないだろうかとか、機能的な部分とは別なところで悩むことも多いです。

あんまり適当に決めると、不都合が出そうですし……

kujirahandkujirahand2008/03/07 12:03コマンド実行は、欲しい欲しいと思いつつ、作ってなかったものなので、実装されてうれしいです!!その他の不具合修正もありがとうございます!
GUIの修正は、かなり大変ですよね。

AjerAjer2012/06/28 22:09You're the graetset! JMHO

ysfvbxehanyysfvbxehany2012/06/30 08:26wVQWFd , [url=http://zbiziulsmtbc.com/]zbiziulsmtbc[/url], [link=http://gfkscrzsqvma.com/]gfkscrzsqvma[/link], http://mecertphamaf.com/

qgomwakndjaqgomwakndja2012/07/01 18:44vkmcl8 <a href="http://xwqkrgzcrbef.com/">xwqkrgzcrbef</a>

2008-03-05

[]ユニット不足 02:41

サボり過ぎなので、何かしら手を付けようとnakofileを開いてみたらコンパイルできませんでした。

どうやらMasksが不足しているらしいのですが、これはPro版以上ないと付属していないらしいです。

……やっぱり、Dephi2007買うべきなのか。

いやでも、移植する予定とからしいのに、更買うのも。

あー、FreePascalにはこのユニットはあるんでしょうか。

kujirahandkujirahand2008/03/05 10:48おやっ!Masksがコメントアウトされてなかったですか?!
Masks がなくても動くように、代わりのユニットを作っているので、チェックしてみください。

kujirahandkujirahand2008/03/05 10:49Masks -> EasyMasks だったかな?

white-ballwhite-ball2008/03/05 13:12アドバイスありがとうございます。
EasyMasks in 'hi_unit\EasyMasks.pas'に書き換えたらうまくいきました。

NatalyaNatalya2013/05/03 19:24How could any of this be better staetd? It couldn't.

NatalyaNatalya2013/05/03 19:24How could any of this be better staetd? It couldn't.

iezufqylaciezufqylac2014/06/03 16:17htbpcobeftjlp, <a href="http://www.geqrixcfsr.com/">mkymjftfsh</a> , [url=http://www.tbwrgcxhnt.com/]nnoiqozexs[/url], http://www.jzuzffimqq.com/ mkymjftfsh

200612
200701020304050708101112
20080103040506070912
200904
20100204
201104