2016-11-02 11 views
0

私は、学校プロジェクトとして最初から強調表示されている構文のテキストエディタを作成しています。今、私はQStringListをテキストデータの格納に使用しますが、後で構文の強調表示機能を追加して、データをどのように格納するべきかわかりません。構文強調表示されたテキストを保存する方法は?

1つのオプションは、色情報を一切保存せずに、コードパーサーから継続的に取得することです。しかし、これは恐らく非常に非効率的であろう。

もっと良いアイデアは、テキスト内のすべての単語の色を保存するすべての行について、構造体のリスト(色と文字列を含む)があることでしょう。しかし、私はどれくらい速くなるかわからない。

これらのデータを保存する最良の方法は何ですか?

ありがとうございます

答えて

-2

この質問は多分広すぎます。しかし、おそらくHTMLマークアップを使うことができます。これは、ブラウザで出力を開くことができるように、テストする簡単な方法を提供します。

0

私は2つの方法を提案します。

方法1:属性付きのテキストを格納する
データ構造を構造体のコンテナに変更します。

struct Text_With_Properties 
{ 
    std::string text; 
    Properties text_properties; 
}; 

これは、より多くのスペースを取ることが最も効率的な方法ではないかもしれない:構造は、テキスト文字列とスタイル変数が含まれます。

方法2:スタイルの変更
多くの編集者は、その後、通常のフォントでテキストを表示するスタイルの変化を解析し、別のパスを行いますに関して解析。たとえば、2回目のパスでC++キーワードが見つかると、エディタはそのスタイルを変更します。

この方法ではデータのためのスペースは必要ありませんが、処理時間は長くかかります。

関連する問題