メモ帳のデータを読んでみた
Palmプログラミングの勉強の続き。今日は、標準アプリのメモ帳のデータを読み込んでリストに一覧表示させるプログラムを作ってみた。サンプルプログラムにメモ帳のプログラムもあるんだけど、分からないところだけ参考にして、あとはできるだけ自力で書いてみた。
メモリ使用量とか性能とかを無視して作ると、下記のようなコードでメモ帳のリストが作れる。
Char titleList[MAX_LIST_SIZE]; static UInt16 CurrentMemoCategory = dmAllCategories; /* recordPから最大MAX_TITLE_SIZE長で1行取得する関数 */ Char* GetLine(const Char* buffer, UInt16 maxLength) { /* 省略 */ } /* 現在選択されているカテゴリでリストを更新 */ void UpdateTitleList(ListType *listP) { int i = 0; MemHandle recordH; Char* recordP; recordH = DmQueryNextInCategory(MemoDBRef, &i, CurrentMemoCategory); while(recordH != NULL && i < MAX_LIST_SIZE) { recordP = MemHandleLock(recordH); titleList[i] = GetLine(recordP, MAX_TITLE_SIZE); //recordPから最大MAX_TITLE_SIZE長で1行取得する MemHandleUnlock(recordH); i++; // 次のレコードへ recordH = DmQueryNextInCategory(MemoDBRef, &i, CurrentMemoCategory); } LstSetListChoices(listP, titleList, i); }
それにしても、メモリ操作は面倒くさいなぁ。初期化忘れとか、確保するメモリサイズを間違えたりすると、簡単にプログラムが吹っ飛ぶ。その上、どこを間違えているのか探すのも苦労する。Javaのように、メモリ管理をあまり意識しなくて良いプログラミング言語のありがたみをあらためて実感。