natsuの秘密基地です
カレンダー
03 | 2025/04 | 05 |
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ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
UTF-8で何バイト目だぜ。
関数を3つ追加することにした。
って言われたときに、
それが何文字目か調べるメソッドがNSStringにあれば、
便利な気がした。
あと、何行目か、とか。
ついでに問答無用のテキストロードも実装したい。
stringWithContentsOfFileじゃ、
標準のエンコードじゃないとロードしないみたい。
Shift JISの方言だったっけ。
レッツ、カテゴリ。
関数を3つ追加することにした。
- (int)getLineNumber:(int)numberOfChar;
- (int)getNumberOfCharUTF8:(int)countOfByte;
+ (NSString *)loadText:(NSString *)fileName;
この3つ。
getLineNumberと getNumberOfCharUTF8は
なんとなく昨日の感じでいいんだと思う。
なんでもロードはどうしよう。
getLineNumberと getNumberOfCharUTF8は
なんとなく昨日の感じでいいんだと思う。
なんでもロードはどうしよう。
だもんで、
stringWithContentsOfFile:usedEncoding:error
なんかね。いかにもいけそうな感じじゃん。
ということでトライ。
結果としていけた。
UTF-8とUTF-16だけ。
EUCとShift JISのMac弁はだめ。
エンコード指定ならOKみたい。
こうなったらあたってくだけろ法しかないのか。
もしかしたら、ファイルを開いたけど、どんなエンコードだったか。
っていうのが後で解ると便利かもしれない。
いま、自分がやってることは、
「テキストなら読む。ただそれだけだ」
っていう方針なので、必要ないけど。
今回NSStringの拡張をカテゴリでやってるんだけども、
カテゴリはメソッドの拡張しか出来ないので、
新たな値を保持したい場合、継承をするしか無い。
MyNSStringが出来ちゃう、と。
そういった意味で、チョッチ機能追加。
っていうときにカテゴリっていうのは便利な気がする。
プチ拡張。みたいな。
メソッド上書きはちと怖いけど。
javascript好きにはたまんない機能だと思うよ。
よくわかんないけど。
今回のケースでは、もし、
ロードしたテキストのエンコードがなんだったのかが知りたい場合、
それをオブジェクト内に保持しなきゃなんないので、
カテゴリではなく継承を行うことになる。
staticでリストを持つの?
動的辞書でNSStringのポインタをキーにすればいいけど。
まあ、素直が一番だから。
ソースは"何でもロード"が出来上がったらあぷります。
PR
この記事にコメントする