CDocLineMgr: ┏━━━━━━━━━━━━━┓ ┃ 参照・編集メソッド ┃ ┃┌───────────┐┃ ┃│ドキュメントが保持する│┃ ┃│テキストデータ │┃ ┃└───────────┘┃ ┗━━━━━━━━━━━━━┛ |
参照メソッドは指定した範囲の文字列を返します。編集メソッドは指定位置に文字列を挿入、置換、移動、
削除を行います。これらのメソッド以外にもサポート的なメソッドが少しあります。
クラスの定義は以下のような感じです(SLTextPos については次節を参照)。
class CDocLineMgr : public CStringList { ..... public: CDocLineMgr(void) : CStringList(1000) { init(); }; ~CDocLineMgr(void); const CString &getLineString(int line); int getText(const SLTextPos *, const SLTextPos *, CString &); void insertText(SLTextPos *, const char *); void deleteText(const SLTextPos *, const SLTextPos *, CString &); void replaceText(const SLTextPos *, const SLTextPos *, SLTextPos *, const char *, CString &); void moveText(SLTextPos *, SLTextPos *, SLTextPos *); void doShiftLeft(int, int, int &, int *&); void doShiftRight(int, int, int , const int *); void doChangeLineorder(int, int, const int *, int rev=0); void doLineorderRevers(int, int); void doChangeBlockorder(int, int, int, const int *, int rev=0); ..... };
struct SLTextPos { int m_line; // 行番号(0オリジン) int m_offset; // 行頭からのオフセット public: SLTextPos(void); SLTextPos(int line, int offset); SLTextPos(const SLTextPos &pos); SLTextPos(const SLTextPos *pos); BOOL operator==(const SLTextPos &pos) const; BOOL operator!=(const SLTextPos &pos) const; BOOL operator>(const SLTextPos &pos) const; BOOL operator>=(const SLTextPos &pos) const; BOOL operator<(const SLTextPos &pos) const; BOOL operator<=(const SLTextPos &pos) const; };
Copyright (c) 1997 by Nobuhide Tsuda, All Right Reserved.
このホームページに関するご質問、ご要望、バグレポート等は
ntsuda@beam.or.jp
までメールをいただければ幸いです。