ユーザーブロマガは2021年10月7日(予定)をもちましてサービスを終了します

  • 作りかけだけど一応忘備録

    2014-08-26 02:15
    最近私のPSO2支部がブラック企業になりました。

    こんばんは祖肉です。

    今回はただの忘備録だよ!楽しくないよ!

    まるぺけさんのところとかを参考に未だにちまちまと
    プログラムをしている私ですが、
    とりあえずC++標準機能のstd::stringをワイド文字サポートしようと
    自作してみてます。

    とりあえずstringと同じように扱えるようにしたいなーとは思いつつも、
    そうはできそうにない雰囲気。

    SonikStringの構想:
    1. 内部の文字列はUTF-8として持つ(まるぺけさんのところを参考に)
    2. 関数でwchar_tで取得、マルチバイト文字列のchar* で取得までサポート(今のところ)
    3. std::stringに近づけるために、operator = などもサポート。
    4. 比較演算子のサポート
    5. めんどくさいものはサポートしない(自己都合)
    6. 知らない文字コードのことは考慮しない。
    7. このソース内でのマルチバイト文字はshift-jisとする。

    今回一番つまりそうなところ:
    文字列変換
    比較演算子のサポート


    現状:
    文字列変換まで完成。


    自分用のライブラリだから別に手抜きでもいっかなとか思いつつやっている勢い。

    作成の最中、文字列変換ができたので記録しておきます。

    さて、コンピュータ上での文字列の中では、基本的に、3種類くらいに大別されるみたい。
    1. シングルバイト
    2. マルチバイト
    3. Unicode

    シングルバイトは半角カナを除くアルファベットやキーボード上にある記号を表すのに最適
    な文字列表現(と私は捉えているだけで、厳密にはたぶん違う)
    すべての文字列は、1byteで表現されます、

    マルチバイトは日本語などの、全角文字(半角カナは全角文字に含まれるっぽいです)を表現するために作成された文字列表現(と私は捉えてるだけd..ry)
    文字列は1byte~2byteで表現されます。

    Unicodeは全部表現できるようにがんばったけど、結局ややこしくなった。でもちょっとがんばったら大体標準のものができちゃったので、それを使おうみたいな勢いの文字列表現
    (と私は捉えt..ry)
    文字列はUTF-16であれば2byte, 32であれば 4byte
    utf-8 は1~7byteほどで表現されます。(utf-8の場合3byte以上は使わなさそうな感じ)

    で、今回のSonikStringは、Unicodeに分類される
    UTF-8
    UTF-16(32)
    と、
    マルチバイト
    シングルバイト
    に対応します。

    開発環境はEclipse 4.4(LUNA) のMingw x86 で作成します。VC++でも全然できます。
    VC++にしないのは汎用的に作るとなるとWindowな部品を取捨選択しないといけないからで
    別にEclipseにこだわる必要はありません。(あとは金銭的な面とか)

    下準備として Eclipseの C++コンパイラのその他のフラグに下記を追加しておきます。
    --exec-charset=cp932

    これはexeを作った時にそのexeではダブルクォーテーション("")で囲まれた文字列は、
    マルチバイトとして表現しますよ。って意味のフラグっぽい(そう勝手に解釈した)
    これをつけないとgccではすべて(値を見た感じ)UTF-8として扱っているみたいです。

    あと、よくgccでは、wchar_t型は4byteだ!とよくみかけますが、
    Mingw では __WCHAR_TYPE__(wchar_t) は short unsigned int となっていて、
    2byteのようです。( sizeof(wchar_t) でも確認。)
    でも4byteの環境もありそうなので、そこはソース内で吸収します。

    ここまでできたら
    マルチバイトかUTF-8かの判定関数を作成する。
    コンバートする関数を作る
    で変換完成です。

    書くの疲れたので今回はここまでにしよう。

    次回は覚えてたら判定関数の解説をメモります。







  • 広告
  • ぽつりと

    2014-06-10 03:06
    更新してみようかなと思った祖肉です。
    こんばんは。

    ちょっと前にですけどウォークマンを買いました!
    買っちゃいました!欲望には負けちゃいました!

    買った製品はsony信者な私はこれ。

    http://www.sony.jp/walkman/products/NW-ZX1/store-w/

    NW-ZX1さん!

    ついでにイヤホンもシェア製の物からこっちに買い換えてみました。
    http://www.sony.jp/headphone/products/XBA-H3/


    お値段は張りましたが、個人的には満足してるのでいいかなと思ってます。
    なによりハイレゾ音源の透明感が凄まじい。
    好きなアニソンとか全部ハイレゾで配信されないかなと希望を持ってみたものの
    古いのはヤッパリダメッスヨネーって感じで最近のでもジョジョくらいしかないしー

    あとはとなりの関くんのOP/EDとか?

    あ、ちなみに購入サイトは基本moreです。

    イコライザは前は付属品(Sony製)のものを使ってましたが
    今はGoneMADMusicPlayerに乗り換てみました。


































    蟲師続章のサントラはぜひハイレゾで出してほしいなぁ。
    買っちゃいたい。ハイレゾのほう。

    CDしか発売されないならあきらめてCD買うしかないけど・・・。

    蟲師続章は基本手書きだそうで
    表現力とこだわりでちょっと30分ですごく感動しちゃう私がいます。
    ブルーレイ買っちゃってもいいかなって思うくらい。

    先週の物語は結構ぐっとくるものがありました。コメント?もちろんだまって非表示。
    一回見た後表示したらひどかった。

    回りはテラリアにはまっているようですが、私はなんかポツリとお呼びもかからなく
    なりました。

    ので、何かしらいつも通りのぼっちでゲームやら仕様かなと思います。
    FF10HD版そろそろ進めなきゃねーFF14もだけど。
    PSO2はTAやってればOK。

    TAは基本てんこちゃんねるでやってます。
    よかったら来ると、チャオが喜ぶかもしれません。
    ちなみにドMらしいのでいじめてあげてください。

    何はともあれ、しばらくさみしい期間が出てきそうです。

    仕事もやる気ないんだけどー早く辞めさせてほしい。
    まぁ最悪郵送すればこっちのもんですがねー。

    それでは今日はこの辺で ノシ。
  • やっぱり難しい

    2013-08-19 17:012
    と思うコミュニケーション。
    どんな科学や
    どんな数式よりもー。

    本日でFF14 のオープンβも終了です。

    ログインしてちまちま遊んでいましたが、
    やっぱり団体やグループの中にいると、
    期待を持ってしまうもので・・・。

    とりあえずまたぼっちになりました。
    なってしまったのではなく、自分でなりました。

    いろんなことを思うと、いろんな思いが交差するもので。
    ポエムですかねぇ。

    とりあえずまた新天地を求めて・・どっか遊んでくれるところを探すかなぁ。

    こんな私でよければいつでもお声かけてください。

    それでは今日はこの辺で ノシ。