忍者ブログ
natsuの秘密基地です
はまり
はまり一件ごとのお話の流れです
カレンダー
01 2020/02 03
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
プロフィール
HN:
natsu
性別:
男性
趣味:
酒など
自己紹介:
ここに書かれていることはフィクションです。
ブログ内検索
アクセス解析
[22] [21] [20] [19] [18] [17] [16] [15] [14] [12] [11
×

[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
この記事にコメントする
NAME:
TITLE:
color:
MAIL:
URL:
COMMENT:
PASS: Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:


Copyright (C) 2010 NEST,
All right Resieved.*Powered by ニンジャブログ *Designed by にこるん  / 忍者ブログ / [PR]