2012-04-05 10 views
0

Qt(やはり)で動かなくなり、テキストファイルからテキストを読み込もうとしています。テキストファイルには次の内容が含まれています。Qtを使ってテキストファイルを読み書きして検索する

1001 James Bark 
1002 Jeremy Parker 
1003 Seinfeld Parker 
1004 Sigfried FonStein 
1005 Rabbun Hassan 
1006 Jenniffer Jones 
1007 Agent Smith 
1008 Mister Anderson 

名前の由来は問いません。このファイルをインデックスに登録してテーブルに追加する必要があります。テーブルには、今のように、次のようになります。

|--------------------------------| 
|   |First Name|Last Name | 
|--------------------------------| 
|1001  |   |   | 
|--------------------------------| 
|   |   |   | 
|--------------------------------|  
|   |   |   | 
|--------------------------------|  
|   |   |   |  
|--------------------------------| 

しかし、それはこの

|--------------------------------| 
    |   |First Name|Last Name | 
    |--------------------------------| 
    |1001  |James  |Bark  | 
    |--------------------------------| 
    |1002  |Jeremy |Parker | 
    |--------------------------------|  
    |1003  |Seinfeld |FonStein | 
    |--------------------------------|  
    |1004  |Rabbun |Hassan |  
    |--------------------------------| 

テーブル部との問題ではないにアイテムを置くように見える必要があります。問題は、上部の例のように書式設定されたテキストファイルを読むことにあります。また、私はそれをそのようにフォーマットする必要はありません。私は、これらのファイルにID、Fname、およびLnameを分けた3つの異なるテキストファイルを持つことができます。これは面倒ですが、もし私がこれをしなければならない場合、私はします。

私の質問は、このファイルをインデックスしてこれらの値を取得する方法です。私はどこかのチュートリアルから得た

Function(){ 
    QString fileName = "C:\\Users\\Gabe\\SeniorProj\\Students.txt"; 
    QFile mFile(fileName); 

    if(!mFile.open(QFile::ReadOnly | QFile::Text)){ 
     qDebug() << "Could not open file for reading"; 
     return; 
    } 

    QTextStream in(&mFile); 
    QString mText = in.readAll(); 

    mFile.flush(); 
    mFile.close(); 
    } 

このコード:

は、ここでの機能です。すべてが機能し、ファイルにアクセスできるかどうかを確認したところ、すべてが良好です。しかし、どうすればいいですか...私はすべてのテキストに等しい文字列を持っています。これはあまり役に立ちません。だから、私はC++で使ったものを試しました。mFile.nextInt();その機能は存在しません!!!

Qtの特定のものについてテキストファイルを検索するにはどうすればよいですか?

答えて

5

このファイル形式では、名前にスペースが含まれていると大変な問題になります。なぜなら、ファーストネームまたはラストネームに2つの部分が含まれているかどうかわからないからです。

1001;James;Bark 
1002;Jeremy;Parker 
1003;Seinfeld;Parker 

そして、一度にライン1を読んで(QTextStreamのマニュアルを参照してください)とQStringListへのQStringを分割:

+0

これは本当に助け、それは例えば、セパレータとしていくつかの他の文字を使用することを検討してくださいまさに私が必要としたものでした。本当にありがとう^ _ ^ – Gabe

関連する問題