QFile和QTextStream帮助(为用户名,密码和名称的用户编写ID)

时间:2016-04-14 17:55:54

标签: c++ qt

我正在为一个作业开发一个项目,我需要一些QFile和QTextStream的帮助。我想最初创建一个文件(名为:users.txt),里面有这个:

ID   Password    Name and Surname   Username
1    |  cheese    |  Daniel Markov  |  MaDanjel
2    |  something |  Mika Firring   |  Marila
..
..

到目前为止,我收到了skrivno.txt的以下内容:

0202|Nejc Zun|nejczun|

这是代码:

void registracija::write() {
    QFile username("skrivno.txt");
    if(!username.open(QIODevice::Append))
        QMessageBox::information(0,"Error",username.errorString());
     QTextStream u1(&username);
     username.open(QIODevice::Append | QFile::Text);
     u1 << ui->lineEdit_3->text()+"|"; //code
     u1 << ui->lineEdit_4->text()+"|"; //name and surname
     u1 << ui->lineEdit_5->text()+'\n'; //password
     username.close();
}

我的计划是从这个函数调用文本:

void MainWindow::on_pushButton_3_clicked()//login
{
    QFile username("skrivno.txt");
    if(!username.open(QIODevice::ReadOnly))
        QMessageBox::information(0,"Error",username.errorString());
    QTextStream u1(&username);
    username.open(QIODevice::ReadOnly | QFile::Text);
    QString temp;
    while (!u1.atEnd()) {
        temp = u1.readLine();
        if((ui->lineEdit_2->text()== temp.section("|",0,0)) && (ui->lineEdit->text()== temp.section("|",2,2))){
            ui->label_2->setText("Welcome: " + temp.section("|",1,1));
            ui->progressBar->show();
            for(int a=0;a<101;a++){
                ui->progressBar->setValue(a);
            }
            Open_Window();
            ui->progressBar->close();
            ui->un1->close();
            ui->un2->close();
            ui->label_3->close();
            player->stop();
        }else{
            ui->label->close();
            ui->un1->show();
            ui->un2->show();
            ui->label_3->show();
            player->stop();
        }
    }
    username.close();
}

并且它可以从不同的用户读取,因此它会检查用户的用户名和密码,如果用户使用正确的密码,则让他打开下面的内容。

这是仅测试文件skrivno.txt

的第一行的代码
if((ui->lineEdit_2->text()== temp.section("|",0,0)) && (ui->lineEdit->text()== temp.section("|",2,2)))

现在我需要帮助,这样不仅可以在文本中写入ID,还可以检查所有用户及其密码是否正确,而不仅仅是文件中的第一个。

我的代码有效。我需要帮助改进代码:

  • 在文本文件中添加ID(我不知道如何将其添加1 有人注册新用户的时间。
  • 检查每个用户及其密码(不仅是第一个)

这样的事情:

void registracija::write() {
        QFile username("skrivno.txt");
        if(!username.open(QIODevice::Append))
            QMessageBox::information(0,"Error",username.errorString());
         QTextStream u1(&username);
         username.open(QIODevice::Append | QFile::Text);
         u1 << SOMEHOW ADD THE ID IN HERE AND ALWAYS ADD IT +1 // <= help needed
         u1 << ui->lineEdit_3->text()+"|"; //code
         u1 << ui->lineEdit_4->text()+"|"; //name and surname
         u1 << ui->lineEdit_5->text()+'\n'; //password
         username.close();
    }

0 个答案:

没有答案