20180814

可能是this指针使用不当报错,没找到原因,先mark一下,方便日后找错
QT版本:5.11.0

void fun_exchg_ran()//获取各个函数名
{
    QString cmp = "\\b(Public|Private)\\s*(Function|Sub).*\\w";//正则表达式
    QRegExp rx1(cmp);
    QVector <QString> random_str;
    QVector <QString> data_str;
    int i = 0;
    int j = 0;
    QFile writeFile("random_info.xml");
    if(writeFile.exists())//删除上一次生成的数据文件
        writeFile.remove();
    while(data[i] != NULL)
    {
        int start_function = 1;

        QString strAll;
        QStringList strList;
        QFile readFile(data[i]);
        if(readFile.open(QIODevice::ReadOnly|QIODevice::Text))//read文件之后,文件内容存入 stream 中,直接关闭文件,内容会被清空
        {
            QTextStream  stream(&readFile);
            strAll=stream.readAll();
        }readFile.close();
        strList=strAll.split("\n");

        while(start_function != 0)
        {
            start_function = strList.indexOf(rx1,start_function);

            if(start_function != -1)
            {
                strList.indexOf(rx1,start_function);

                QString function_start = rx1.cap(0);
                QString str_cut = function_start; //字符串切割处理
                QStringList list1_cut = str_cut.split('(',QString::SkipEmptyParts);
                QString str2_cut = list1_cut.at(0);
                QStringList list2_cut = str2_cut.split(' ',QString::SkipEmptyParts);
                QString function_start_cut = list2_cut.at(2);

               if(writeFile.open(QIODevice::WriteOnly|QIODevice::Append))//Append设备以附加模式打开,所有的数据都写入文件的末尾
               {
                    QTextStream stream(&writeFile);//NotOpen|ReadOnly|WriteOnly|ReadWrite|Truncate|Text|Unbuffered
                    stream<<function_start_cut<<'\n';
               }writeFile.close();
                start_function += 1;
                j++;
            }
            else
            start_function += 1;
        }
        i++;
    }

    //srand((int)time(NULL));//随机数发生器的初始化函数
    for(int count = 0;count < 2;count++)
    {
        QString ar[10] = NULL;
        for( int ran = 0; ran < 11; ran++ )//生成随机字符串
            ar[ran] = rand()%(0x7a - 0x61) + 0x61;
        int num1 = rand()%99;
        QString num = QString::number(num1,10);
        QString ran_str = ar[0] + ar[1] + ar[2] + ar[3] + ar[4] + ar[5] + "_" + num + "_" + ar[6] + ar[7] + ar[8] + ar[9] + ar[10];
        random_str.append(ran_str);
    }
}


猜你喜欢

转载自blog.csdn.net/m0_37154850/article/details/81665828