2017-04-19 21 views
0

Qtで1行ずつテキストファイルを読む必要があります。QtextStreamをQtに保存するには?

私はファイルの最初のX行を読み込む関数を作成しました。しかし、関数が次回に呼び出されたとき私はX + 1行目から読み込みを開始したい。。最初のX行をスキップするだけでこれを行うことができます。

しかし、私は私にエラーを与えるQTextStreamオブジェクト保存しよう:マクロQ_DISABLE_COPYの展開に

を。

ポインタをQTextStreamオブジェクトに保存すると、アプリケーションがハングします。これは最初にX行をスキップすることがこれを行う唯一の方法であることを意味しますか?

答えて

2

pos()を使用してストリームの現在の位置を保存し、次にseek(position)を保存して、直前に到達したポイントから再開することができます。

あなたが読むたびにあなたのQTextStreamがスタックに作成されたと思われます。これは、もはや有効なオブジェクトを指しているぶら下がりポインタであるため、次回クラッシュ時にポインタを使用しようとするとその理由になります。

したがって、テキストストリームを永続化する必要があります。それは、メンバ変数を実装するか、ヒープ上にnewというポインタを割り当てて割り当てるか、新しいテキストストリームを作成して前のポジション。

関連する問題