natsuの秘密基地です
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
カテゴリー
プロフィール
HN:
natsu
性別:
男性
趣味:
酒など
自己紹介:
ここに書かれていることはフィクションです。
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
前のはメイン文にずらずら書いたけど、クラスでまとめたら、
より、それっぽくなるような気がする。
より、それっぽくなるような気がする。
なので、それっぽくする。
一つ、ソースファイルを作る。
二つ、クラスを作る。
三つ、オブジェクトを使うための変数を作る。
解りにくいけど、個数の話ね。
まずOnigiri.mを作る。
そこに、開始点と終了点を保持するデータ型と、
検索処理を行うクラスを作る。
検索処理に渡すパラメータは、
検索対象の文字列。
パターン。
結果の入るMutableArray。
Arrayは開始点と終了点を保持するデータ型が列をなす。
検索処理クラスからインスタンスを初めて作ったとき、
ライブラリをロードして、
ライブラリのインターフェイスのハンドルをもらっておく。
で、その検索処理クラスのインスタンスを使えば
文字列が検索できる。
文字列が検索できる。
インスタンスの最後の一つを解放したとき、
ライブラリが解放される。
って感じでよいんじゃないでしょうか。
実はdlopenやdlcloseは自前でカウンタを持っていて、
オープンするごとに+1、クローズするごとに-1、
しているらしい。
無理に自前で参照カウンタを持つ必要はないとおもう。
私は持ってるけど。
アプリ開始時に初期化、終了時に解放。
でももちろんいいし、
こっちの方が効率がいいと思う。
例のごとく、解凍されたディレクトリに、
libonig.2.dylib
libonig.a
oniguruma.h
を仕込んでみてください。
あと、結果だけども、
鬼車的にはendはマッチした文字列の
終端の次のindexをさすみたい。
私のonigiri::searchは、
文字列中で検索条件に引っかかったものは、
すべて洗い出したいんだけども、
正規表現によっては今の作りじゃそれができない。
ってこのへんはよくわかんないんだけど。
たとえば、
"zzzaffbdailfbafb"
に
"a.*?b"
だと
三つ引っかかりそうな気がするけど、
一つしか引っかからない。
ちなみに私は、do whileかなんかで回しゃいいんしょ。
ぐらいにしか思ってない。
ほかにもちょっと改造が必要。
日本語対応もしたい。
あと、シンタックスはrubyじゃなくてperlで。
んじゃあ、そんな感じに直しますか。
PR
この記事にコメントする