char* → ディスクリプタ
諸事情があってchar*データを、Symbianのディスクリプタで扱いたい場合
char* c_str = "abcあいうM1234";
// c_strを自前 SJIS-Unicode変換ライブラリにより変換(非公開スマソ)
// ↓変換結果
char unicode[] = {97, 0, 98, 0, 99, 0,
66, 48, 68, 48, 70, 48,
77, 0, 49, 0, 50, 0, 51, 0, 52, 0,
0, 0};
TText* ttext = (TText*)unicode;
TPtrC tptrc(ttext);
label->SetTextL(tptrc);
//label->SetTextL(iOutputString->Des());
ドコモサンプル02_FontExのCFontExLabelPageのCreateLabelLのところを差し替えると、簡単に実行&確認できると思います。
参考サイト
http://forum.newlc.com/
charとかで検索すると、
how to convert char * to TDes
http://forum.newlc.com/index.php/topic,9902.0.html
などなどが引っかかります(同様の質問が多数)。
http://forum.newlc.com/
charとかで検索すると、
how to convert char * to TDes
http://forum.newlc.com/index.php/topic,9902.0.html
などなどが引っかかります(同様の質問が多数)。
char* ← ディスクリプタ
調査中・・・
適当コード(鋭意改版中)
適当コード(鋭意改版中)
TPtrC tptrc; // どこからともなくでてきたTPtrC char unicode[1024]; Mem::Copy(unicode, tptrc.Ptr(), tptrc.Length()*2); unicode[tptrc.Length()*2] = 0;
補足
自前コード変換なんかよりも、↓とか使ったほうがいいとは思うんだけど・・・(調査中)。
UIQ 2.1 SDK
>> Developer Library
>> API Reference
>> C++ API reference
>> Character Conversion
自前コード変換なんかよりも、↓とか使ったほうがいいとは思うんだけど・・・(調査中)。
UIQ 2.1 SDK
>> Developer Library
>> API Reference
>> C++ API reference
>> Character Conversion
SJIS ⇔ Unicode
シフトジス⇔うにこーどの変換手順(注意:ここだけの話ですが、筆者は文字コードってあんまよくわかってません(瀧汗)。
- 1.mmpファイルの編集
- ライブラリ追加
LIBRARY charconv.lib
- 2.makefile再構築
- 私の環境は、VCなので、
abld makefile vc6
- 3.ソースの編集
- includeファイル追加、変換サンプル
#include <charconv.h>
CCnvCharacterSetConverter* converter=
CCnvCharacterSetConverter::NewLC();
CCnvCharacterSetConverter::TAvailability ta =
converter->PrepareToConvertToOrFromL(
KCharacterSetIdentifierShiftJis,
CEikonEnv::Static()->FsSession());
if (ta != CCnvCharacterSetConverter::EAvailable)
{
return;
}
TInt state=CCnvCharacterSetConverter::KStateDefault;
char* c_str = "M専ハァハァ";
TText8* ttext8 = (TText8*)c_str;
TPtrC8 tptrc8(ttext8);
TBuf8<128> sjisText(tptrc8);
TBuf<128> unicodeText;
TInt ctu=converter->ConvertToUnicode(unicodeText, sjisText, state);
if (ctu == CCnvCharacterSetConverter::EErrorIllFormedInput)
{
return;
}
CleanupStack::PopAndDestroy(); //clean for converter
label->SetTextL(unicodeText);
ドコモサンプル02_FontExのCFontExLabelPageのCreateLabelLのところを差し替えると、簡単に実行&確認できると思います。
参考サイト(コピペ元)
How can convert Unicode to Iso88591?(with code)
http://forum.newlc.com/index.php/topic,2901.0.html
How can convert Unicode to Iso88591?(with code)
http://forum.newlc.com/index.php/topic,2901.0.html
CのFILEによるファイルIO
やんごとなき事情があって、FILEを使わざるをえない場合
- 1. mmpファイルの編集
- include パス、ライブラリ追加
SYSTEMINCLUDE \epoc32\include SYSTEMINCLUDE \epoc32\include\libc LIBRARY estlib.lib
- 2.makefile再構築
- 私の環境は、VCなので、
abld makefile vc6
- 3.ソースの編集
- includeファイル追加、FILE使用例
#include <stdio.h>
#include <string.h>
// 入力・出力ファイルオープン
FILE* rf = fopen("C:\\m1000.txt", "r");
FILE* wf = fopen("C:\\m1234.txt", "w");
// 入力・出力バッファ
char line[1024];
char wline[1024];
TInt n = 0;
while (fgets(line, 1024, rf) != NULL) //一行ずつ読み込み
{
// 適当に出力行を調整して
sprintf(wline, "行[%04d][%04d]%s", ++n, strlen(line), line);
// カキコ
fputs(wline, wf);
}
// クローズ
fclose(wf);
fclose(rf);
参考ドキュメント
UIQ 2.1 SDK
>> Developer Library
>> API Reference
>> C++ API reference
>> C/POSIX Standard Library
(たぶん、このリファレンスにある関数は使えるんじゃないかなぁ・・・)
UIQ 2.1 SDK
>> Developer Library
>> API Reference
>> C++ API reference
>> C/POSIX Standard Library
(たぶん、このリファレンスにある関数は使えるんじゃないかなぁ・・・)
UIQ 2.1 SDK
>> Developer Library
>> Symbian OS Guide
>> C++ API guide
>> Base
>> C Standard Library
(ぜんぜん読んでないけど)
>> Developer Library
>> Symbian OS Guide
>> C++ API guide
>> Base
>> C Standard Library
(ぜんぜん読んでないけど)
どこかのサンプルプログラムへコピペして、ブレークポイントとか
で動作を追ってみる(というほどのものではないけどね)といいかも。
で動作を追ってみる(というほどのものではないけどね)といいかも。
もしかすると、Symbian流ファイル操作は↓なのかもしれません(苦笑)
UIQ 2.1 SDK
>> Developer Library
>> Symbian OS Guide
>> C++ API guide
>> Base
>> File Stores
UIQ 2.1 SDK
>> Developer Library
>> Symbian OS Guide
>> C++ API guide
>> Base
>> File Stores
- おお、初のTipsだw自分もこの辺でまだ悩んでたところなんで助かります(T-T)自分ももっとがんばらねば… -- ま~ (2005-08-28 14:06:16)
- でもコピペPGなんでこれでいいものか気になるところです。 -- 名無しさん (2005-08-30 00:04:02)
- 後はファイルのIOさえわかれば簡易なアプリも作れるんですけどね… -- Ryu (2005-09-07 13:54:11)
- てきとーにファイルIOを書いてみました -- 名無しさん (2005-09-08 00:17:33)
- 日本人だと文字コードがうんたらかんたらと面倒だな -- 名無しさん (2005-09-21 15:46:42)
- Symbianでファイル操作したければ、RFs, RFileといったクラスを使う必要があります。泣き所はfgetsのような改行を区切りに1行ずつ読むというのができないのが難点 -- ななし (2006-06-21 21:54:06)
- 感謝します。SJIS変換できました。 -- 名無しさん (2007-10-15 21:58:37)
このwikiの更新情報RSS