[ _ikac @ 29.01.2013. 16:42 ] @
Pravim jednu aplikaciju u QT creatoru, nije obavezan primer za QT moze i obican C++ sve jedno..
Moj problem je sledeci.

Imam tekstualni faj koji sadrzi neka pitanja i odgovore kao sto je dole prikazano.

pitanja_odgovori.txt

Pitenje_1 = Odgovor_1
Pitenje_2 = Odgovor_2
Pitenje_3 = Odgovor_3

Ovakve redove imam u tom tekstualnom fajlu.
Sta men muci sada, ja zanm da citam fajl LINE BY LINE. Kako da citam red linije do znaka "="?

Ako je korisnik uneo pitanje "Koji je broj vatrogasne sluzbe?"
Zasto zelim da to bude u posebnom fajlu: iz razloga ako budem zeleo da dodam nova pitanja potrebno je samo da ih dodam u tom fajlu a ne direktno u kod u Switch il IF statments-u.

Koji je broj vatrogasne sluzbe? = 193

Kako da procitam liniju do znaka = i kako kada zelim da dam odgovor krisniku citam red posle znaka = ?

Ovo je aplikacija koja ce automacki da odgovara na pojedina korisnicka pitanja...


Svi predlozi su dobrodosli... Hvala unapred

[ Burgos @ 29.01.2013. 16:56 ] @
Npr. pročitaš celu liniju u QString (ovo prolazi ako linije nisu prevelike, tj. dok ne osetiš problem u performansama, mada svakako će ti tu biti potreban i drugi deo linije, pa je dobro pročitati to odjednom).

Kada pročitaš, podeliš QString:

Code:

QString znak = "=";
QStringList delovi = linija.split(znak);

// prvi je u delovi.at(0), a drugi je u delovi.at(1)

[ _ikac @ 29.01.2013. 17:15 ] @
Da to je to, hvala na brzom odgovoru.

Evo koda ako nekom zatreba:

Code:

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QFile inputFile("input.txt");
    if (inputFile.open(QIODevice::ReadOnly))
    {
       QTextStream in(&inputFile);
       while ( !in.atEnd() )
       {
          QString line = in.readLine();
          QString _char = "=";
          QStringList part = line.split(_char);

          qDebug() << part.at(0);

       }
    }
    inputFile.close();
    return a.exec();
}



[Ovu poruku je menjao _ikac dana 29.01.2013. u 18:27 GMT+1]

[Ovu poruku je menjao _ikac dana 30.01.2013. u 10:18 GMT+1]