タグ

ブックマーク / hake.hatenablog.com (2)

  • C++でQTアプリ(その5) テキストファイルのアクセス - hakeの日記

    テキストファイルの読み書きをしてみる。ファイルリードボタンを押すと/home/zaurus/Documents/sjis.txtの内容をテキストエリアebに表示、ファイルライトボタンを押すとテキストエリアの内容を/home/zaurus/Documents/sjis2.txtへ出力する。 アクセスするファイルの文字コードはQTextCodecで指定する。ファイルへのアクセスは QTextStreamを介して行う。ストリームを使用することで行単位の読み込みや「<<」を用いての出力が可能になる。ファイルリードについてはQFileのリファレンスの例題をそのまま使用した。 テキストエリアebの行数が多い場合は、eb->textをストリームにして1行ずつ出力した方が良いのかもしれない。 QTesxtCodecは各スロットではなくコンストラクタで文字コードを定義して使用したかったのだけど、やり方が不明

    C++でQTアプリ(その5) テキストファイルのアクセス - hakeの日記
  • C++でQTアプリ(その3) 正規表現 - hakeの日記

    Rubyほどの機能は無いようだけれども、QTでもQRegExpクラスを用いることで正規表現によるパターンマッチングが可能みたい。下のプログラムではRegExp欄に正規表現、String欄に文字列を入力してボタンを押すとマッチした文字列を表示する。 QTの正規表現の詳細はリファレンスを参照。このクラスは日語の文字も認識してくれるのは便利です、ただし\sで全角スペースの認識は無理だけど。。。 それとは別に、結果を表示する為の関数printを定義して日語と半角英数字を別に出力させると、まず英数字が全部まとめて出力されてから日語がまとめて出力というように順番が狂って出力されてしまった、原因は不明??? そのため日語と英数字を一個のQStringにしてから出力させるようにしたら上手くいった。 regexp.h #ifndef REGEXP_H #define REGEXP_H #includ

  • 1